Вопрос по прерываниям
Dudevil 24 октября, 2009 - 22:44
Заглянул сегодня в /proc/interrupts и увидел там следующее:
CPU0 CPU1
0: 11159709 0 IO-APIC-edge timer
1: 18987 0 IO-APIC-edge i8042
9: 151355 0 IO-APIC-fasteoi acpi
12: 32742 0 IO-APIC-edge i8042
14: 242692 0 IO-APIC-edge ata_piix
15: 11239 0 IO-APIC-edge ata_piix
16: 973209 0 IO-APIC-fasteoi uhci_hcd:usb5, HDA Intel, ohci1394, eth0
17: 1694 0 IO-APIC-fasteoi iwl3945
18: 125 0 IO-APIC-fasteoi uhci_hcd:usb4
19: 0 0 IO-APIC-fasteoi uhci_hcd:usb3
23: 356147 0 IO-APIC-fasteoi ehci_hcd:usb1, uhci_hcd:usb2
NMI: 0 0 Non-maskable interrupts
LOC: 2370109 7348195 Local timer interrupts
SPU: 0 0 Spurious interrupts
CNT: 0 0 Performance counter interrupts
PND: 0 0 Performance pending work
RES: 3851512 4404790 Rescheduling interrupts
CAL: 1985 859 Function call interrupts
TLB: 56643 58835 TLB shootdowns
TRM: 0 0 Thermal event interrupts
THR: 0 0 Threshold APIC interrupts
MCE: 0 0 Machine check exceptions
MCP: 105 104 Machine check polls
ERR: 0
MIS: 0
Скажите это нормально что все прерывания от usb сети и т.д обрабатываются только 1м CPU? а то чтото настораживает :)
»
- Для комментирования войдите или зарегистрируйтесь

у Вас случайно не
у Вас случайно не HyperThreading? или SMP не включено в ядре?
имхо это следствие каких-то
имхо это следствие каких-то опций ядра типа cgroups и т.п. есть там какие-то опции, позволяющие группировать задачи по определенным характеристикам по ядрам процессора... например, можно заставить все процессы ядра/рута выполняться на одном ядре, а все остальные (пользовательские) процессы на остальных ядрах... так же можно привязать определенные процессы к определенному ядру (монополизировать доступ к процессору только для конкретного процесса)... имхо покопайте в сторону cgroups (ЕМНИП) ;)
а вообще на втором ядре у вас тоже некоторые прерывания обрабатываются, т.ч. возможно и зря паникуете ;)
Ок,спасибо,попробую cgroups
Ок,спасибо,попробую cgroups поворошить
Да я в принципе не паникую :) mstat показывает равную загрузку ядер,просто интересно разобраться почему так происходит =)
Нет,у меня Core2Duo и SMP
Нет,у меня Core2Duo и SMP выключено...
Нет, SMP не выключено.
Нет, SMP не выключено.
Dudevil написал(а): Нет,у
а следовало бы включить ;)
SMT конечно имелось ввиду
SMT конечно имелось ввиду ошибочка вышла :)
SMP включено.
почему я задал этот
почему я задал этот вопрос:
на p4 с HT так:
# cat /proc/interrupts CPU0 CPU1 0: 198 0 IO-APIC-edge timer 1: 12 0 IO-APIC-edge i8042 8: 61 0 IO-APIC-edge rtc0 9: 0 0 IO-APIC-fasteoi acpi 14: 199960 0 IO-APIC-edge ata_piix 15: 0 0 IO-APIC-edge ata_piix 16: 0 0 IO-APIC-fasteoi uhci_hcd:usb2, uhci_hcd:usb5 18: 11976174 0 IO-APIC-fasteoi ata_piix, uhci_hcd:usb4 19: 0 0 IO-APIC-fasteoi uhci_hcd:usb3 20: 4885610 0 IO-APIC-fasteoi eth0 23: 2 0 IO-APIC-fasteoi ehci_hcd:usb1 NMI: 0 0 Non-maskable interrupts LOC: 17044797 17118640 Local timer interrupts SPU: 0 0 Spurious interrupts CNT: 0 0 Performance counter interrupts PND: 0 0 Performance pending work RES: 619802 448369 Rescheduling interrupts CAL: 78 103 Function call interrupts TLB: 3298 3234 TLB shootdowns TRM: 237893 237909 Thermal event interrupts THR: 0 0 Threshold APIC interrupts MCE: 0 0 Machine check exceptions MCP: 70 71 Machine check polls ERR: 0 MIS: 0на amd turion x2 так
# cat /proc/interrupts CPU0 CPU1 0: 138 167 IO-APIC-edge timer 1: 154 41640 IO-APIC-edge i8042 8: 1 43 IO-APIC-edge rtc0 9: 333 108229 IO-APIC-fasteoi acpi 12: 1618 817910 IO-APIC-edge i8042 16: 913 331127 IO-APIC-fasteoi ohci_hcd:usb3, ohci_hcd:usb4, HDA Intel 17: 137 50223 IO-APIC-fasteoi ehci_hcd:usb1, ohci_hcd:usb5, ohci_hcd:usb6 18: 0 1 IO-APIC-fasteoi ohci_hcd:usb7, radeon@pci:0000:01:00.0 19: 0 34 IO-APIC-fasteoi ehci_hcd:usb2, HDA Intel 20: 745 371168 IO-APIC-fasteoi ahci 24: 46185998 0 HPET_MSI-edge hpet2 29: 6449 4035678 PCI-MSI-edge eth0 NMI: 0 0 Non-maskable interrupts LOC: 215 46355899 Local timer interrupts SPU: 0 0 Spurious interrupts CNT: 0 0 Performance counter interrupts PND: 0 0 Performance pending work RES: 3775052 2500226 Rescheduling interrupts CAL: 1217 137 Function call interrupts TLB: 321099 324210 TLB shootdowns TRM: 0 0 Thermal event interrupts THR: 0 0 Threshold APIC interrupts MCE: 0 0 Machine check exceptions MCP: 168 168 Machine check polls ERR: 0 MIS: 0ну да по идее так и должно
ну да по идее так и должно быть,насколько я понимаю ядро держит линии прерывания для каждого процессора.
Core2Duo Hyperthreading не поддерживает,а у меня почему-то ведёт себя как будто это 4й пень с hypertreading %)
на всякий случай брошу сюда
на всякий случай брошу сюда конфиг вдруг ктото чтото заметит
а да. забыл маленький ньюанс.
а да. забыл маленький ньюанс. турион на amd64, а п4 на x86. мб это накладывает отпечаток различия?
Кстати, на моём Core 2 Duo
Кстати, на моём Core 2 Duo всё распределено примерно поровну. Конфиг