Netdev List
 help / color / mirror / Atom feed
From: Eric Dumazet <eric.dumazet@gmail.com>
To: Deng-Cheng Zhu <dczhu@mips.com>
Cc: Tom Herbert <therbert@google.com>,
	davem@davemloft.net, netdev@vger.kernel.org
Subject: Re: [PATCH v2] RPS: Sparse connection optimizations - v2
Date: Mon, 07 May 2012 09:38:02 +0200	[thread overview]
Message-ID: <1336376282.3752.2252.camel@edumazet-glaptop> (raw)
In-Reply-To: <4FA77051.20804@mips.com>

On Mon, 2012-05-07 at 14:48 +0800, Deng-Cheng Zhu wrote:
> On 05/04/2012 11:31 PM, Tom Herbert wrote:
> >> I think the mechanisms of rps_dev_flow_table and cpu_flow (in this
> >> patch) are different: The former works along with rps_sock_flow_table
> >> whose CPU info is based on recvmsg by the application. But for the tests
> >> like what I did, there's no application involved.
> >>
> > While rps_sock_flow_table is currently only managed by recvmsg, it
> > still is the general mechanism that maps flows to CPUs for steering.
> > There should be nothing preventing you from populating and managing
> > entries in other ways.
> 
> Well, even using rps_sock_flow_table to map the sparse flows to CPUs,
> we still need a data structure to describe a single flow -- that's what
> struct cpu_flow is doing. Besides, rps_sock_flow_table, by its meaning,
> does not seem to make sense for our purpose. How about keeping the patch
> as is but renaming struct cpu_flow to struct rps_sparse_flow? It's like:
> 

sock_flow_table is about mapping a flow (by its rxhash) to cpu.

If you feel 'sock' is bad name, you can rename it.

You dont need adding new data structure and code in fast path.

Only the first packet of a new flow might be handled by 'the wrong cpu'.

If you add code in forward path to change flow_table for next packets,
added cost in fast path is null.

  reply	other threads:[~2012-05-07  7:38 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-05-03  8:56 [PATCH v2] RPS: Sparse connection optimizations - v2 Deng-Cheng Zhu
2012-05-04  3:22 ` Tom Herbert
2012-05-04  3:39   ` Deng-Cheng Zhu
2012-05-04  4:25   ` Deng-Cheng Zhu
2012-05-04  7:47     ` Eric Dumazet
2012-05-07  6:51       ` Deng-Cheng Zhu
2012-05-07  7:22         ` Eric Dumazet
2012-05-04 15:31     ` Tom Herbert
2012-05-04 15:47       ` Eric Dumazet
2012-05-04 20:53         ` Eric Dumazet
2012-05-07  6:48       ` Deng-Cheng Zhu
2012-05-07  7:38         ` Eric Dumazet [this message]
2012-05-07  8:01           ` Deng-Cheng Zhu
2012-05-07  8:25             ` Eric Dumazet
2012-05-08  6:43               ` Deng-Cheng Zhu

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=1336376282.3752.2252.camel@edumazet-glaptop \
    --to=eric.dumazet@gmail.com \
    --cc=davem@davemloft.net \
    --cc=dczhu@mips.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox