Re: handing cloned frames to netif_rx()?
On Sat, 2008-01-12 at 10:01 +1100, Herbert Xu wrote: > On Fri, Jan 11, 2008 at 11:58:05PM +0100, Johannes Berg wrote: > > > > Ok. Yes, we will of course adhere to that, but I was wondering whether > > maybe the net stack assumes somewhere that a packet it got from the > > driver can be written to w/o copying. > > All parts of the rx stack support clone handling because they can always > run after another handler (e.g., AF_PACKET) which may have cloned the > packet. Great, thanks for confirming, we'll do that then. johannes signature.asc Description: This is a digitally signed message part
Re: handing cloned frames to netif_rx()?
On Fri, Jan 11, 2008 at 11:58:05PM +0100, Johannes Berg wrote: > > Ok. Yes, we will of course adhere to that, but I was wondering whether > maybe the net stack assumes somewhere that a packet it got from the > driver can be written to w/o copying. All parts of the rx stack support clone handling because they can always run after another handler (e.g., AF_PACKET) which may have cloned the packet. Cheers, -- Visit Openswan at http://www.openswan.org/ Email: Herbert Xu ~{PmV>HI~} <[EMAIL PROTECTED]> Home Page: http://gondor.apana.org.au/~herbert/ PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt -- 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
Re: handing cloned frames to netif_rx()?
On Sat, 2008-01-12 at 09:31 +1100, Herbert Xu wrote: > Johannes Berg <[EMAIL PROTECTED]> wrote: > > > > Is it ok to do this? Will something freak out if we pass a cloned skb to > > netif_rx()? > > Sounds OK as long as you stick to the rules of cloned skb's, e.g., not > writing to them unless you've copied it. Ok. Yes, we will of course adhere to that, but I was wondering whether maybe the net stack assumes somewhere that a packet it got from the driver can be written to w/o copying. johannes signature.asc Description: This is a digitally signed message part
Re: handing cloned frames to netif_rx()?
Johannes Berg <[EMAIL PROTECTED]> wrote: > > Is it ok to do this? Will something freak out if we pass a cloned skb to > netif_rx()? Sounds OK as long as you stick to the rules of cloned skb's, e.g., not writing to them unless you've copied it. Cheers, -- Visit Openswan at http://www.openswan.org/ Email: Herbert Xu ~{PmV>HI~} <[EMAIL PROTECTED]> Home Page: http://gondor.apana.org.au/~herbert/ PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt -- 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
Re: handing cloned frames to netif_rx()?
On Jan 11, 2008 3:17 AM, Johannes Berg <[EMAIL PROTECTED]> wrote: > In 802.11n, there is a case where multiple data frames are received > aggregated into a single frame (A-MSDU). > > Currently, we copy each of these frames out into their own skb, but > because of the alignment with that etc. I started to think that we could > simply pass up a clone of the original skb with start/length adjusted > properly so that it windows only the contained packet. > > The buffer would be shared but the data within the original window > (starting with the 802.3 header) could even be written to, it won't be > needed again by mac80211 once it's handed off to netif_rx(). The skb > will obviously have lots of head- and tailroom but that space would be > part of other packets. > > Is it ok to do this? Will something freak out if we pass a cloned skb to > netif_rx()? > This would be great even in regular case. 4965 has ability to deliver more frames per receiving buffer Because of A-MSDU we keeps 8K receiving buffers which are underutilized when A-MSDU is not used. > johannes > -- 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
handing cloned frames to netif_rx()?
In 802.11n, there is a case where multiple data frames are received aggregated into a single frame (A-MSDU). Currently, we copy each of these frames out into their own skb, but because of the alignment with that etc. I started to think that we could simply pass up a clone of the original skb with start/length adjusted properly so that it windows only the contained packet. The buffer would be shared but the data within the original window (starting with the 802.3 header) could even be written to, it won't be needed again by mac80211 once it's handed off to netif_rx(). The skb will obviously have lots of head- and tailroom but that space would be part of other packets. Is it ok to do this? Will something freak out if we pass a cloned skb to netif_rx()? johannes signature.asc Description: This is a digitally signed message part