Bagaimana saya membunuh utas kernel? Dan apakah saya benar-benar ingin melakukannya?

8

Seperti yang saya pelajari dari pertanyaan ini , [bracketed]proses-proses yang tercantum dalam ps auxperintah ini adalah utas kernel. Jadi adakah cara untuk membunuh mereka dari baris perintah? Jika tidak, saya kira alasannya adalah untuk menyelamatkan pengguna dari risiko yang lebih tinggi terkena kepanikan kernel, bukan?

matematika
sumber

Jawaban:

9

Anda tidak dapat membunuh utas kernel, atau proses apa pun yang diblokir dalam keadaan D, karena sinyal hanya dikirimkan ketika kernel kembali ke mode pengguna. Selain dari batasan teknis pengiriman sinyal, mematikan utas di tengah kode kernel akan merusak sistem karena kode kernel mungkin memegang sumber daya penting pada saat itu, seperti kunci putaran atau mutex, dan membunuh itu akan mencegah mereka sumber daya dari dirilis.

Jika Anda memiliki proses yang macet dalam keadaan D untuk waktu yang lama, maka Anda memiliki bug kernel. Lihat https://wiki.ubuntu.com/KernelTeam/KernelTeamBugPolicies untuk kiat melaporkannya.

psusi
sumber
2

Utas kernel adalah utas yang diperlukan yang dibuat oleh Kernel Anda untuk mengelola sistem Anda.

Tidak semua diperlukan tetapi semua (sebagian besar) semuanya bermanfaat dan sebagian besar tidak memerlukan sumber daya tambahan, tidak ada alasan mengapa orang dalam kondisi normal berpikir untuk mematikan thread Kernel.

Kernel Linux dapat membuat hancurkan utas tersebut jika perlu, Anda tidak perlu khawatir tentangnya dan membunuh dalam sebagian besar keadaan bukanlah sesuatu yang dapat Anda lakukan.

Bruno Pereira
sumber
Bagaimana jika saya memiliki utas yang berada dalam mode sleep yang tidak terputus yang memblokir sumber daya sistem seperti perangkat yang dipasang dengan mount, atau perangkat keras lain, yang ingin saya lepaskan dengan mematikan utas?
matematika
1
Ajukan bug terhadapnya jika Anda pikir itu berguna (dan bukan kesalahan dengan sistem Anda) dan berharap itu segera teratasi.
Bruno Pereira
Saya akan mencoba mencari tahu apa yang salah dengan pemasangan sebelum memutuskan bahwa membunuh utas kernel adalah solusinya.
Bruno Pereira
Saya bukan hacker kernel tetapi pengguna driver kernel tertentu. Tentu saja saya harus membuat laporan bug jika beberapa perangkat tidak berfungsi dengan baik, tetapi saya harus menunggu setidaknya setengah tahun, jadi ubuntu berikutnya membawa perbaikan bug ini. Saya pikir itu adalah skenario yang valid dan kernel linux harus datang dengan kemungkinan untuk membatalkan tindakan tertentu dan melepaskan sumber daya (jika ada yang ditempati).
matematika
Anda tidak mengerti bahwa kemungkinan besar utas kernel diprakarsai oleh proses lain, jadi mungkin tidak ada yang salah dengan utas kernel kecuali proses yang mulai lupa untuk menutupnya. saya mengerti apa yang Anda katakan tetapi saya tidak berpikir itu bahkan disarankan untuk membunuh utas kernel.
Bruno Pereira