Apa “utas benang” dan mengapa itu kelaparan?

14

Berikut ini sesekali muncul di /var/log/syslog:

rtkit-daemon[1145]: The canary thread is apparently starving. Taking action.
rtkit-daemon[1145]: Demoting known real-time threads.
rtkit-daemon[1145]: Successfully demoted thread 1431 of process 1368 (n/a).
rtkit-daemon[1145]: Successfully demoted thread 1430 of process 1368 (n/a).
rtkit-daemon[1145]: Successfully demoted thread 1368 of process 1368 (n/a).
rtkit-daemon[1145]: Demoted 3 threads.

Apa yang terjadi di sini?

ændrük
sumber
Adakah kesalahan dalam kern.log tentang ACPI? Jika demikian: masuk ke BIOS dan periksa apakah ACPI power save optionssudah diatur ke Extended. Ubah ke Normal.
Rinzwind

Jawaban:

24

Istilah "kenari" yang digunakan di sini berasal dari penambangan batubara . Penambang batu bara menggunakan kenari untuk mendeteksi gas berbahaya (jika kenari yang mereka bawa mati, mereka tahu mereka harus keluar dari poros / tambang secepat mungkin). Akibatnya, istilah "kenari" sekarang sering digunakan untuk apa pun yang Anda gunakan untuk mendapatkan peringatan (dini) tentang situasi berbahaya.

Dalam hal ini sepertinya 'rtkit' memulai utas "normal" untuk menguji apakah utas yang mendapatkan prioritas "waktu nyata" adalah "kelaparan" utas lainnya (& proses), di mana "kelaparan" berarti mereka mendapatkan terlalu sedikit waktu prosesor . Ini adalah tindakan pengamanan untuk memastikan bahwa proses / utas yang memiliki akses ke prioritas waktu nyata tidak menghabiskan begitu banyak waktu CPU sehingga tugas-tugas lain tidak ada lagi.

Jadi ternyata beberapa utas yang mendapat prioritas real-time dari rtkit adalah / sedang melakukan kesalahan, dan mencoba memonopoli CPU, rtkit mendeteksi ini dengan "utas utaranya", dan dengan demikian rtkit menghilangkan prioritas waktu nyata.

JanC
sumber
-3

Ini adalah buffer overflow

Canary buffer overflow Wikipedia

Saya tidak bisa memberi tahu dari log yang Anda posting di mana masalahnya, dapatkah Anda memeriksa atau menempelkan entri log di atas pesan di bawah? Apa itu proses 1368?

sudo ps -p 1368
Harimau kumbang
sumber
2
Ini bukan tentang buffer overflows, tetapi penggunaan kata "canary" di sana juga berasal dari penggunaan canary penambang batubara.
JanC