Messages in this thread | | | Date | Tue, 21 May 2013 21:31:51 +0200 (CEST) | From | Pekka Riikonen <> | Subject | Re: [PATCH v3 net-next 1/4] net: implement support for low latency socket polling |
| |
On Tue, 21 May 2013, David Miller wrote:
> From: Pekka Riikonen <priikone@iki.fi> > Date: Tue, 21 May 2013 19:02:19 +0200 (CEST) > >> On Tue, 21 May 2013, Eric Dumazet wrote: >> >> : > > Alternatively, use a napi_id instead of a pointer. >> : > >> : > I'm not sure I understand what you propose. >> : >> : Oh well. >> : >> : To get a pointer to a struct net_device, we can use ifindex, and do a >> : rcu lookup into a hash table to get the net_device. We do not need >> : {pointer,ifindex} but {ifindex} is enough >> : >> : My suggestion is to not have skb->skb_ref but skb->napi_index : Its safe >> : to copy its value from skb->napi_index to sk->napi_index without >> : refcounting. >> : >> : All NAPI need to get a unique napi_index, and be inserted in a hash >> : table for immediate/fast lookup. >> : >> Maybe even that's not needed. Couldn't skb->queue_mapping give the >> correct NAPI instance in multiqueue nics? The NAPI instance could be made >> easily available from skb->dev. In any case an index is much better than >> a new pointer. > > Queue mapping is more volatile, and consider layered devices. > Yes, true. The napi_index then is probably the way to go. Main thing for me is that it doesn't increase skb size when in union with dma_cookie (skb has been growing lately).
Pekka
| |