From: Stephen Hemminger <shemminger@vyatta.com>
To: Eric Dumazet <eric.dumazet@gmail.com>
Cc: Changli Gao <xiaosuo@gmail.com>,
Tom Herbert <therbert@google.com>,
David Miller <davem@davemloft.net>,
netdev@vger.kernel.org
Subject: Re: [PATCH v7] rps: Receive Packet Steering
Date: Thu, 18 Mar 2010 14:23:16 -0700 [thread overview]
Message-ID: <20100318142316.0466c35e@nehalam> (raw)
In-Reply-To: <1268944621.2894.160.camel@edumazet-laptop>
On Thu, 18 Mar 2010 21:37:01 +0100
Eric Dumazet <eric.dumazet@gmail.com> wrote:
> Le jeudi 18 mars 2010 à 14:48 +0800, Changli Gao a écrit :
> > sigh! How about adding file for each cpu weight setting.
> >
> > .../rx-0/rps_cpu0...n
> >
> > BTW: I think exporting the hook of hash function will help in some
> > case. So users can choose which hash to use depend on their
> > applications. I know FreeBSD supports hash based on flow, source or
> > CPU. Some network application have multiple instances for taking full
> > advantage of the SMP/C hardware, and each instance binds to a special
> > CPU/Core, so they need some kind of load distributing algorithm for
> > load balancing.
> >
>
> exporting skb->rxhash would not be that interesting, but the cpu number
> of last cpu handling the skb and queuing it on socket might be usefull.
>
> > For example, memcached uses hash based on key, and its developer may
> > implement a hash function for RPS. Then it apply the following
> > iptables rule:
> >
> > iptables -A PREROUTING -t nat -m cpu --cpuid 0 -m tcp --dport 1234
> > --REDIRECT 8081
> > iptables -A PREROUTING -t nat -m cpu --cpuid 0 -m tcp --dport 1234
> > --REDIRECT 8082
>
> Well, this would work only if load is evenly distributed to all cpus.
> But you understand this kind of setup has nothing to do with RPS.
> Going through REDIRECT (and conntrack) would kill performance, and would
> not work for unpriviledged users (iptables changes forbidden).
> It wont scale for future machines with 64 or 128 cores.
>
> maybe some extension of REDIRECT target, being able to add cpu number to
> destination port :
>
> iptables -A PREROUTING -t nat -m tcp --dport 1234 --REDIRECT 1234+cpu
>
>
> > ...
> >
> > No other things to change, it can take full advantage of the
> > underlying hardware transparently.
> >
>
> Coming to mind would be a new socket operation, "bind to cpu", like the
> "bind to device" operation.
>
> This would work without need for netfilter (and permission to change its
> rules)
>
> But it would require changes to applications, to fully exploit SMP
> capabilities of machine.
Let's not make a useful feature (RPS) unusable by making it so complex
that mortals can't understand it.
--
next prev parent reply other threads:[~2010-03-18 23:51 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-03-12 20:13 [PATCH v7] rps: Receive Packet Steering Tom Herbert
2010-03-12 21:28 ` Eric Dumazet
2010-03-12 23:08 ` Tom Herbert
2010-03-16 18:03 ` Tom Herbert
2010-03-16 21:00 ` Eric Dumazet
2010-03-16 21:13 ` David Miller
2010-03-17 1:54 ` Changli Gao
2010-03-17 7:07 ` Eric Dumazet
2010-03-17 7:59 ` Changli Gao
2010-03-17 14:09 ` Eric Dumazet
2010-03-17 15:01 ` Tom Herbert
2010-03-17 15:34 ` Eric Dumazet
2010-03-17 23:50 ` Tom Herbert
2010-03-18 2:14 ` Changli Gao
2010-03-18 6:30 ` Eric Dumazet
2010-03-18 6:20 ` Eric Dumazet
2010-03-18 6:48 ` Changli Gao
2010-03-18 20:37 ` Eric Dumazet
2010-03-18 21:23 ` Stephen Hemminger [this message]
2010-03-17 4:26 ` David Miller
2010-03-12 22:20 ` Stephen Hemminger
2010-03-12 22:32 ` David Miller
2010-03-12 22:23 ` Stephen Hemminger
2010-03-12 22:33 ` David Miller
2010-03-12 23:05 ` 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=20100318142316.0466c35e@nehalam \
--to=shemminger@vyatta.com \
--cc=davem@davemloft.net \
--cc=eric.dumazet@gmail.com \
--cc=netdev@vger.kernel.org \
--cc=therbert@google.com \
--cc=xiaosuo@gmail.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.