简单的两个情况 当内核在执行浮点指令时,FPU 状态不被保存。如果这时发生了抢占, 由于重新调度,FPU 状态就会与抢占前完全不同。 还有一个就是smp下为任务分配cpu的时候,如果在特定点发生了内核抢占, 任务将会由于重新调度而被分配到其他处理器,smp_processor_id() 将返回一 个不同的值。 以上两种情况其实是可以被抢占的,只是其结果会导致错误,需要preempt_disable() 的保护。。。
RTOS
最新推荐文章于 2024-07-05 14:48:13 发布
简单的两个情况 当内核在执行浮点指令时,FPU 状态不被保存。如果这时发生了抢占, 由于重新调度,FPU 状态就会与抢占前完全不同。 还有一个就是smp下为任务分配cpu的时候,如果在特定点发生了内核抢占, 任务将会由于重新调度而被分配到其他处理器,smp_processor_id() 将返回一 个不同的值。 以上两种情况其实是可以被抢占的,只是其结果会导致错误,需要preempt_disable() 的保护。。。