netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
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

  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).