From: Deng-Cheng Zhu <dczhu@mips.com>
To: Tom Herbert <therbert@google.com>
Cc: <davem@davemloft.net>, <netdev@vger.kernel.org>,
<eric.dumazet@gmail.com>
Subject: Re: [PATCH v2] RPS: Sparse connection optimizations - v2
Date: Mon, 7 May 2012 14:48:49 +0800 [thread overview]
Message-ID: <4FA77051.20804@mips.com> (raw)
In-Reply-To: <CA+mtBx-CErRU=3ewkAjVrGN3dGzjsTz8Q-E8J+Xa+529OVEvwA@mail.gmail.com>
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:
---------------------------------------------
In include/linux/netdevice.h:
struct rps_sparse_flow {
struct net_device *dev;
u32 rxhash;
unsigned long ts;
};
In net/core/dev.c:
static DEFINE_PER_CPU(struct rps_sparse_flow [CONFIG_NR_RPS_MAP_LOOPS],
rps_sparse_flow_table);
---------------------------------------------
The above looks similar to rps_dev_flow/rps_dev_flow_table, and we do
not necessarily go with rps_sock_flow_table.
Thanks,
Deng-Cheng
next prev parent reply other threads:[~2012-05-07 6:48 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 [this message]
2012-05-07 7:38 ` Eric Dumazet
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=4FA77051.20804@mips.com \
--to=dczhu@mips.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.