On 2011-05-24 18:34, Myklebust, Trond wrote: > On Tue, 2011-05-24 at 18:16 +0300, Benny Halevy wrote: >> On 2011-05-23 21:50, Boaz Harrosh wrote: >> > On 05/23/2011 07:33 PM, Benny Halevy wrote: >> > Benny Hi >> > >> > I have a problem that the default wsize is very small 64K and >> > I get small IOs. I found that the governing member right now >> > is NFS_SERVER()->wsize >> > >> > I did the below hack on My current code, but you took that away >> > from me. >> > >> > diff --git a/fs/nfs/objlayout/objlayout.c b/fs/nfs/objlayout/objlayout.c >> > index ec40408..f7b09e1 100644 >> > --- a/fs/nfs/objlayout/objlayout.c >> > +++ b/fs/nfs/objlayout/objlayout.c >> > + server->wsize = ((PAGE_SIZE - sizeof(struct bio)) / > sizeof(struct bio_vec)) >> > + * PAGE_SIZE * 2; >> > >> > - dprintk("%s: Return data=%p\n", __func__, data); >> > + dprintk("%s: Return data=%p wsize=0x%x\n", __func__, data, > server->wsize); >> > return 0; >> > } >> > >> > What do you want that we do to replace this. The default 64K is to > small. >> > I don't mind that for pnfs it will be ~0 and the pg_test() will test >> > for maxc_size as well. But then we'll also need the current size or the >> > start_index >> > >> > Boaz >> >> How about this approach? >> >> git diff --stat -p -M >> fs/nfs/pagelist.c | 2 +- >> 1 files changed, 1 insertions(+), 1 deletions(-) >> >> diff --git a/fs/nfs/pagelist.c b/fs/nfs/pagelist.c >> index c80add6..3f5508b 100644 >> --- a/fs/nfs/pagelist.c >> +++ b/fs/nfs/pagelist.c >> @@ -293,7 +293,7 @@ static int nfs_pageio_do_add_request(struct >> nfs_pageio_descriptor *desc, >> if (desc->pg_bsize < PAGE_SIZE) >> return 0; >> newlen += desc->pg_count; >> - if (newlen > desc->pg_bsize) >> + if (newlen > desc->pg_bsize && !desc->pg_test) >> return 0; >> prev = nfs_list_entry(desc->pg_list.prev); >> if (!nfs_can_coalesce_requests(prev, req, desc)) > > Alternatively, clean the above up by putting the newlen > desc->pg_bsize > test into a default nfs_generic_test_coalesce() and require ordinary NFS > reads and writes to set that as their desc->pg_test(). Good idea! I'll send a RFC patch including the generic pnfs pg_test for the layout drivers. Fred - I hope you haven't started working on pg_test, have you? Please let me know. Benny > > Cheers > Trond > -- > Trond Myklebust > Linux NFS client maintainer > > NetApp > Trond.Myklebust@xxxxxxxxxx > www.netapp.com > -- 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