Потоки ISR получают то же сходство, что и процедуры ISR, поэтому в случае вытеснения поток ISR не будет перепланирован на произвольный ЦП.
Кроме того, поведение принудительного превращения ISR в потоки не включено по умолчанию в соответствии с информацией в указанной вами ссылке. Это обусловлено параметром командной строки threadirqs. Обработка параметров командной строки заботится о потоках ISR таким образом, что традиционным ISR не нужно заботиться о перепланировании. Согласно следующему коду в kernel / irq / manage.c, вытеснение отключено для этих потоков:
/*
* Interrupts which are not explicitely requested as threaded
* interrupts rely on the implicit bh/preempt disable of the hard irq
* context. So we need to disable bh here to avoid deadlocks and other
* side effects.
*/
static void
irq_forced_thread_fn(struct irq_desc *desc, struct irqaction *action)
{
local_bh_disable();
action->thread_fn(action->irq, action->dev_id);
irq_finalize_oneshot(desc, action, false);
local_bh_enable();
}