Изучая обработку прерываний в Linux, я обнаружил, что Tasklets и SoftIRQ — это два разных метода выполнения «нижней половины» (работы с меньшим приоритетом). Я это понимаю (совершенно неподдельная потребность).
Разница в том, что SoftIRQ повторно входят в систему, а тасклет - нет. Один и тот же SoftIRQ может работать на разных процессорах, чего нельзя сказать о тасклетах.
Хотя я понимаю это с поверхности, но я не понимаю требований двух функций. В каких случаях мы можем использовать эти средства? Как распознать, что сейчас мне следует использовать тасклеты, а потом — SoftIRQ.
Кроме того, что мы подразумеваем под тасклетами, созданными на основе SoftIRQ? В одной из книг, которые я читал по LKML, были дебаты по поводу удаления тасклетов. Я совершенно запутался, зачем вводить такую функцию? Какая-то недальновидность (без обид)?
Любые указатели на это очень помогут.