| To: | "David S. Miller" <davem@xxxxxxxxxxxxx> |
|---|---|
| Subject: | Re: RFC: NAPI packet weighting patch |
| From: | Eric Dumazet <dada1@xxxxxxxxxxxxx> |
| Date: | Wed, 22 Jun 2005 23:38:21 +0200 |
| Cc: | ak@xxxxxxx, leonid.grossman@xxxxxxxxxxxx, hadi@xxxxxxxxxx, becker@xxxxxxxxx, rick.jones2@xxxxxx, netdev@xxxxxxxxxxx, davem@xxxxxxxxxx |
| In-reply-to: | <20050622.132241.21929037.davem@xxxxxxxxxxxxx> |
| References: | <1119458226.6918.142.camel@xxxxxxxxxxxxxxxxxxxxx> <200506221801.j5MI11xS021866@xxxxxxxxxxxxxxxxx> <20050622180654.GX14251@xxxxxxxxxxxxx> <20050622.132241.21929037.davem@xxxxxxxxxxxxx> |
| Sender: | netdev-bounce@xxxxxxxxxxx |
| User-agent: | Mozilla Thunderbird 1.0 (Windows/20041206) |
David S. Miller a écrit : 2) As shown above, it gives you compute time which can be used to schedule the prefetch. This nearly makes RX replenishment free. Instead of having the CPU spin on a cache miss when we run eth_type_trans() during those cycles, we do useful work. I'm going to play around with these ideas in the tg3 driver. Obvious patch below.
Then maybe we could also play with prefetchw() in the case the incoming frame
is small enough to be copied to a new skb.
drivers/net/tg3.c
copy_skb = dev_alloc_skb(len + 2);
if (copy_skb == NULL)
goto drop_it_no_recycle;
+ prefetchw(copy_skb->data);
copy_skb->dev = tp->dev;
skb_reserve(copy_skb, 2);
skb_put(copy_skb, len);
|
| Previous by Date: | Re: [patch,rfc] allow registration of multiple netpolls per interface, Matt Mackall |
|---|---|
| Next by Date: | Re: RFC: NAPI packet weighting patch, Chris Friesen |
| Previous by Thread: | Re: RFC: NAPI packet weighting patch, Andi Kleen |
| Next by Thread: | Re: RFC: NAPI packet weighting patch, Eric Dumazet |
| Indexes: | [Date] [Thread] [Top] [All Lists] |