All of lore.kernel.org
 help / color / mirror / Atom feed
From: John Fastabend <john.fastabend@gmail.com>
To: Eric Dumazet <edumazet@google.com>,
	"David S . Miller" <davem@davemloft.net>
Cc: netdev <netdev@vger.kernel.org>,
	Willem de Bruijn <willemb@google.com>,
	Adam Belay <abelay@google.com>, Zach Brown <zach.brown@ni.com>,
	Tariq Toukan <tariqt@mellanox.com>,
	Yuval Mintz <Yuval.Mintz@cavium.com>,
	Ariel Elior <ariel.elior@cavium.com>,
	Eric Dumazet <eric.dumazet@gmail.com>
Subject: Re: [PATCH net-next 0/5] net: busy-poll: allow preemption and other optimizations
Date: Wed, 16 Nov 2016 10:03:43 -0800	[thread overview]
Message-ID: <582C9F7F.2070807@gmail.com> (raw)
In-Reply-To: <1479233715-9905-1-git-send-email-edumazet@google.com>

On 16-11-15 10:15 AM, Eric Dumazet wrote:
> It is time to have preemption points in sk_busy_loop() and improve
> its scalability.
> 
> Also napi_complete() and friends can tell drivers when it is safe to
> not re-enable device interrupts, saving some overhead under
> high busy polling.
> 
> mlx4 and bnx2x are changed accordingly, to show how this busy polling
> status can be exploited by drivers.
> 
> Next steps will implement Zach Brown suggestion, where NAPI polling
> would be enabled all the time for some chosen queues.
> This is needed for efficient epoll() support anyway.

Would you expect to make this a per queue option of the hardware
configured via ethtool/netlink/sysfs and like where users steer traffic
to particular queues using existing ntuple filters or 'tc' or infer it
from the socket layer?

So configuration would be (a) enable busy-polling on queues x,y,z and
then (b) use ntuple/RSS/etc to steer relative traffic to queues. In
this case traffic doesn't need to be bound to a socket in any way.
Seems like a useful generalization.

Thanks,
John

> 
> Eric Dumazet (5):
>   net: busy-poll: allow preemption in sk_busy_loop()
>   net: busy-poll: remove need_resched() from sk_can_busy_loop()
>   net: busy-poll: return busypolling status to drivers
>   net/mlx4_en: use napi_complete_done() return value
>   bnx2x: switch to napi_complete_done()
> 
>  drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c |  15 ++--
>  drivers/net/ethernet/mellanox/mlx4/en_rx.c      |   4 +-
>  include/linux/netdevice.h                       |  17 +++-
>  include/net/busy_poll.h                         |   5 +-
>  net/core/dev.c                                  | 110 +++++++++++++++++++-----
>  5 files changed, 113 insertions(+), 38 deletions(-)
> 

  parent reply	other threads:[~2016-11-16 18:04 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-11-15 18:15 [PATCH net-next 0/5] net: busy-poll: allow preemption and other optimizations Eric Dumazet
2016-11-15 18:15 ` [PATCH net-next 1/5] net: busy-poll: allow preemption in sk_busy_loop() Eric Dumazet
2016-11-15 18:15 ` [PATCH net-next 2/5] net: busy-poll: remove need_resched() from sk_can_busy_loop() Eric Dumazet
2016-11-15 18:15 ` [PATCH net-next 3/5] net: busy-poll: return busypolling status to drivers Eric Dumazet
2016-11-15 18:15 ` [PATCH net-next 4/5] net/mlx4_en: use napi_complete_done() return value Eric Dumazet
2016-11-15 18:15 ` [PATCH net-next 5/5] bnx2x: switch to napi_complete_done() Eric Dumazet
2016-11-16 18:03 ` John Fastabend [this message]
2016-11-16 18:41 ` [PATCH net-next 0/5] net: busy-poll: allow preemption and other optimizations 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=582C9F7F.2070807@gmail.com \
    --to=john.fastabend@gmail.com \
    --cc=Yuval.Mintz@cavium.com \
    --cc=abelay@google.com \
    --cc=ariel.elior@cavium.com \
    --cc=davem@davemloft.net \
    --cc=edumazet@google.com \
    --cc=eric.dumazet@gmail.com \
    --cc=netdev@vger.kernel.org \
    --cc=tariqt@mellanox.com \
    --cc=willemb@google.com \
    --cc=zach.brown@ni.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 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.