From: Alexander Duyck <alexander.duyck@gmail.com>
To: Eric Dumazet <eric.dumazet@gmail.com>,
Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Cc: davem@davemloft.net,
Jesse Brandeburg <jesse.brandeburg@intel.com>,
netdev@vger.kernel.org, nhorman@redhat.com, sassmann@redhat.com,
jogreene@redhat.com
Subject: Re: [net-next 04/17] drivers/net/intel: use napi_complete_done()
Date: Fri, 13 Nov 2015 08:06:30 -0800 [thread overview]
Message-ID: <56460A86.2000501@gmail.com> (raw)
In-Reply-To: <1447391896.22599.36.camel@edumazet-glaptop2.roam.corp.google.com>
On 11/12/2015 09:18 PM, Eric Dumazet wrote:
> On Thu, 2015-10-15 at 14:43 -0700, Jeff Kirsher wrote:
>> From: Jesse Brandeburg <jesse.brandeburg@intel.com>
>>
>> As per Eric Dumazet's previous patches:
>> (see commit (24d2e4a50737) - tg3: use napi_complete_done())
>>
>> Quoting verbatim:
>> Using napi_complete_done() instead of napi_complete() allows
>> us to use /sys/class/net/ethX/gro_flush_timeout
>>
>> GRO layer can aggregate more packets if the flush is delayed a bit,
>> without having to set too big coalescing parameters that impact
>> latencies.
>> </end quote>
>>
>> Tested
>> configuration: low latency via ethtool -C ethx adaptive-rx off
>> rx-usecs 10 adaptive-tx off tx-usecs 15
>> workload: streaming rx using netperf TCP_MAERTS
>>
>> igb:
>> MIGRATED TCP MAERTS TEST from 0.0.0.0 (0.0.0.0) port 0 AF_INET to 10.0.0.1 () port 0 AF_INET : demo
>> ...
>> Interim result: 941.48 10^6bits/s over 1.000 seconds ending at 1440193171.589
>>
>> Alignment Offset Bytes Bytes Recvs Bytes Sends
>> Local Remote Local Remote Xfered Per Per
>> Recv Send Recv Send Recv (avg) Send (avg)
>> 8 8 0 0 1176930056 1475.36 797726 16384.00 71905
>>
>> MIGRATED TCP MAERTS TEST from 0.0.0.0 (0.0.0.0) port 0 AF_INET to 10.0.0.1 () port 0 AF_INET : demo
>> ...
>> Interim result: 941.49 10^6bits/s over 0.997 seconds ending at 1440193142.763
>>
>> Alignment Offset Bytes Bytes Recvs Bytes Sends
>> Local Remote Local Remote Xfered Per Per
>> Recv Send Recv Send Recv (avg) Send (avg)
>> 8 8 0 0 1175182320 50476.00 23282 16384.00 71816
>>
>> i40e:
>> Hard to test because the traffic is incoming so fast (24Gb/s) that GRO
>> always receives 87kB, even at the highest interrupt rate.
>>
>> Other drivers were only compile tested.
>>
>> Signed-off-by: Jesse Brandeburg <jesse.brandeburg@intel.com>
>> Tested-by: Andrew Bowers <andrewx.bowers@intel.com>
>> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
>
> Hi guys
>
> I am not sure the ixgbe part is working :
>
> ixgbe_qv_unlock_napi() does :
>
> /* flush any outstanding Rx frames */
> if (q_vector->napi.gro_list)
> napi_gro_flush(&q_vector->napi, false);
>
> And it is called before napi_complete_done(napi, work_done);
Yes, I'm pretty certain you cannot use this napi_complete_done with
anything that support busy poll sockets. The problem is you need to
flush any existing lists before yielding to the socket polling in order
to avoid packet ordering issues between the NAPI polling routine and the
socket polling routine.
- Alex
next prev parent reply other threads:[~2015-11-13 16:06 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-10-15 21:43 [net-next 00/17][pull request] Intel Wired LAN Driver Updates 2015-10-15 Jeff Kirsher
2015-10-15 21:43 ` [net-next 01/17] i40e/i40evf: Fix handling of napi budget Jeff Kirsher
2015-10-15 21:43 ` [net-next 02/17] i40e/i40evf: Drop useless "IN_NETPOLL" flag Jeff Kirsher
2015-10-15 21:43 ` [net-next 03/17] i40evf: Add support for netpoll Jeff Kirsher
2015-10-15 22:10 ` Sergei Shtylyov
2015-10-15 21:43 ` [net-next 04/17] drivers/net/intel: use napi_complete_done() Jeff Kirsher
2015-11-13 5:18 ` Eric Dumazet
2015-11-13 16:06 ` Alexander Duyck [this message]
2015-11-13 16:49 ` Eric Dumazet
2015-11-13 18:49 ` Alexander Duyck
2015-10-15 21:43 ` [net-next 05/17] i40e: generate fewer startup messages Jeff Kirsher
2015-10-15 21:43 ` [net-next 06/17] i40e/i40evf: Fix compile issue related to const string Jeff Kirsher
2015-10-15 21:43 ` [net-next 07/17] i40e: remove read/write failed messages from nvmupdate Jeff Kirsher
2015-10-15 21:43 ` [net-next 08/17] i40e: Removed unused defines Jeff Kirsher
2015-10-15 21:43 ` [net-next 09/17] i40e: priv flag for controlling VEB stats Jeff Kirsher
2015-10-15 21:43 ` [net-next 10/17] i40e: Add support for non-willing Apps Jeff Kirsher
2015-10-15 21:43 ` [net-next 11/17] i40e/i40evf: moderate interrupts differently Jeff Kirsher
2015-10-15 21:43 ` [net-next 12/17] i40e: reset the invalid msg counter in vf when a valid msg is received Jeff Kirsher
2015-10-15 21:43 ` [net-next 13/17] i40evf: correctly populate vlan_features Jeff Kirsher
2015-10-15 21:43 ` [net-next 14/17] i40e: Recognize 1000Base_T_Optical phy type when link is up Jeff Kirsher
2015-10-15 21:43 ` [net-next 15/17] i40evf: relax and stagger init timing a bit Jeff Kirsher
2015-10-15 21:43 ` [net-next 16/17] i40e: increase AQ work limit Jeff Kirsher
2015-10-15 21:43 ` [net-next 17/17] i40e/i40evf: Bump i40e to 1.3.34 and i40evf to 1.3.21 Jeff Kirsher
2015-10-16 7:32 ` [net-next 00/17][pull request] Intel Wired LAN Driver Updates 2015-10-15 David Miller
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=56460A86.2000501@gmail.com \
--to=alexander.duyck@gmail.com \
--cc=davem@davemloft.net \
--cc=eric.dumazet@gmail.com \
--cc=jeffrey.t.kirsher@intel.com \
--cc=jesse.brandeburg@intel.com \
--cc=jogreene@redhat.com \
--cc=netdev@vger.kernel.org \
--cc=nhorman@redhat.com \
--cc=sassmann@redhat.com \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).