[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <1362335704.15793.81.camel@edumazet-glaptop>
Date: Sun, 03 Mar 2013 10:35:04 -0800
From: Eric Dumazet <eric.dumazet@...il.com>
To: Eliezer Tamir <eliezer.tamir@...ux.jf.intel.com>
Cc: linux-kernel@...r.kernel.org, netdev@...r.kernel.org,
Dave Miller <davem@...emloft.net>,
Jesse Brandeburg <jesse.brandeburg@...el.com>,
e1000-devel@...ts.sourceforge.net,
Willem de Bruijn <willemb@...gle.com>,
Andi Kleen <andi@...stfloor.org>, HPA <hpa@...or.com>,
Eliezer Tamir <eliezer@...ir.org.il>
Subject: Re: [RFC PATCH 1/5] net: implement support for low latency socket
polling
On Wed, 2013-02-27 at 09:55 -0800, Eliezer Tamir wrote:
> index 821c7f4..d1d1016 100644
> --- a/include/linux/skbuff.h
> +++ b/include/linux/skbuff.h
> @@ -408,6 +408,10 @@ struct sk_buff {
> struct sock *sk;
> struct net_device *dev;
>
> +#ifdef CONFIG_INET_LL_RX_POLL
> + struct napi_struct *dev_ref; /* where this skb came from */
> +#endif
> +
> /*
> * This is the control buffer. It is free to use for every
> * layer. Please put your private variables there. If you
Yes, thats the killer, because :
1) It adds 8 bytes per skb, and we are going to reach the 256 bytes per
sk_buff boundary. cloned skbs will use an extra cache line.
It might make sense to union this on dma_cookie, as dma_cookie is only
used on TX path.
2) We need to reference count napi structs.
For 2) , we would need to add a percpu ref counter (a bit like struct
netdevice -> pcpu_refcnt)
Alternative to 2) would be to use a generation id, incremented every
time a napi used in spin polling enabled driver is dismantled (and freed
after RCU grace period)
And store in sockets not only the pointer to napi_struct, but the
current generation id : If the generation id doesnt match, disable
the spinpoll until next packet rebuilds the cache again.
--
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