[GTER] Ethernet Hyper Threading...

Lucas Willian Bocchi lucas.bocchi at gmail.com
Thu Sep 6 13:20:32 -03 2012


Henrique

Me corrija se eu estiver errado, mas na documentação do Kernel
(http://www.mjmwired.net/kernel/Documentation/IRQ-affinity.txt) não
encontrei nenhuma referência que as placas necessitem ser MSI/MSI-X
para funcionar o balancamento de IRQ, tanto que uso esse recurso a
muito tempo e em placas PCI desde que saiu a série 2.6 do kernel.

Que eu sabia a questão do MSI-X serve para fazer Receive Size Scaling,
no qual você tem os recursos de multiqueue e que você pode
redirecionar cada uma das irq's associadas as placas de rede. Até com
RPS é possível fazer isso redirecionando as softirqs.

Tenho os dois exemplos para citar

 127:          2          0          0          0          8
0          0          0  IR-PCI-MSI-edge      eth4-0
 128:     277818          0          0  175031325          0
85584          0          0  IR-PCI-MSI-edge      eth4-1
 129:    1313843          0  254801505          0          0
0          0     380766  IR-PCI-MSI-edge      eth4-2
 130:     297185          0          0          0      86806
0          0  170717410  IR-PCI-MSI-edge      eth4-3
 131:     302735          0          0          0          0
556734022          0      79142  IR-PCI-MSI-edge      eth4-4

driver: tg3
version: 3.123
firmware-version: FFV7.2.14 bc 5719-v1.29
bus-info: 0000:05:00.0
supports-statistics: yes
supports-test: yes
supports-eeprom-access: yes
supports-register-dump: yes
supports-priv-flags: no

05:00.0 Ethernet controller: Broadcom Corporation NetXtreme BCM5719
Gigabit Ethernet PCIe (rev 01)
        Subsystem: Broadcom Corporation Device 1904
        Flags: bus master, fast devsel, latency 0, IRQ 48
        Memory at d5240000 (64-bit, prefetchable) [size=64K]
        Memory at d5250000 (64-bit, prefetchable) [size=64K]
        Memory at d5260000 (64-bit, prefetchable) [size=64K]
        Expansion ROM at da000000 [disabled] [size=256K]
        Capabilities: [48] Power Management version 3
        Capabilities: [50] Vital Product Data
        Capabilities: [58] MSI: Enable- Count=1/8 Maskable- 64bit+
        Capabilities: [a0] MSI-X: Enable+ Count=17 Masked-
        Capabilities: [ac] Express Endpoint, MSI 00
        Capabilities: [100] Advanced Error Reporting
        Capabilities: [13c] Device Serial Number 00-00-00-10-18-e5-65-8c
        Capabilities: [150] Power Budgeting <?>
        Capabilities: [160] Virtual Channel
        Capabilities: [230] Transaction Processing Hints
        Kernel driver in use: tg3


 16:          0          0     999924          0   IO-APIC-fasteoi
uhci_hcd:usb1, uhci_hcd:usb9, snd_hda_intel, eth3

driver: 3c59x
version:
firmware-version:
bus-info: 0000:06:04.0
supports-statistics: yes
supports-test: no
supports-eeprom-access: no
supports-register-dump: no
supports-priv-flags: no

06:04.0 Ethernet controller: 3Com Corporation 3c905C-TX/TX-M [Tornado] (rev 74)
        Subsystem: 3Com Corporation 3C905CX-TX/TX-M Fast Etherlink for
PC Management NIC
        Flags: bus master, medium devsel, latency 64, IRQ 16
        I/O ports at bd00 [size=128]
        Memory at fbbfd000 (32-bit, non-prefetchable) [size=128]
        [virtual] Expansion ROM at cff40000 [disabled] [size=128K]
        Capabilities: [dc] Power Management version 2
        Kernel driver in use: 3c59x


Ambos os kernels estão na versão 3.5.3
Em 6 de setembro de 2012 10:47, Henrique de Moraes Holschuh
<henrique.holschuh at ima.sp.gov.br> escreveu:
> On 05-09-2012 15:53, Lucas Willian Bocchi wrote:
>>
>> você pode usar o smp_affinity para direcionar determinara irq para o
>>  core que quiser, ou usar o irqbalance
>
>
> Isso precisa de MSI-X para funcionar.  Se for só MSI, o melhor que dá
> para fazer é usar as affinities para definir que cores vão receber as
> interrupções em *round-robin*.
>
> MSI-X vai funcionar de cara em qualquer placa mãe recente que preste, e
> em qualquer NIC recente que preste e que tenha um driver que preste.
> Exemplos são: Intel 82576 ou mais atual, e Broadcom 5709 ou mais atual.
> Nos dois casos, de preferência procure pelo "mais atual".
>
> Para saber se está em modo MSI-X, infelizmente muitas vezes só olhando
> no lspci -v, porque indicar se é MSI ou MSI-X em /proc/interrupts é
> coisa de kernel muito recente.
>
> E RHEL 5.x e derivados não se prestam muito bem para esse tipo de
> função.  Use Debian, Ubuntu LTS, ou um RHEL 6.x ou derivado.
>
> --
> Henrique de Moraes Holschuh <hmh at ima.sp.gov.br>
> IM@ - Informática de Municípios Associados
> Engenharia de Telecomunicações
> TEL +55-19-3755-6555/CEL +55-19-9293-9464
>
> Antes de imprimir, lembre-se de seu compromisso com o Meio Ambiente
> e do custo que você pode evitar.
>
> --
> gter list    https://eng.registro.br/mailman/listinfo/gter



More information about the gter mailing list