From: Alexander Duyck <alexander.duyck@gmail.com>
To: intel-wired-lan@osuosl.org
Subject: [Intel-wired-lan] [next-queue 15/17] fm10k: change default Tx ITR to 25usec
Date: Wed, 14 Oct 2015 19:23:39 -0700 [thread overview]
Message-ID: <561F0E2B.5060308@gmail.com> (raw)
In-Reply-To: <1444866251.26286.54.camel@intel.com>
On 10/14/2015 04:44 PM, Keller, Jacob E wrote:
> On Wed, 2015-10-14 at 16:27 -0700, Alexander Duyck wrote:
>> Sounds reasonable. With TCP loss can also play a huge factor,
>> although
>> I would assume you probably have no dropped packets correct?
>>
>
> No drops for UDP, but with TCP I see drops on the receiving partner...
> no more than about 200 total though.
>
>>> I've been getting pretty inconsistent performance results over the
>>> last
>>> few tests.
>>>
>>> I tried these tests with interrupt moderation disabled completely
>>> and I
>>> generally got less performance.
>>
>> Completely disabling it will usually do that. The problem is the
>> rates
>> for 50Gbs are insane. You are looking at 4Mpps even with 1514 byte
>> packets.
>
> Ok that makes sense, yea. Too much wakeup causes us to waste a lot.
>
>>
>>> Interestingly, I just set both rx and tx to 10, and got one test
>>> through to report 39Gb/s... But I am definitely not able to
>>> consistently hit this value.
>>
>> The 10us range should be excessive. I would expect you would see the
>> best performance right around the amount of time it should take to
>> almost fill the ring or socket buffers without actually ever filling
>> them. Basically it is a game of get as close as you can without
>> going
>> over in order to get the fewest interrupts possible.
>>
>
> I am not sure what is best, but 10 so far as been I will try a few
> others...
>
>>> I generally seem to range pretty wide over tests.
>>
>> CPU affinity along with everything else can always make these kind of
>> tests pretty messy. I'm assuming you have power management also
>> disabled? If not that could also cause some pretty wide swings due
>> to
>> processor C states and P states.
>>
>>> For UDP I used:
>>>
>>> ./netperf -T0,5 -t UDP_STREAM -f m -c -C -H 192.168.21.2 -- -m 64k
>>>
>>> For this test, I see 80% CPU utilization on the sender, and 50% on
>>> the
>>> receiver, when bound as above.
>>>
>>> I seem to get ~16Gb/s send and receive here, with no variance...
>>
>> The fact that there is no variance likely means something is
>> bottlenecking this somewhere early on in the Tx.
>>
>>> I suspect part of this is due to the fact that TCP can do hardware
>>> TSO,
>>> which we don't have in UDP? I'm not sure here..
>>
>> TCP will also allow you to have significantly more data in flight in
>> many cases. UDP is normally confined to a fairly small window.
>>
>
> Makes sense.
>
>>> UDP is significantly more stable than TCP was. but it doesn't seem
>>> to
>>> ever go above 16Gb/s for a single stream.
>>
>> I'd be interested in seeing the actual numbers. I know for some
>> UDP_STREAM tests I have run it ends up being that one side is
>> transmitting a significant amount, while the receiving side is only
>> getting a fraction of it because packets are being dropped due to
>> overrunning the socket.
>>
>
> According to netperf, it doesn't have any dropped packets doing UDP,
> ethtool agrees:
>
> MIGRATED UDP STREAM TEST from 0.0.0.0 (0.0.0.0) port 0 AF_INET to 192.168.21.2 () port 0 AF_INET : cpu bind
> Socket Message Elapsed Messages CPU Service
> Size Size Time Okay Errors Throughput Util Demand
> bytes bytes secs # # 10^6bits/sec % SS us/KB
>
> 212992 64000 10.00 319414 0 16349.8 9.57 0.959
> 212992 10.00 319407 16349.4 9.57 0.959
>
>
>
> So this looks quite low comapred to TCP, but it has no variance.
So one thing you might try doing is modifying the wmem_default sysctl
value to something larger. Maybe try doubling it to see if that has any
effect. The issue could be that you aren't able to get enough packets
in flight to actually saturate the link.
>>> I'm still a bit concerned over the instability produced by
>>> TCP_STREAM,
>>> but it should be noted that my test setup is far from ideal:
>>
>> Agreed.
>>
>
> I can't really get a better one at present because we don't have
> hardware with multiple host interfaces on different boxes that is
> available to me for long term usage for test case here..
>
>>> I currently only have a single host interface, and have used
>>> network
>>> namespacing to separate the two devices so that it routes over the
>>> physical hardware. So it's a single system test which impacts irq
>>> to
>>> CPU binding, as well as queue to CPU binding, and so on. There are
>>> a
>>> lot of issues here that impact, but I'm happy to be able to get
>>> much
>>> better than 2-3Gb/s like I was before.
>>>
>>> Any further suggestions would be appreciated.
>>>
>>> Regards,
>>> Jake
>>
>>
>> The only other thing I can think of is to check flow control, but as
>> I
>> recall that is disabled by default with fm10k.
>>
>> - Alex
>>
>
>
> There is no hardware ethernet flow control at all for the fm10k
> interface.
There is a flow control mechanism in the form of DMA back pressure that
can be exerted by the PEP interfaces. It is controlled via the ethtool
flow control interface. I believe it is defaulted to off though since
that is what is in the current upstream driver.
- Alex
next prev parent reply other threads:[~2015-10-15 2:23 UTC|newest]
Thread overview: 40+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-10-13 23:38 [Intel-wired-lan] [next-queue 01/17] fm10k: conditionally compile DCB and DebugFS support Jacob Keller
2015-10-13 23:38 ` [Intel-wired-lan] [next-queue 02/17] fm10k: set netdev features in one location Jacob Keller
2015-10-13 23:39 ` [Intel-wired-lan] [next-queue 03/17] fm10k: reinitialize queuing scheme after calling init_hw Jacob Keller
2015-10-13 23:39 ` [Intel-wired-lan] [next-queue 04/17] fm10k: reset max_queues on init_hw_vf failure Jacob Keller
2015-10-13 23:39 ` [Intel-wired-lan] [next-queue 05/17] fm10k: always check init_hw for errors Jacob Keller
2015-10-14 0:46 ` Allan, Bruce W
2015-10-14 15:57 ` Keller, Jacob E
2015-10-28 0:47 ` Singh, Krishneil K
2015-10-13 23:39 ` [Intel-wired-lan] [next-queue 06/17] fm10k: Correct typecast in fm10k_update_xc_addr_pf Jacob Keller
2015-10-14 0:46 ` Allan, Bruce W
2015-10-13 23:39 ` [Intel-wired-lan] [next-queue 07/17] fm10k: explicitly typecast vlan values to u16 Jacob Keller
2015-10-13 23:39 ` [Intel-wired-lan] [next-queue 08/17] fm10k: add statistics for actual DWORD count of mbmem mailbox Jacob Keller
2015-10-14 0:47 ` Allan, Bruce W
2015-10-13 23:39 ` [Intel-wired-lan] [next-queue 09/17] fm10k: rename mbx_tx_oversized statistic to mbx_tx_dropped Jacob Keller
2015-10-13 23:39 ` [Intel-wired-lan] [next-queue 10/17] fm10k: add TEB check to fm10k_gre_is_nvgre Jacob Keller
2015-10-14 0:47 ` Allan, Bruce W
2015-10-13 23:39 ` [Intel-wired-lan] [next-queue 11/17] fm10k: Add support for ITR scaling based on PCIe link speed Jacob Keller
2015-10-14 0:47 ` Allan, Bruce W
2015-10-13 23:39 ` [Intel-wired-lan] [next-queue 12/17] fm10k: introduce ITR_IS_ADAPTIVE macro Jacob Keller
2015-10-13 23:39 ` [Intel-wired-lan] [next-queue 13/17] fm10k: Update adaptive ITR algorithm Jacob Keller
2015-10-14 18:35 ` Alexander Duyck
2015-10-14 20:12 ` Keller, Jacob E
2015-10-14 22:40 ` Alexander Duyck
2015-10-14 23:50 ` Keller, Jacob E
2015-10-15 2:17 ` Alexander Duyck
2015-10-15 16:32 ` Keller, Jacob E
2015-10-13 23:39 ` [Intel-wired-lan] [next-queue 14/17] fm10k: use macro for default Tx and Rx ITR values Jacob Keller
2015-10-13 23:39 ` [Intel-wired-lan] [next-queue 15/17] fm10k: change default Tx ITR to 25usec Jacob Keller
2015-10-14 15:15 ` Alexander Duyck
2015-10-14 15:59 ` Keller, Jacob E
2015-10-14 16:23 ` Alexander Duyck
2015-10-14 16:31 ` Keller, Jacob E
2015-10-14 17:57 ` Keller, Jacob E
2015-10-14 23:27 ` Alexander Duyck
2015-10-14 23:44 ` Keller, Jacob E
2015-10-15 2:23 ` Alexander Duyck [this message]
2015-10-15 16:35 ` Keller, Jacob E
2015-10-13 23:39 ` [Intel-wired-lan] [next-queue 16/17] fm10k: TRIVIAL fix typo of hardware Jacob Keller
2015-10-13 23:39 ` [Intel-wired-lan] [next-queue 17/17] fm10k: TRIVIAL cleanup order at top of fm10k_xmit_frame Jacob Keller
2015-10-14 0:46 ` [Intel-wired-lan] [next-queue 01/17] fm10k: conditionally compile DCB and DebugFS support Allan, Bruce W
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=561F0E2B.5060308@gmail.com \
--to=alexander.duyck@gmail.com \
--cc=intel-wired-lan@osuosl.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.