Назад | Перейти на главную страницу

Сколько аппаратных прерываний (PCI-MSI) может иметь ПК?

На моей рабочей станции у меня было только два прерывания PCI-MSI в / proc / interrupts:

  0:   11726919          0    IO-APIC-edge  timer
  1:          3          0    IO-APIC-edge  i8042
  7:          0          0    IO-APIC-edge  parport0
  8:          1          0    IO-APIC-edge  rtc
  9:          0          0   IO-APIC-level  acpi
 12:          4          0    IO-APIC-edge  i8042
 58:         13      94016         PCI-MSI  eth0
169:     843271   71766622   IO-APIC-level  uhci_hcd:usb3, eth1, HDA Intel
201:          1          0   IO-APIC-level  uhci_hcd:usb4, uhci_hcd:usb6
209:          0          0   IO-APIC-level  ehci_hcd:usb1
217:          2          0   IO-APIC-level  ehci_hcd:usb2, uhci_hcd:usb5
225:         27   72309141   IO-APIC-level  uhci_hcd:usb7, eth2
233:       6683     103839         PCI-MSI  ahci
NMI:       2236       4056
LOC:   11696665   11696593
ERR:          0
MIS:          0

На другой, более мощной машине RACK Dell (8 ядер) таких прерываний семь.

Это зависит от количества процессоров? Является ли IO-APIC-level программным прерыванием?

Я хочу назначить прерывания PCI-MSI своим сетевым картам для повышения производительности.

ПК IIRC может иметь любое количество прерываний MSI. Но каждое устройство ограничено 32 (для PCI 2.2) или 2048 (для PCI 3.0) прерываниями MSI.

Смотрите также wiki о прерываниях, сигнализируемых сообщениями

Исходя из некоторых фундаментальных исследований, похоже, что разное оборудование будет иметь разные номера.

«Каждый приемный канал DMA сетевой карты может генерировать одно прерывание, и каждое прерывание будет нацелено на один ЦП. Sun Multi-threadaded 10GbE имеет 8 каналов приема DMA на порт, а Quad GbE - 4, поэтому их прерывания могут быть нацелены не более чем на 8 и 4 другой ЦП, соответственно. Чтобы прерывания ЦП не становились узким местом производительности, рекомендуется начинать со значения количества принимаемых каналов DMA на порт или (# ЦП), в зависимости от того, что меньше, чтобы нагрузки прерываний распределялись на достаточное количество ЦПУ."

Из http://www.solarisinternals.com/wiki/index.php/Networks

Поэтому нам нужно знать вашу материнскую плату / proc / NIC, чтобы выяснить, какая настройка была наилучшей.

«край» и «уровень» относятся к запуску по фронту и уровню, что очень сильно различается в аппаратной области. Это различие имеет смысл только при разговоре о 4 физических линиях прерывания параллельной шины PCI, если только это не программная эмуляция такого поведения или сегмент параллельной шины за мостом PCIe-PCI (который иногда используется ВНУТРИ плат расширения).