1. La diferencia entre tasklet y workqueue y la diferencia entre la implementación subyacente
(1) Tanto softirq como tasklet son interrupciones suaves, tasklet es una implementación especial de softirq; workqueue es una cola de trabajo ordinaria.
(2) tasklet y workqueue, los cuales son un método de implementación para interrumpir la mitad inferior. La diferencia es que el tasklet pertenece al contexto de interrupción, no hay cambio de proceso y no puede suspenderse ni bloquearse (consulte [003 Interrupción] para obtener más detalles); la cola de trabajo se basa en la encapsulación de subprocesos y pertenece al contexto de proceso, por lo que admite suspensión y bloqueo .
2. ¿Cuándo solicitar la suspensión?
Cuando Linux carga el controlador correspondiente e inicializa el dispositivo de hardware por primera vez, el kernel solicitará una interrupción para el dispositivo.