Linux'ta, net kart bir paket aldığında, sabit bir kesintiyi tetikler ve sonra aramayı geri çağırır, bir NET_RX_SOFTIRQ değerini yükseltir, bu softirq sert cpu ile aynı işlemcide çalışır mı?hard interrupt ve softirq
cevap
Bir kesme isteği (IRQ), donanım düzeyinde gönderilen bir hizmet isteğidir. Kesmeler, ya özel bir donanım hattı ile ya da bir bilgi paketinde (bir Mesaj Sinyalli Ara Verme ya da MSI) bir donanım veriyolu üzerinden gönderilebilir. Kesmeler etkinleştirildiğinde, bir IRQ'nun alınması bağlamı kesmek için bir anahtar ister. Çekirdek kesilme gönderim kodu, IRQ numarasını ve ilişkili Kayıtlı Hizmet Rutinleri listesini (ISR'ler) alır ve her ISR'yi sırayla çağırır. ISR, kesintiyi kabul eder ve aynı IRQ'dan gelen gereksiz kesmeleri yok sayar, ardından kesintiyi işlemeyi bitirmek ve ISR'nin gelecekteki kesintileri görmezden gelmesini durdurmak için ertelenmiş bir işleyiciyi sıraya alır.
IRQ'lar, ilgili IRQ için ISR'yi yürütmesine izin verilen CPU çekirdeklerini tanımlayan bir "affinity" özelliğine, smp_affinity'ye sahiptir. Bu özellik, hem kesme afinitesini hem de uygulamanın bir veya daha fazla özel CPU çekirdeğine iş parçacığı özniteliğini atayarak uygulama performansını geliştirmek için kullanılabilir. Bu, belirtilen kesme ve uygulama konuları arasında önbellek hattı paylaşımına izin verir. smp_affinity için
# cat /proc/irq/32/smp_affinity
f
varsayılan değer IRQ sistemdeki işlemci herhangi servis yapılabilir, yani f dir. aşağıdaki gibi, Bu değer 1 ayarlanması, sadece CPU 0 bu kesme hizmet anlamına gelir: Bir IRQ smp_affinity değiştirerek kesme direksiyon destekleyen sistemlerde, On
# echo 1 >/proc/irq/32/smp_affinity
# cat /proc/irq/32/smp_affinity
1
donanım kurar karar için o kadar Belirli bir CPU ile bir kesme hizmeti, donanım seviyesinde, çekirdeğe müdahale olmadan yapılır. RedHat'in DOC de
daha detaylı bilgi mevcut - 4.3 Interrupts and IRQ tuning
- 1. Linux: interrupt bağlamında hrtimer_start
- 2. Tetik Çekirdeği Interrupt İşleyicisi: Nasıl?
- 3. x86 donanım Interrupt çalışmıyor qemu
- 4. Git: reset --hard şimdi geçmişte sıkışmış durumdayım
- 5. Hard Copy vs Sığ kopya javascript
- 6. Montajda özel bir Interrupt yapmak mümkün mü?
- 7. UIO interrupt için mono beklemeyi kullanma
- 8. Boost İş Parçacığı - Interrupt nasıl bildirilir
- 9. Git reset --hard origin/master ifadesinin anlamı nedir?
- 10. Android telefonu bir interrupt üzerinde uyandırın, bir GPIO üzerinde
- 11. Neden bazen "Giriş" dosya adı 'güncel değil, göremiyorum.' bir 'git reset --hard' ve 'git pull' sonra? Bunu yaptığımda aşağıdaki Bazen
- 12. Disqus, IE8'i "Hard Assert" Uyumluluk Moduna girer. Herhangi bir düzeltme?
- 13. Tomcat 7 ve ScheduledExecutorService.shutdown
- 14. Zamanlayıcısını başlatmak ve durdurmak için ScheduledExecutorService'ı kullanma
- 15. 'nosetest', kurulduktan ve PATH
- 16. Git ve son işlem tamamlandı
- 17. kesme() (beklendiği gibi çalışmayabilir ve nasıl bir iş parçacığı kesmek isteyen
- 18. Ültimain Anlamı Sert (-H) ve Yumuşak (-S)
- 19. mkdir ve mkdir -p arasındaki fark?
- 20. coredump ben <pre><code>ulimit -c unlimited. </code></pre> <p>Ve c</p> kuruyorum
- 21. Android Studio'da görüntülenen kullanıcı arayüzüne geçmek ve yazı tipi rengini değiştirmek nasıl?
- 22. Basit ifadeyi ayrıştırmak için^ve $ nasıl kullanılır?
- 23. Hangi durumda kesme durumunu koruyorsunuz?
- 24. Java (istemci) ve C# (Sunucu) TCP Soketi. ve Sunucu, istemciden
- 25. Git Bash/MINGW64 kullanarak Windows'ta CTRL-C'yi CTRL-C kullanarak yakalayın.
- 26. Linux sürücü gelişimi: PCI ve PCIe sürücüsü arasındaki fark nedir?
- 27. Son yüklemeyi bir git bare deposunda nasıl kabul edemiyorum? (Çıplak depoları endeksleri kullanmayın ve bir çalışma dizinini yok çünkü) çıplak depoda hiçbir anlam birkaç git komutları olduğunu dikkate alınarak
- 28. MySQL bir sütun için bir dize bitiştirmek
- 29. ve
- 30. Raylar 5: ActionCable ve db senkronize edilmiyor
Genellikle donanım kesmesi çıkışında aynı çekirdek de çalışır. – 0andriy