Re: [PATCH v3 net-next 1/4] net: implement support for low latencysocket polling

From: Eliezer Tamir
Date: Tue May 21 2013 - 03:29:10 EST


On 20/05/2013 18:29, Eric Dumazet wrote:
On Mon, 2013-05-20 at 13:16 +0300, Eliezer Tamir wrote:
---
+static inline void skb_mark_ll(struct sk_buff *skb, struct napi_struct *napi)
+{
+ skb->dev_ref = napi;
+}
+
+static inline void sk_mark_ll(struct sock *sk, struct sk_buff *skb)
+{
+ sk->dev_ref = skb->dev_ref;
+}

I do not see why it's safe to keep a pointer to a napi object without
taking a reference, or something to prevent object being removed.

Using a genid might be enough. (some counter incremented every time a
napi is dismantled)

I really like this approach and I tried it.
The main problem I had is that you need to increase the size of the skb to store the generation id unless you stuff it in the flags2 bitfield.
There appear to be only 7 useful bit left there.
Is it OK to use them all up?


Alternatively, use a napi_id instead of a pointer.

I'm not sure I understand what you propose.

-Eliezer
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/