From: Stephen Hemminger <shemminger@vyatta.com>
To: David Miller <davem@davemloft.net>
Cc: therbert@google.com, eric.dumazet@gmail.com, netdev@vger.kernel.org
Subject: Re: [PATCH] xps-mq: Transmit Packet Steering for multiqueue
Date: Wed, 1 Sep 2010 18:56:27 -0700 [thread overview]
Message-ID: <20100901185627.239ad165@nehalam> (raw)
In-Reply-To: <20100901.183251.106803238.davem@davemloft.net>
On Wed, 01 Sep 2010 18:32:51 -0700 (PDT)
David Miller <davem@davemloft.net> wrote:
> From: Tom Herbert <therbert@google.com>
> Date: Wed, 1 Sep 2010 09:24:18 -0700
>
> > On Wed, Sep 1, 2010 at 8:54 AM, Eric Dumazet <eric.dumazet@gmail.com> wrote:
> >> 3) Eventually have a user selectable selection (socket option, or system
> >> wide, but one sysctl, not many bitmasks ;) ).
> >>
> > Right, but it would also be nice if a single sysctl could optimally
> > set up multiqueue, RSS, RPS, and all my interrupt affinities for me
> > ;-)
>
> It's becomming increasingly obvious to me that we need (somewhere,
> not necessarily the kernel) a complete datastructure representing
> the NUMA, cache, cpu, device hierarchy.
>
> And that can be used to tweak all of this stuff.
>
> The policy should probably be in userspace, we just need to provide
> the knobs in the kernel to tweak it however userspace wants.
>
> Userspace should be able to, for example, move a TX queue into a
> NUMA domain and have this invoke several side effects:
>
> 1) IRQs for that TX queue get rerouted to a cpu in the NUMA
> domain.
>
> 2) TX queue datastructures in the driver get reallocated using
> memory in that NUMA domain.
>
> 3) TX hashing is configured to use the set of cpus in the NUMA
> domain.
>
> It's alot of tedious work and involves some delicate tasks figuring
> out where each of these things go, but really then we'd solve all
> of this crap one and for all.
Just to be contrarian :-) This same idea had started before when IBM
proposed a user-space NUMA API. It never got any traction, the concept
of "lets make the applications NUMA aware" never got accepted because
it is so hard to do right and fragile that it was the wrong idea
to start with. The only people that can manage it are the engineers
tweeking a one off database benchmark.
I would rather see a "good enough" policy in the kernel that works
for everything from a single-core embedded system to a 100 core
server environment. Forget the benchmarkers. The ideal solution
should work with a mix of traffic and adapt. Today the application
doesn't have to make a service level agreement with kernel
everytime it opens a TCP socket.
Doing it in userspace doesn't really help much. The API's keep changing
and the focus fades (see irqbalance).
--
next prev parent reply other threads:[~2010-09-02 1:56 UTC|newest]
Thread overview: 28+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-08-23 5:39 [PATCH] xps-mq: Transmit Packet Steering for multiqueue Tom Herbert
2010-08-23 17:09 ` Ben Hutchings
[not found] ` <AANLkTinST5zaS0NtBjrzyLbsg=w_EVsHE3DCDcrmQNc6@mail.gmail.com>
2010-08-23 17:50 ` Ben Hutchings
2010-08-23 17:59 ` Stephen Hemminger
2010-09-01 15:41 ` Tom Herbert
2010-09-01 15:54 ` Eric Dumazet
2010-09-01 16:24 ` Tom Herbert
2010-09-02 1:32 ` David Miller
2010-09-02 1:48 ` Stephen Hemminger
2010-09-02 16:00 ` Loke, Chetan
2010-09-02 19:52 ` Tom Herbert
2010-09-02 23:17 ` Loke, Chetan
2010-09-02 1:56 ` Stephen Hemminger [this message]
2010-09-02 6:41 ` Greg Lindahl
2010-09-02 16:18 ` Loke, Chetan
2010-09-02 15:55 ` Loke, Chetan
2010-09-16 21:52 ` Ben Hutchings
2010-09-19 17:24 ` Michael S. Tsirkin
2010-09-20 12:44 ` [RFC][PATCH 1/3] IRQ: Add irq_get_numa_node() Ben Hutchings
2010-09-20 13:04 ` Eric Dumazet
2010-09-20 12:45 ` [RFC][PATCH 2/3] ethtool: NUMA affinity control Ben Hutchings
2010-09-20 12:48 ` [RFC][PATCH 3/3] sfc: Add support for " Ben Hutchings
2011-02-21 18:19 ` [PATCH] xps-mq: Transmit Packet Steering for multiqueue Ben Hutchings
2011-02-21 19:31 ` Jeremy Eder
2011-02-26 7:09 ` David Miller
2010-09-01 16:09 ` David Miller
2010-08-24 4:31 ` Bill Fink
2010-08-24 4:37 ` Tom Herbert
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=20100901185627.239ad165@nehalam \
--to=shemminger@vyatta.com \
--cc=davem@davemloft.net \
--cc=eric.dumazet@gmail.com \
--cc=netdev@vger.kernel.org \
--cc=therbert@google.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.