В Linux системные вызовы, которые вызываются прерываниями, могут быть связаны с ядрами с помощью средства отображения IRQ. Объяснение высокого уровня: https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/6/html/performance_tuning_guide/s-cpu-irq
Если вы пишете свой собственный драйвер устройства, то ядро Linux предоставляет простые интерфейсы для запуска функции с указанным c ядро. Например, функция ядра smp_call_function_single () - есть другие в kernel / smp. c, и есть множество примеров использования этих функций в других фрагментах кода ядра - например, arch / x86 /lib/msr-smp.c и arch / x86 / kernel / cpuid. c - вот где я узнал об этих функциях.
Мой опыт работы с кодом ядра довольно ограничен, но я не знаю знать о любом механизме, обеспечивающем дифференциальное управление сродством выполнения функций, доступ к которым осуществляется с использованием одного и того же номера прерывания / IRQ. В зависимости от сложности функции, может быть возможно создать простой драйвер, который упаковывает нужный вызов в "smp_call_function_single ()".