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)) -- 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