On Fri, Dec 19, 2008 at 08:27:36PM +0100, Jens Axboe (jens.axboe@xxxxxxxxxx) wrote: > What is missing, as I wrote, is the 'release on ack' and not on pipe > buffer release. This is similar to the get_page/put_page stuff you did > in your patch, but don't go claiming that zero-copy transmit is a > Vladislav original - the ->sendpage() does no copies. Just my small rant: it does, when underlying device does not support hardware tx checksumming and scatter/gather, which is likely exception than a rule for the modern NICs. As of having notifications of the received ack (or from user's point of view notification of the freeing of the buffer), I have following idea in mind: extend skb ahsred info by copy of the frag array and additional destructor field, which will be invoked when not only skb but also all its clones are freed (that's when shared info is freed), so that user could save some per-page context in fraglist and work with it when data is not used anymore. Extending page or skb structure is a no-go for sure, and actually even shared info is not rubber, but there we can at least add something... If only destructor field is allowed (similar patch was not rejected), scsi can save its pages in the tree (indexed by the page pointer) and traverse it when destructor is invoked selecting pages found in the freed skb. -- Evgeniy Polyakov -- 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