On Fri, Dec 19, 2008 at 05:56:11PM -0800, Jeremy Fitzhardinge wrote: > Evgeniy Polyakov wrote: >> Shared info is freed when there are no skbs referring to the shared info >> in question. Skb holds all pages in shared info in the fraglist array, >> so when it is about to be freed, it means that network stack does not >> use it (particulary it will putpage every page in fraglist). Usually >> there are two skbs in the network stack per packet in TCP (allocated at >> once though via fastclone mechanims): one is provided to the device >> (and will be freed there) and another one is placed into retransmit >> queue, where it will be located and freed when ack has been received. >> >> There may be another layers which may clone skb, but its shared info >> structure (shared between the clones) will only be freed when all users >> freed appropriate cloned skbs. This is all correct. However, please note that that if any clone does a pskb_expand_head then it will get its own private copy of of the shared info. So you can't use the shared info to ref count the pages in it. Cheers, -- Visit Openswan at http://www.openswan.org/ Email: Herbert Xu ~{PmV>HI~} <herbert@xxxxxxxxxxxxxxxxxxx> 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 linux-scsi" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html