Comment tuer un thread du noyau? Et est-ce que je veux vraiment le faire?

8

Comme je l'ai appris de cette question , les [bracketed]processus répertoriés par la ps auxcommande sont des threads du noyau. Existe-t-il un moyen de les tuer depuis la ligne de commande? Sinon, je suppose que la raison en est de sauver l'utilisateur d'un risque plus élevé de panique du noyau, non?

math
la source

Réponses:

9

Vous ne pouvez pas tuer les threads du noyau ou tout processus bloqué dans l'état D, car les signaux ne sont délivrés que lorsque le noyau revient en mode utilisateur. Mis à part la limitation technique de la transmission du signal, tuer un thread au milieu du code du noyau corromprait le système car le code du noyau peut contenir une ressource importante à l'époque, comme un verrou tournant ou un mutex, et le tuer empêcherait ceux ressources d'être libérées.

Si vous avez un processus qui est bloqué dans l'état D pendant une période prolongée, vous avez un bogue du noyau. Voir https://wiki.ubuntu.com/KernelTeam/KernelTeamBugPolicies pour des conseils sur la manière de le signaler.

psusi
la source
2

Les threads du noyau sont les threads nécessaires créés par votre noyau pour gérer votre système.

Tous ne sont pas nécessaires mais tous (la plupart) tous bénéfiques et ne nécessitent généralement pas de ressources supplémentaires, il n'y a aucune raison pour que l'on pense dans des conditions normales à tuer un thread du noyau.

Le noyau Linux peut créer et détruire ces threads si nécessaire, vous ne devriez pas vous en soucier et tuer dans la plupart des circonstances n'est pas quelque chose que vous pouvez faire.

Bruno Pereira
la source
Que se passe-t-il si j'ai un thread en veille sans interruption qui bloque une ressource système comme un périphérique monté avec un support ou un autre matériel, que je veux libérer en supprimant le thread?
math
1
Déposez un bogue contre lui si vous pensez que c'est utile (et non un problème avec votre système) et espérez qu'il sera bientôt résolu.
Bruno Pereira
J'essaierais de découvrir ce qui ne va pas avec le montage avant de décider que tuer les threads du noyau était la solution.
Bruno Pereira
Je ne suis pas un pirate du noyau mais un utilisateur de certains pilotes du noyau. Bien sûr, je devrais faire un rapport de bogue si certains appareils ne fonctionnent pas correctement, mais je dois attendre au moins six mois, donc le prochain ubuntu apportera ce correctif. Je pense que c'est un scénario valide et le noyau Linux devrait avoir la possibilité d'interrompre une certaine action et de libérer des ressources (le cas échéant).
math
vous ne comprenez pas que le thread du noyau a probablement été lancé par un processus anogher, donc il n'y a probablement rien de mal avec ce thread du noyau, sauf le processus qui a commencé à oublier de le fermer. je comprends ce que vous dites, mais je ne pense pas que ce soit même conseillé de tuer les threads du noyau.
Bruno Pereira