On Thu, May 15, 2014 at 11:56 AM, Weston Andros Adamson <dros@xxxxxxxxxxxxxxx> wrote: > This patchset changes the read and write paths to be more flexible in dealing > with requests that are not page aligned. Until now there was a 1:1 mapping > of struct nfs_page (referred to as "nfs requests") to struct page, which > limited the client to page aligned I/O in several pNFS scenarios. > > This patchset allows multiple requests per page, loosely following > the approach taken with struct buffer_head (part of kernel bio interface). > > With this patchset the client now supports: > - non-page-aligned O_DIRECT I/O to DSes (instead of reverting to MDS) > - arbitrary pnfs layout segment boundaries > - arbitrary pnfs filelayout stripe sizes > > This patchset also includes a lot of cleanup - notably we no longer need > a separate code path to support rsize/wsize < PAGE_SIZE. > > This new approach opens the door to many optimizations, such as not having to > flush a page on a non-contiguous write, but for the time being we are focusing > on correctness -- this patchset touches the read and write path for *all* > versions of NFS! > > This has been tested against v2, v3, v4.0 and v4.1 (no pnfs) servers with > different rsize/wsize settings, and against pynfs filelayout servers hacked to > have non page aligned stripe sizes. > > I had some code review already (with changes applied) and we've been testing > this pretty extensively for the last month+ - focusing mostly on v2, v3, v4.x > (no pnfs). > > The patchset applies against Trond's testing branch, but should also include > the fix I posted earlier today: "pnfs: fix race in filelayout commit path" > as the race seems to be easier to hit with this patchset applied. > > I'm pretty sure I didn't break anything in the object and block layouts, but > some extra attention there would be helpful. > > I plan on sharing some performance numbers once I'm able to run some nfsometer > workloads. > > Changes in V3: > - rebased to Anna's newest patches, which merges pageio.c into pagelist.c Thanks! Applied... -- Trond Myklebust Linux NFS client maintainer, PrimaryData trond.myklebust@xxxxxxxxxxxxxxx -- To unsubscribe from this list: send the line "unsubscribe linux-nfs" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html