2011-05-24 15:49:16

by Benny Halevy

[permalink] [raw]
Subject: Re: [PATCHSET v6 0/26] pnfs for 2.6.40

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
> [email protected]
> http://www.netapp.com
>



2011-05-24 17:07:22

by Fred Isaman

[permalink] [raw]
Subject: Re: [PATCHSET v6 0/26] pnfs for 2.6.40

On Tue, May 24, 2011 at 11:49 AM, Benny Halevy <[email protected]> wrote:

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

It is all yours.

Fred