İçeriğe geç

Linux İRQ Hatası

Kullandığım bilgisayarda canımı sıkan bir hata almaya başladım cpu_irq_handler bla bla nedir bu irq?, neden karşılaşıyoruz? oturum sürekli neden otamatik kapanıyor? gibi soruların cevabını buldum ve paylaşmak istedim.

İRQ (İnterrupt Request) türkçeye Kesme İsteği Hattı olarak çevirebileceğimiz bu kavram bir donanım yahut yazılım tarafından CPU dikkatine ihtiyacı olduğunu belirtmelerine izin verir.

Mevcut oturumun kapanması, sistemin donması vs. şu şekilde açıklayabiliriz; CPU, Kesme isteği aldığında çalışan programın yürütülmesini durdurur ve çalışması gereken hizmetleri yeniden başlatır.

Cpu’nun dikkatini çekmek isteyen yazılım yahut donanım iki yol ile bunu gerçekleştirir.
1.)Kesme Tabanlı
2.)Yoklama Tabanlı

Peki Linux makinemizde işlemcinin kaç kes kesildiğine ilişkin bilgileri nasıl listeleyeceğiz.Bildiğiniz üzere Linux’te “/proc klasörü kernel hakkında bilgiler içeren ve çalışan programların bilgilerini tutan özel dosyaları barındırır.”

CPU bilgilerini
cat /proc/cpuinfo
Kesme bilgilerini
cat /proc/interrupts

interrupts

https://file.army/i/7vBbQo

şeklinde yansıtılır.Son satırlarda irq karşılığındaki çalışan yazılım veya donanımlar hakkında bilgileri veriyor.

IRQ numarası, CPU tarafından işlenmesi gereken kesme önceliğini belirler.

Bazı IRQ numaraları ve karşılığı aşağıdaki listede bulabilirsiniz.

IRQ 0 Sistem saati
 IRQ 1 Klavye
 IRQ 2 Programlanabilir IRQ denetçisi. (Modemler, COM 3 ve COM 4 portları)
 IRQ 3 COM 2 portu (modemler, COM 4, ses ve ağ kartları, teyp yedekleme birimlerini hızlandıran kartlar)
 IRQ 4 COM 1 portu (modemler, COM 4, ses ve ağ kartları, teyp yedekleme birimlerini hızlandıran kartlar)
 IRQ 5 Ses kartı (LPT2, LPT3 – COM 3, COM4, MPEG kartları)
 IRQ 6 Disket sürücü denetleyicisi (Teyp yedekleme birimlerini hızlandıran kartlar)
 IRQ 7 LPT1 yani ilk paralel port (LPT2, COM3, COM4, ses kartları, ağ kartları)
 IRQ 8 Gerçek zamanlı saat “Real Time Clock”
 IRQ 9 (Ağ kartları, ses kartları, SCSI kartları, PCI aygıtlar, yeniden yönlendirilen IRQ2 aygıtlarıı)
 IRQ 10 (Ağ kartları, ses kartları, SCSI kartları, PCI aygıtlar, ikinci ve dördüncü IDE kanalları)
 IRQ 11 (Görüntü, ağ kartları, ses kartları, SCSI kartları, PCI aygıtlar, üçüncü ve dördüncü IDE kanalları)
 IRQ 12 PS/2 fare (Görüntü, ağ kartları, ses kartları, SCSI kartları, PCI aygıtlar, üçüncü IDE Ekanalı)
 IRQ 13 FPU, yane matematik işlemci
 IRQ 14 Birinci IDE kanalı (SCSI kartlar)
 IRQ 15 İkinci IDE kanalı (Ağ ve SCSCI kartlar)

Normalde bir IRQ’yu bir aygıtın kullanması gerikir; aksi halde işlemci şaşırır, yanlış aygıta yanlış zamanda cevap verebilir. İşte buna IRQ Çakışması denir.

Peki ne yapmalıyız? Cpu kullanımı nasıl dengeleyebiliriz?

https://github.com/Irqbalance/irqbalance

apt-get irqbalance
service irqbalance start

Kullanacağımız bu araç arkaplan servisi olarak çalışır ve Cpu yükünü tüm işlemci setine mümkün olduğunca yaymaya çalışır.

İyi Çalışmalar…
Kaynaklar

Introduction to Linux Interrupts and CPU SMP Affinity


http://www.supersatforum.com/puf-noktalari/916-irq-interrupt-request-nedir-ve-ne-ise-yarar.html
http://forum.debian.org.tr/index.php?topic=2559.0

Tarih:Siber Güvenlik

İlk Yorumu Siz Yapın

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir