Re: [PATCH 2/6] net: pad skb data and shinfo as a whole rather than individually
From: David Miller <davem@davemloft.net>
Date: 2012-01-07 18:18:24
From: David Miller <davem@davemloft.net>
Date: 2012-01-07 18:18:24
From: Ian Campbell <redacted> Date: Thu, 5 Jan 2012 20:00:58 +0000
Although this scheme works fine for Xen's netback I don't think it works for other use cases like the NFS one (or basically any kernel_sendpage usage). In those cases you don't want to wait for the last core mm ref on the page to get dropped, you just want to wait for the last ref due to the particular sendpage. If you use the core page_count() reference count then you end up waiting for the process to exit (and drop the core reference count) before the destructor fires and you can complete the write, which is obviously not what is desired! There's also issues with things like two threads simultaneously doing I/O from the same page. If one lot of I/O is to NFS and the other to iSCSI (assuming they both use this facility in the future) then they will clash over the use of the struct page field. In fact even if they were both to NFS I bet nothing good would happen...
Ok, struct page doesn't seem the best place for this stuff then. Thanks.