Вопрос по прерываниям

Заглянул сегодня в /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 написал(а): Нет,у

Dudevil написал(а):
Нет,у меня Core2Duo и SMP выключено...

а следовало бы включить ;)

SMT конечно имелось ввиду

SMT конечно имелось ввиду ошибочка вышла :)
SMP включено.

grep SMP /usr/src/linux/.config
CONFIG_USE_GENERIC_SMP_HELPERS=y
CONFIG_X86_32_SMP=y
CONFIG_SMP=y
# CONFIG_X86_BIGSMP is not set
CONFIG_PM_SLEEP_SMP=y

почему я задал этот

почему я задал этот вопрос:

на 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 %)

на всякий случай брошу сюда

на всякий случай брошу сюда конфиг вдруг ктото чтото заметит

#
# Processor type and features
#
CONFIG_TICK_ONESHOT=y
CONFIG_NO_HZ=y
CONFIG_HIGH_RES_TIMERS=y
CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
CONFIG_SMP=y
# CONFIG_X86_MPPARSE is not set
# CONFIG_X86_BIGSMP is not set
# CONFIG_X86_EXTENDED_PLATFORM is not set
CONFIG_X86_SUPPORTS_MEMORY_FAILURE=y
CONFIG_SCHED_OMIT_FRAME_POINTER=y
# CONFIG_PARAVIRT_GUEST is not set
# CONFIG_MEMTEST is not set
# CONFIG_M386 is not set
# CONFIG_M486 is not set
# CONFIG_M586 is not set
# CONFIG_M586TSC is not set
# CONFIG_M586MMX is not set
# CONFIG_M686 is not set
# CONFIG_MPENTIUMII is not set
# CONFIG_MPENTIUMIII is not set
# CONFIG_MPENTIUMM is not set
# CONFIG_MPENTIUM4 is not set
# CONFIG_MK6 is not set
# CONFIG_MK7 is not set
# CONFIG_MK8 is not set
# CONFIG_MCRUSOE is not set
# CONFIG_MEFFICEON is not set
# CONFIG_MWINCHIPC6 is not set
# CONFIG_MWINCHIP3D is not set
# CONFIG_MGEODEGX1 is not set
# CONFIG_MGEODE_LX is not set
# CONFIG_MCYRIXIII is not set
# CONFIG_MVIAC3_2 is not set
# CONFIG_MVIAC7 is not set
# CONFIG_MPSC is not set
CONFIG_MCORE2=y
# CONFIG_MATOM is not set
# CONFIG_GENERIC_CPU is not set
# CONFIG_X86_GENERIC is not set
CONFIG_X86_CPU=y
CONFIG_X86_L1_CACHE_BYTES=64
CONFIG_X86_INTERNODE_CACHE_BYTES=64
CONFIG_X86_CMPXCHG=y
CONFIG_X86_L1_CACHE_SHIFT=6
CONFIG_X86_XADD=y
CONFIG_X86_WP_WORKS_OK=y
CONFIG_X86_INVLPG=y
CONFIG_X86_BSWAP=y
CONFIG_X86_POPAD_OK=y
CONFIG_X86_INTEL_USERCOPY=y
CONFIG_X86_USE_PPRO_CHECKSUM=y
CONFIG_X86_TSC=y
CONFIG_X86_CMPXCHG64=y
CONFIG_X86_CMOV=y
CONFIG_X86_MINIMUM_CPU_FAMILY=5
CONFIG_X86_DEBUGCTLMSR=y
CONFIG_CPU_SUP_INTEL=y
CONFIG_CPU_SUP_CYRIX_32=y
CONFIG_CPU_SUP_AMD=y
CONFIG_CPU_SUP_CENTAUR=y
CONFIG_CPU_SUP_TRANSMETA_32=y
CONFIG_CPU_SUP_UMC_32=y
# CONFIG_X86_DS is not set
# CONFIG_HPET_TIMER is not set
CONFIG_DMI=y
# CONFIG_IOMMU_HELPER is not set
# CONFIG_IOMMU_API is not set
CONFIG_NR_CPUS=8
# CONFIG_SCHED_SMT is not set
CONFIG_SCHED_MC=y
# CONFIG_PREEMPT_NONE is not set
CONFIG_PREEMPT_VOLUNTARY=y
# CONFIG_PREEMPT is not set
CONFIG_X86_LOCAL_APIC=y
CONFIG_X86_IO_APIC=y
# CONFIG_X86_REROUTE_FOR_BROKEN_BOOT_IRQS is not set
CONFIG_X86_MCE=y
CONFIG_X86_MCE_INTEL=y
# CONFIG_X86_MCE_AMD is not set
# CONFIG_X86_ANCIENT_MCE is not set
CONFIG_X86_MCE_THRESHOLD=y
# CONFIG_X86_MCE_INJECT is not set
CONFIG_X86_THERMAL_VECTOR=y
CONFIG_VM86=y
# CONFIG_TOSHIBA is not set
# CONFIG_I8K is not set
# CONFIG_X86_REBOOTFIXUPS is not set
CONFIG_MICROCODE=y
CONFIG_MICROCODE_INTEL=y
# CONFIG_MICROCODE_AMD is not set
CONFIG_MICROCODE_OLD_INTERFACE=y
CONFIG_X86_MSR=y
CONFIG_X86_CPUID=y
# CONFIG_X86_CPU_DEBUG is not set
# CONFIG_NOHIGHMEM is not set
CONFIG_HIGHMEM4G=y
# CONFIG_HIGHMEM64G is not set
CONFIG_PAGE_OFFSET=0xC0000000
CONFIG_HIGHMEM=y
# CONFIG_ARCH_PHYS_ADDR_T_64BIT is not set
CONFIG_ARCH_FLATMEM_ENABLE=y
CONFIG_ARCH_SPARSEMEM_ENABLE=y
CONFIG_ARCH_SELECT_MEMORY_MODEL=y
CONFIG_SELECT_MEMORY_MODEL=y
CONFIG_FLATMEM_MANUAL=y
# CONFIG_DISCONTIGMEM_MANUAL is not set
# CONFIG_SPARSEMEM_MANUAL is not set
CONFIG_FLATMEM=y
CONFIG_FLAT_NODE_MEM_MAP=y
CONFIG_SPARSEMEM_STATIC=y
CONFIG_PAGEFLAGS_EXTENDED=y
CONFIG_SPLIT_PTLOCK_CPUS=4
# CONFIG_PHYS_ADDR_T_64BIT is not set
CONFIG_ZONE_DMA_FLAG=1
CONFIG_BOUNCE=y
CONFIG_VIRT_TO_BUS=y
CONFIG_HAVE_MLOCK=y
CONFIG_HAVE_MLOCKED_PAGE_BIT=y
# CONFIG_KSM is not set
CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
CONFIG_ARCH_SUPPORTS_MEMORY_FAILURE=y
# CONFIG_MEMORY_FAILURE is not set
# CONFIG_HIGHPTE is not set
# CONFIG_X86_CHECK_BIOS_CORRUPTION is not set
# CONFIG_X86_RESERVE_LOW_64K is not set
# CONFIG_MATH_EMULATION is not set
CONFIG_MTRR=y
# CONFIG_MTRR_SANITIZER is not set
# CONFIG_X86_PAT is not set
# CONFIG_EFI is not set
CONFIG_SECCOMP=y
# CONFIG_CC_STACKPROTECTOR is not set
# CONFIG_HZ_100 is not set
CONFIG_HZ_250=y
# CONFIG_HZ_300 is not set
# CONFIG_HZ_1000 is not set
CONFIG_HZ=250
CONFIG_SCHED_HRTICK=y
# CONFIG_KEXEC is not set
# CONFIG_CRASH_DUMP is not set
CONFIG_PHYSICAL_START=0x1000000
# CONFIG_RELOCATABLE is not set
CONFIG_PHYSICAL_ALIGN=0x100000
CONFIG_HOTPLUG_CPU=y
# CONFIG_COMPAT_VDSO is not set
# CONFIG_CMDLINE_BOOL is not set
CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y

а да. забыл маленький ньюанс.

а да. забыл маленький ньюанс. турион на amd64, а п4 на x86. мб это накладывает отпечаток различия?

Кстати, на моём Core 2 Duo

Кстати, на моём Core 2 Duo всё распределено примерно поровну. Конфиг

Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Сохранить установки".