From: David Laight <David.Laight@ACULAB.COM>
To: 'David Ahern' <dsahern@kernel.org>,
John Ousterhout <ouster@cs.stanford.edu>
Cc: Stephen Hemminger <stephen@networkplumber.org>,
Andrew Lunn <andrew@lunn.ch>,
"netdev@vger.kernel.org" <netdev@vger.kernel.org>
Subject: RE: Bypass qdiscs?
Date: Thu, 9 Nov 2023 17:50:56 +0000 [thread overview]
Message-ID: <a455bf52cd8b4594be360b1758ba88cd@AcuMS.aculab.com> (raw)
In-Reply-To: <89cd5f11-2c54-4905-b900-b1e06304805f@kernel.org>
From: David Ahern
> Sent: 08 November 2023 17:17
>
> On 11/8/23 9:50 AM, John Ousterhout wrote:
> > Hi David,
> >
> > Thanks for the suggestion, but if I understand this correctly, this
> > will disable qdiscs for TCP as well as Homa; I suspect I shouldn't do
> > that?
> >
>
> A means to separate issues - i.e., run Homa tests without qdisc overhead
> or delays. You can worry about how to handle if/when you start
> upstreaming the code.
Isn't the qdisc overhead pretty minimal most of the time anyway?
If I send a RAW_IP (and probably UDP) packet the ethernet MAC
packet setup (etc) is normally done by direct calls from the
process calling sendmsg().
If two threads call sendmsg (on different sockets) at the same
time something has to give somewhere.
To avoid stalling the 2nd thread, the packet gets queued and is
picked up by the first thread before it returns.
To bypass the qdisc wouldn't you need a MAC driver that can
processes multiple transmit setup requests in parallel?
It can be done for a simple memory ring based interface - just
use a lock to grab the required slots in the transmit ring.
Then it doesn't matter which order setups complete in.
But I don't think Linux makes that easy to write.
Transmit flow control will also require queueing (or discard).
If Homa and TCP are sharing a physical network then surely the
TCP traffic can cause flow control issue for both?
David
-
Registered Address Lakeside, Bramley Road, Mount Farm, Milton Keynes, MK1 1PT, UK
Registration No: 1397386 (Wales)
prev parent reply other threads:[~2023-11-09 17:51 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-11-03 23:55 Bypass qdiscs? John Ousterhout
2023-11-04 9:24 ` Ferenc Fejes
2023-11-04 15:08 ` Andrew Lunn
2023-11-05 2:47 ` John Ousterhout
2023-11-06 3:23 ` Stephen Hemminger
2023-11-06 4:27 ` David Ahern
2023-11-06 16:12 ` Jamal Hadi Salim
2023-11-06 16:17 ` Jamal Hadi Salim
2023-11-06 16:51 ` David Ahern
2023-11-08 16:50 ` John Ousterhout
2023-11-08 17:17 ` David Ahern
2023-11-09 17:50 ` David Laight [this message]
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=a455bf52cd8b4594be360b1758ba88cd@AcuMS.aculab.com \
--to=david.laight@aculab.com \
--cc=andrew@lunn.ch \
--cc=dsahern@kernel.org \
--cc=netdev@vger.kernel.org \
--cc=ouster@cs.stanford.edu \
--cc=stephen@networkplumber.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 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).