netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 0/3] Basic deferred TX queue flushing infrastructure.
@ 2014-08-23 20:28 David Miller
  2014-08-23 23:25 ` Alexander Duyck
                   ` (3 more replies)
  0 siblings, 4 replies; 19+ messages in thread
From: David Miller @ 2014-08-23 20:28 UTC (permalink / raw)
  To: netdev; +Cc: therbert, jhs, hannes, edumazet, jeffrey.t.kirsher, rusty


Over time, and specifically and more recently at the Networking
Workshop during Kernel SUmmit in Chicago, we have discussed the idea
of having some way to optimize transmits of multiple TX packets at
a time.

There are several areas of overhead that could be amortized with such
schemes.  One has to do with locking and transactional overhead, the
other has to do with device specific costs.

This patch set here is more aimed at device specific costs.

Typically a device queues up a packet in the TX queue and then has to
do something to have the device start processing that new entry.
Sometimes this is composed of doing an MMIO write to a "tail"
register, and in other cases it can involve something as expensive as
a hypervisor call.

The basic setup defined here is that when the driver supports deferred
TX queue flushing, ndo_start_xmit should no longer perform that
operation.  Instead a new operation, ndo_xmit_flush, should do it.

I have converted IGB and virtio_net as example initial users.  The IGB
conversion is tested, virtio_net is not but it does compile :-)

All ndo_start_xmit call sites have been abstracted behind a new helper
called netdev_start_xmit().

This just adds the infrastructure, it does not actually add any
instances of actually doing multiple ndo_start_xmit calls per
ndo_xmit_flush invocation.

Signed-off-by: David S. Miller <davem@davemloft.net>

^ permalink raw reply	[flat|nested] 19+ messages in thread

end of thread, other threads:[~2014-09-01 21:40 UTC | newest]

Thread overview: 19+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-08-23 20:28 [PATCH 0/3] Basic deferred TX queue flushing infrastructure David Miller
2014-08-23 23:25 ` Alexander Duyck
2014-08-24 12:58   ` Jesper Dangaard Brouer
2014-08-24  3:39 ` Tom Herbert
2014-08-24  4:26   ` David Miller
2014-08-24  4:38 ` David Miller
2014-08-24 14:57   ` Jamal Hadi Salim
2014-08-24 19:08     ` David Miller
2014-08-24 17:37   ` Eric Dumazet
2014-08-24 19:11     ` David Miller
2014-08-25 22:21   ` Cong Wang
2014-08-25 22:31     ` David Miller
2014-08-25 22:37       ` Eric Dumazet
2014-08-25 22:41         ` David Miller
2014-08-25 22:45       ` Jon Maloy
2014-08-25 23:24       ` Vlad Yasevich
2014-09-01  7:40       ` Jesper Dangaard Brouer
2014-09-01 21:40         ` David Miller
2014-08-25  6:10 ` David Miller

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