Я понимаю, что мы отключили interrupts
при приобретении spinlocks
в обработчиках прерываний.Прерывание и прямая блокировка
У меня есть сомнение относительно того, что происходит, когда spinlock
хранится в process context
и в этот момент происходит прерывание?
Может ли этот сценарий произойти?
В соответствии с моим пониманием, если обработчик также пытается получить тот же самый lock
, который хранится в контексте процесса, он будет продолжать вращаться для этой блокировки.
Так мы всегда отключим прерывания при покупке spinlock
?
Может случиться так, что выше прерывание приоритета может наступить, когда прерывание имеет спин-блокировку , и этот запрос с приоритетным прерыванием, который блокирует. Так всегда лучше отключить прерывания при покупке спин-блокировки? – user3351750
Вы можете избежать отключения прерываний только в том случае, если вы можете доказать, что нет (другого) прерывания принимает тот же замок. –
Прерывания могут вытеснять друг друга. – Martin