У меня есть некоторые сомнения с нижней половиной. Вот, я рассматриваю только тасклеты.
Кроме того, я рассматриваю только невыгружаемое ядро.
Предположим, рассмотрим драйвер Ethernet, в котором обработка прерываний RX выполняет около 10 вызовов функций. (Плохое программирование :))
Теперь, глядя на перспективу производительности, если в тасклет можно переместить 9 вызовов функций и нужно только 1 вызывать при обработке прерываний, могу ли я действительно добиться хорошей производительности в приложении чтения tcp.
Или, другими словами, когда происходит переключение на приложение пользовательского пространства, будут вызваны все 9 вызовов функций для запланированных тасклетов, в действительности приложение пользовательского пространства сможет получать данные пакета только после "всех пакетов". запланированные "завершены? исправить?
Я понимаю, что, имея нижнюю половину, мы разрешаем все прерывания ... но я сомневаюсь, что приложение, основанное на прерывании, получит что-то, имея все 10 функций в самом обработчике прерываний или в нижней половине.
Короче говоря, с помощью тасклета я могу получить улучшение производительности в приложении пользовательского пространства, здесь?