[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <20091120.160507.110482370.davem@davemloft.net>
Date: Fri, 20 Nov 2009 16:05:07 -0800 (PST)
From: David Miller <davem@...emloft.net>
To: therbert@...gle.com
Cc: netdev@...r.kernel.org
Subject: Re: [PATCH v4 1/1] rps: core implementation
From: Tom Herbert <therbert@...gle.com>
Date: Fri, 20 Nov 2009 15:50:03 -0800
> We only set the bit in remote_softirq_cpus in here. The actual IPIs
> are sent at the end net_rx_action. I'm not exactly sure what you're
> thinking on this...
You're scheduling a softirq so you can schedule remote softirqs.
Just do that "for each rps cpu" loop at the end of NAPI ->poll()
processing. In fact that seems to be what you're doing :-)
I guess my confusion is from the:
__raise_softirq_irqoff(NET_RX_SOFTIRQ);
you are doing as you set the cpus in rps_remote_softirq_cpus.
Why do you need to schedule the local RX softirq, when we know we're
in a NAPI poll loop and thus that we're in a softirq, and thus that we
will fire off the IPIs at the end of net_rx_action()?
That's what you're doing, the softirq raising just seems superfluous.
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists