Hi Donald,

     IOMMU is disabled.
     I do have one another observation. We don't have latency issue with 
higher packet sizes. But when we reach the wire-line on higher packet 
sizes, we are again seeing increase in latency. At that time CPU is free 
and no rx_missed and rx_no_dma errors.
     Is there anything trigger at that point ?

Rgds,
Nishit Shah.

On 5/3/2013 4:24 AM, Skidmore, Donald C wrote:
> Hey Nishit,
>
> Another engineer reminded me that IOMMU is never good for latency.   You 
> should also make sure that is disabled.
>
> Thanks,
> -Don Skidmore<[email protected]>
>
>
>> -----Original Message-----
>> From: Skidmore, Donald C
>> Sent: Thursday, May 02, 2013 2:50 PM
>> To: Nishit Shah
>> Cc: [email protected]
>> Subject: RE: [E1000-devel] 82599 latency increase with rx_missed_errors
>>
>> Hey Nishit,
>>
>> I'm not sure what I can tell you.  It looks like your device is loaded down 
>> with
>> small packets we know this will overload the PCI bus, this will of course
>> adversely event latency.  You could try something like DCB.  Put your traffic
>> that needs low latency on one TC and the small packet traffic on another and
>> use FC on that TC.  This of course would require switches that support DCB
>> and is assuming your small packet traffic and latency dependent are different
>> flows.  If they are not then you need some other mechanism to throttle your
>> traffic before it saturates the bus.
>>
>> Thanks,
>> -Don Skidmore<[email protected]>
>>
>>> -----Original Message-----
>>> From: Nishit Shah [mailto:[email protected]]
>>> Sent: Thursday, May 02, 2013 8:52 AM
>>> To: Skidmore, Donald C
>>> Cc: [email protected]
>>> Subject: Re: [E1000-devel] 82599 latency increase with
>>> rx_missed_errors
>>>
>>>
>>> Hi Don,
>>>
>>>       Thanks for all the explanations. It will be a great help.
>>>       Can you suggest some pointers to look more into PCIe bus
>>> configurations/tuning ?
>>>
>>> Rgds,
>>> Nishit Shah.
>>>
>>> On 5/2/2013 3:41 AM, Skidmore, Donald C wrote:
>>>> Hey Nishit,
>>>>
>>>> I replied inline below.
>>>>
>>>> Thanks,
>>>> -Don Skidmore<[email protected]>
>>>>
>>>>> -----Original Message-----
>>>>> From: Nishit Shah [mailto:[email protected]]
>>>>> Sent: Tuesday, April 30, 2013 11:46 PM
>>>>> To: Skidmore, Donald C
>>>>> Cc: [email protected]
>>>>> Subject: Re: [E1000-devel] 82599 latency increase with
>>>>> rx_missed_errors
>>>>>
>>>>>
>>>>> Hi Don,
>>>>>
>>>>> On 5/1/2013 3:40 AM, Skidmore, Donald C wrote:
>>>>>> Hi Nishit,
>>>>>>
>>>>>> The rx_no_dma_resources means we are dropping packets because
>> we
>>>>> don't have any free descriptors in the RX Queue.  While
>>>>> rx_missed_errors are due to insufficient space to store an ingress
>>>>> packet, so basically we ran out of buffers or bandwidth on the PCIe bus.
>>>>>
>>>>> Thanks for the explanation. Is there any way to verify whether we
>>>>> are running out of buffers or bandwidth on the PCIe bus ?
>>>> To a large extent these are transparent to the driver.  You could
>>>> put on FC
>>> and if you still see that same number of rx_missed_errors this would
>>> infer that you are overloading your bus.
>>>>>                    (ixgbe loading shows PCIe 5.0GT/s:Width x8)
>>>>>
>>>>>            # dmesg | grep "0000:06:00"
>>>>>            ixgbe 0000:06:00.0: PCI->APIC IRQ transform: INT C ->   IRQ 18
>>>>>            ixgbe 0000:06:00.0: setting latency timer to 64
>>>>>            ixgbe 0000:06:00.0: irq 40 for MSI/MSI-X
>>>>>            ixgbe 0000:06:00.0: irq 41 for MSI/MSI-X
>>>>>            ixgbe 0000:06:00.0: irq 42 for MSI/MSI-X
>>>>>            ixgbe 0000:06:00.0: (PCI Express:5.0GT/s:Width x8)
>>>>> 00:90:fb:45:f1:76
>>>>>            ixgbe 0000:06:00.0: eth0: MAC: 2, PHY: 14, SFP+: 5, PBA No:
>>>>>            ixgbe 0000:06:00.0: eth0: Enabled Features: RxQ: 2 TxQ: 2
>>>>> FdirHash
>>> RSS
>>>>>            ixgbe 0000:06:00.0: eth0: Intel(R) 10 Gigabit Network 
>>>>> Connection
>>>>>            ixgbe 0000:06:00.1: PCI->APIC IRQ transform: INT D ->   IRQ 19
>>>>>            ixgbe 0000:06:00.1: setting latency timer to 64
>>>>>            ixgbe 0000:06:00.1: irq 43 for MSI/MSI-X
>>>>>            ixgbe 0000:06:00.1: irq 44 for MSI/MSI-X
>>>>>            ixgbe 0000:06:00.1: irq 45 for MSI/MSI-X
>>>>>            ixgbe 0000:06:00.1: (PCI Express:5.0GT/s:Width x8)
>>>>> 00:90:fb:45:f1:77
>>>>>            ixgbe 0000:06:00.1: eth1: MAC: 2, PHY: 14, SFP+: 6, PBA No:
>>>>>            ixgbe 0000:06:00.1: eth1: Enabled Features: RxQ: 2 TxQ: 2
>>>>> FdirHash
>>> RSS
>>>>>            ixgbe 0000:06:00.1: eth1: Intel(R) 10 Gigabit Network
>>>>> Connection
>>>>>
>>>>>        One another interesting observation.
>>>>>        When we have changed the packet buffer from 512 KB to 128 KB
>>>>> (by changing rx_pb_size in ixgbe_82599.c), per packet latency is
>>>>> reduced from
>>>>> 500 microseconds to 100 microseconds for 64 bytes packets.
>>>>>        Does it mean some kind of relation with size of packet buffer ?
>>>> This most likely shows that your small packet flow is overloading
>>>> the PCIe
>>> bus.  Since shrinking the packet buffer would me it would take less
>>> time backfill while you wait on the saturated PCIe bus.  So when you
>>> shrink the packet buffer you don't wait as long queued up for PCIe bus
>>> that can't handle your load.  So I'm wouldn't think this would be a
>>> solution for you the real issue here is that the bus can't keep up with 
>>> small
>> packets loads.
>>>>>> All that said when you see the  rx_no_dma_resources errors is
>>>>>> their rate
>>>>> comparable with what you were seeing for rx_missed_errors?  Both
>>>>> will lead to the same thing, dropped packets.
>>>>>
>>>>>        I have find out the frame size from where we are getting
>>>>> rx_missed_errors and below is a rate at those sizes.
>>>>>
>>>>>        frame size 110 bytes        (avg. latency 45 microseconds)
>>>>>            - no rx_missed_errors.
>>>>>            - rx_no_dma_resources increase rate is 8200000/sec
>>>>>
>>>>>        frame size 108 bytes        (avg. latency 345 microseconds)
>>>>>            - rx_missed_errors increase rate is 207000/sec
>>>>>            - rx_no_dma_resources increase rate is 8300000/sec
>>>> I assume you crossed some boundary here with the lower frame size
>>>> you
>>> have more PCI transaction for the same data throughput.  So once you
>>> crossed to 108 bytes you start running out of PCIe bandwidth.
>>>>>> Also what does 'lspci -vvv' show, I'm looking to see if you are
>>>>>> getting the full
>>>>> PCIe bandwidth.  You could also try to turn on FC which should
>>>>> lower these types of overflow occurrences.
>>>>>
>>>>>        Enabling flow control is even increasing the latency. Seems
>>>>> to be tester machine is not understanding the PAUSE frames and FC
>>>>> also clears the DROP_EN bit that is again increasing the latency.
>>>>>         lspci -vvv output is attached with the mail.
>>>>>
>>>>>> Thanks,
>>>>>> -Don Skidmore<[email protected]>
>>>>> Rgds,
>>>>> Nishit Shah.
>>>>>
>>>>>>> -----Original Message-----
>>>>>>> From: Nishit Shah [mailto:[email protected]]
>>>>>>> Sent: Tuesday, April 30, 2013 9:07 AM
>>>>>>> To: [email protected]
>>>>>>> Subject: [E1000-devel] 82599 latency increase with
>>>>>>> rx_missed_errors
>>>>>>>
>>>>>>>
>>>>>>> Hi,
>>>>>>>
>>>>>>>         We are measuring packet latencies at various packet sizes
>>>>>>> (64 bytes to
>>>>>>> 1518 bytes) with 82599 card with ixgbe driver 3.7.21.
>>>>>>>
>>>>>>> Setup:
>>>>>>>
>>>>>>>         Spirent test center sender                       machine with 
>>>>>>> 82599
>>>>>>> (ixgbe 3.7.21 and vanilla 2.6.39.4)        Spirent test center receiver
>>>>>>>
>>>>>>>             10 G<------------------------>             10G
>>>>>>> 10G<------------------------------>           10G
>>>>>>>
>>>>>>>         When we don't have an increase in "rx_missed_errors" and
>>>>>>> "rx_no_dma_resources", we are getting per packet latency around
>>>>>>> 40-70 microseconds. ("rx_no_buffer_count" is not increasing)
>>>>>>>         When we have an increase in "rx_no_dma_resources", we are
>>>>>>> still
>>>>> getting
>>>>>>> per packet latency around 40-70 microseconds.
>>>>>>> ("rx_no_buffer_count" is not increasing)
>>>>>>>         When we have an increase in "rx_missed_errors", we are
>>>>>>> getting per packet latency around 500 microseconds.
>>>>>>> (rx_no_buffer_count is not
>>>>>>> increasing)
>>>>>>>
>>>>>>>         Is there any specific reason for latency increase when
>>>>> "rx_missed_errors"
>>>>>>> are increased ?
>>>>>>>         Is there a way to control it ?
>>>>>>>
>>>>>>>         Below is a machine detail.
>>>>>>>
>> ==========================================================
>>>>>>> ===============================================
>>>>>>> Machine details.
>>>>>>>
>>>>>>>         CPU:            Dual Core Intel(R) Celeron(R) CPU G540 @ 2.50GHz
>>>>>>>         Memory:       2 GB
>>>>>>>          kernel:        vanilla 2.6.39.4
>>>>>>>         Interface tuning parameters:
>>>>>>>                     Auto Negotiation is off    (DROP_EN is set.)
>>>>>>>                     ethtool -G eth0 rx 64 tx 128 ; ethtool -G eth1 rx 
>>>>>>> 64 tx 128
>>>>>>>                     rx-usecs is set to 50.
>>>>>>>         ethtool and lspci for bus information:
>>>>>>>
>>>>>>>             # ethtool -i eth0
>>>>>>>             driver: ixgbe
>>>>>>>             version: 3.7.21-NAPI
>>>>>>>             firmware-version: 0x80000345
>>>>>>>             bus-info: 0000:06:00.0
>>>>>>>             #
>>>>>>>             # ethtool -i eth1
>>>>>>>             driver: ixgbe
>>>>>>>             version: 3.7.21-NAPI
>>>>>>>             firmware-version: 0x80000345
>>>>>>>             bus-info: 0000:06:00.1
>>>>>>>
>>>>>>>             06:00.0 Class 0200: Device 8086:10fb (rev 01)
>>>>>>>                 Subsystem: Device 15bb:30e0
>>>>>>>                 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: 64 bytes
>>>>>>>                 Interrupt: pin A routed to IRQ 18
>>>>>>>                 Region 0: Memory at f7520000 (64-bit,
>>>>>>> non-prefetchable)
>>>>> [size=128K]
>>>>>>>                 Region 2: I/O ports at 8020 [size=32]
>>>>>>>                 Region 4: Memory at f7544000 (64-bit,
>>>>>>> non-prefetchable)
>>>>> [size=16K]
>>>>>>>                 Capabilities: [40] Power Management version 3
>>>>>>>                     Flags: PMEClk- DSI+ D1- D2- AuxCurrent=0mA
>>>>>>> PME(D0+,D1-,D2-,D3hot+,D3cold-)
>>>>>>>                     Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=1 
>>>>>>> PME-
>>>>>>>                 Capabilities: [50] MSI: Enable- Count=1/1 Maskable+ 
>>>>>>> 64bit+
>>>>>>>                     Address: 0000000000000000  Data: 0000
>>>>>>>                     Masking: 00000000  Pending: 00000000
>>>>>>>                 Capabilities: [70] MSI-X: Enable+ Count=64 Masked-
>>>>>>>                     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 #1, Speed 5GT/s, Width x8, ASPM
>>>>>>> L0s, Latency
>>>>> L0<2us,
>>>>>>> L1<32us
>>>>>>>                         ClockPM- Surprise- LLActRep- BwNot-
>>>>>>>                     LnkCtl: ASPM Disabled; RCB 64 bytes Disabled-
>>>>>>> Retrain-
>>>>>>> CommClk-
>>>>>>>                         ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
>>>>>>>                     LnkSta: Speed 5GT/s, Width x8, TrErr- Train-
>>>>>>> SlotClk+
>>>>>>> DLActive- BWMgmt- ABWMgmt-
>>>>>>>                     DevCap2: Completion Timeout: Range ABCD, TimeoutDis+
>>>>>>>                     DevCtl2: Completion Timeout: 50us to 50ms, 
>>>>>>> TimeoutDis-
>>>>>>>                     LnkCtl2: Target Link Speed: 5GT/s,
>>>>>>> EnterCompliance- SpeedDis-, Selectable De-emphasis: -6dB
>>>>>>>                          Transmit Margin: Normal Operating Range,
>>>>>>> EnterModifiedCompliance- ComplianceSOS-
>>>>>>>                          Compliance De-emphasis: -6dB
>>>>>>>                     LnkSta2: Current De-emphasis Level: -6dB
>>>>>>>                 Capabilities: [e0] Vital Product Data
>>>>>>>                     Unknown small resource type 06, will not decode 
>>>>>>> more.
>>>>>>>                 Kernel driver in use: ixgbe
>>>>>>>                 Kernel modules: ixgbe
>>>>>>>
>>>>>>>             06:00.1 Class 0200: Device 8086:10fb (rev 01)
>>>>>>>                 Subsystem: Device 15bb:30e0
>>>>>>>                 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: 64 bytes
>>>>>>>                 Interrupt: pin B routed to IRQ 19
>>>>>>>                 Region 0: Memory at f7500000 (64-bit,
>>>>>>> non-prefetchable)
>>>>> [size=128K]
>>>>>>>                 Region 2: I/O ports at 8000 [size=32]
>>>>>>>                 Region 4: Memory at f7540000 (64-bit,
>>>>>>> non-prefetchable)
>>>>> [size=16K]
>>>>>>>                 Capabilities: [40] Power Management version 3
>>>>>>>                     Flags: PMEClk- DSI+ D1- D2- AuxCurrent=0mA
>>>>>>> PME(D0+,D1-,D2-,D3hot+,D3cold-)
>>>>>>>                     Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=1 
>>>>>>> PME-
>>>>>>>                 Capabilities: [50] MSI: Enable- Count=1/1 Maskable+ 
>>>>>>> 64bit+
>>>>>>>                     Address: 0000000000000000  Data: 0000
>>>>>>>                     Masking: 00000000  Pending: 00000000
>>>>>>>                 Capabilities: [70] MSI-X: Enable+ Count=64 Masked-
>>>>>>>                     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 #1, Speed 5GT/s, Width x8, ASPM
>>>>>>> L0s, Latency
>>>>> L0<2us,
>>>>>>> L1<32us
>>>>>>>                         ClockPM- Surprise- LLActRep- BwNot-
>>>>>>>                     LnkCtl: ASPM Disabled; RCB 64 bytes Disabled-
>>>>>>> Retrain-
>>>>>>> CommClk-
>>>>>>>                         ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
>>>>>>>                     LnkSta: Speed 5GT/s, Width x8, TrErr- Train-
>>>>>>> SlotClk+
>>>>>>> DLActive- BWMgmt- ABWMgmt-
>>>>>>>                     DevCap2: Completion Timeout: Range ABCD, TimeoutDis+
>>>>>>>                     DevCtl2: Completion Timeout: 50us to 50ms, 
>>>>>>> TimeoutDis-
>>>>>>>                     LnkCtl2: Target Link Speed: 2.5GT/s,
>>>>>>> EnterCompliance- SpeedDis-
>>>>> ,
>>>>>>> Selectable De-emphasis: -6dB
>>>>>>>                          Transmit Margin: Normal Operating Range,
>>>>>>> EnterModifiedCompliance- ComplianceSOS-
>>>>>>>                          Compliance De-emphasis: -6dB
>>>>>>>                     LnkSta2: Current De-emphasis Level: -6dB
>>>>>>>                 Capabilities: [e0] Vital Product Data
>>>>>>>                     Unknown small resource type 06, will not decode 
>>>>>>> more.
>>>>>>>                 Kernel driver in use: ixgbe
>>>>>>>                 Kernel modules: ixgbe
>>>>>>>
>> ==========================================================
>>>>>>> ===============================================
>>>>>>>
>>>>>>> Rgds,
>>>>>>> Nishit Shah.
>>>>>>>
>>>>>>> -----------------------------------------------------------------
>>>>>>> --
>>>>>>> ----------- Introducing AppDynamics Lite, a free troubleshooting
>>>>>>> tool for Java/.NET
>>>>> Get
>>>>>>> 100% visibility into your production application - at no cost.
>>>>>>> Code-level diagnostics for performance bottlenecks with<2%
>>>>>>> overhead Download for free and get started troubleshooting in
>> minutes.
>>>>>>> http://p.sf.net/sfu/appdyn_d2d_ap1
>>>>>>> _______________________________________________
>>>>>>> E1000-devel mailing list
>>>>>>> [email protected]
>>>>>>> https://lists.sourceforge.net/lists/listinfo/e1000-devel
>>>>>>> To learn more about Intel&#174; Ethernet, visit
>>>>>>> http://communities.intel.com/community/wired


------------------------------------------------------------------------------
AlienVault Unified Security Management (USM) platform delivers complete
security visibility with the essential security capabilities. Easily and
efficiently configure, manage, and operate all of your security controls
from a single console and one unified framework. Download a free trial.
http://p.sf.net/sfu/alienvault_d2d
_______________________________________________
E1000-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/e1000-devel
To learn more about Intel&#174; Ethernet, visit 
http://communities.intel.com/community/wired

Reply via email to