R&D/OS

10G Network 정보 상세 파악 (ixgbe)

sunshout 2011. 5. 19. 02:46

1.    Intel 10G Network Adapter

1.1   Linux Based Driver for the 10G PCI-E

o Driver 버전 : November 19, 2010

o Important Notes

¡ Ixgbe driver default LRO(Large Receive Offload) 설정이 되어 있음

¡ LRO 대량의 패킷을 받을 CPU 부하를 줄여줌

¡ 하지만 Routing, Forwarding, Bridging incompatible

- Routing, Forwarding, Bridging 필요할 때는 컴파일타임에 LRO 설정을 제거해야

- 그렇지 않을 경우 성능 저하나 커널패닉이 발생할 있음

o 제공 기능

¡ Native VLANs

¡ Channel Bonding (teaming)

¡ SNMP

¡ Generic Receive Offload

¡ Data Center Bridging

o MSI-X

¡ Message Signaled Interrupts

- Interrupt Pin 방식이 아닌 인터럽트를 메시지로 보내는 방식

- PCI-e 에서 사용

- Device 최대 2048개의 인터럽트를 한번에 보낼 있음

- 따라서 기존의 인터럽트 방식에 비해서 성능 향상을 가질 있음

o Ethtool

¡ H/W 정보를 유용

- ethtool –S : provides H/W level stats

- ethtool –c : interrupt coalescing

- ethtool –g : ring buffer information

- ethtool –k : hw assist information

- ethtool –i : driver information

 

root@Cnode10:/home/collector/nProbe# ethtool -i eth2

driver: ixgbe

version: 2.0.44-k2

firmware-version: 1.5-0

bus-info: 0000:02:00.0

 

o lspci

¡ pci 연결된 정보를 좀더 자세하게 있음

¡ ethtool –i eth2에서 찾은 bus-info (02:00.0) 활용하여 해당 슬롯의 정보를 파악

root@Cnode10:/home/collector/nProbe# lspci -v -s 02:00.0 -v

02:00.0 Ethernet controller: Intel Corporation 82599EB 10-Gigabit Network Connection (rev 01)

        Subsystem: QUANTA Computer Inc Device 8975

        Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr+ Stepping- SERR+ FastB2B- DisINTx+

        Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-

        Latency: 0, Cache Line Size: 256 bytes

        Interrupt: pin A routed to IRQ 24

        Region 0: Memory at def80000 (64-bit, prefetchable) [size=512K]

        Region 2: I/O ports at cc00 [size=32]

        Region 4: Memory at def7c000 (64-bit, prefetchable) [size=16K]

        Capabilities: [40] Power Management version 3

                Flags: PMEClk- DSI+ D1- D2- AuxCurrent=0mA PME(D0+,D1-,D2-,D3hot+,D3cold-)

                Status: D0 PME-Enable- DSel=0 DScale=1 PME-

        Capabilities: [50] Message Signalled Interrupts: Mask+ 64bit+ Queue=0/0 Enable-

                Address: 0000000000000000  Data: 0000

                Masking: 00000000  Pending: 00000000

        Capabilities: [70] MSI-X: Enable+ Mask- TabSize=64

                Vector table: BAR=4 offset=00000000

                PBA: BAR=4 offset=00002000

        Capabilities: [a0] Express (v2) Endpoint, MSI 00

                DevCap: MaxPayload 512 bytes, PhantFunc 0, Latency L0s <512ns, L1 <64us

                        ExtTag- AttnBtn- AttnInd- PwrInd- RBE+ FLReset+

                DevCtl: Report errors: Correctable+ Non-Fatal+ Fatal+ Unsupported+

                        RlxdOrd+ ExtTag- PhantFunc- AuxPwr- NoSnoop+ FLReset-

                        MaxPayload 128 bytes, MaxReadReq 512 bytes

                DevSta: CorrErr+ UncorrErr- FatalErr- UnsuppReq+ AuxPwr- TransPend-

                LnkCap: Port #0, Speed 5GT/s, Width x8, ASPM L0s, Latency L0 unlimited, L1 <32us

                        ClockPM- Suprise- LLActRep- BwNot-

                LnkCtl: ASPM Disabled; RCB 64 bytes Disabled- Retrain- CommClk-

                        ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-

                LnkSta: Speed 5GT/s, Width x4, TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-

        Capabilities: [e0] Vital Product Data <?>

        Capabilities: [100] Advanced Error Reporting <?>

        Capabilities: [140] Device Serial Number 1a-66-8f-ff-ff-69-eb-60

        Capabilities: [150] #0e

        Capabilities: [160] #10

        Kernel driver in use: ixgbe

        Kernel modules: ixgbe

 link speed 를 변경하고 싶을 때

ethtool -s eth2 advertise 0x1000 (10Gbps/Full)
ethtool -s eth2 advertise 0x020 (1Gbps/Full)