From: Robert Olsson <[EMAIL PROTECTED]>
Date: Thu, 8 Dec 2005 11:35:06 +0100

> David S. Miller writes:
> 
>  > It is not clear if we want to wait the whole netif_receive_skb()
>  > execution to get this status.  That can take a long time to execute
>  > :-)
> 
>  The driver has to wait for full netif_receive_skb() as far as I understand

Currently, if it copybreaks, the driver recycles the existing
buffer before calling netif_receive_skb().  But it is true
that actually the buffer isn't posted to the chip until later
during ->poll() processing.

Your idea might work well in fact :)

>  > The next question is what to do on copybreak allocation
>  > memory failure.  Free the original SKB too and just return?
>  > Or do we just continue processing with the original SKB?
> 
>  Yes continue processing and return skb consumed to driver.

BTW, this is all related to SKB recycling.

For example, if this is just a TCP ACK, we can do better than
copybreak and just let the driver use the SKB again upon
return from netif_receive_skb().  :-)
-
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to