From patchwork Tue May 24 15:16:10 2011 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Benny Halevy X-Patchwork-Id: 812612 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by demeter1.kernel.org (8.14.4/8.14.3) with ESMTP id p4OFGFpY024364 for ; Tue, 24 May 2011 15:16:15 GMT Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755752Ab1EXPQO (ORCPT ); Tue, 24 May 2011 11:16:14 -0400 Received: from daytona.panasas.com ([67.152.220.89]:47301 "EHLO daytona.panasas.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1755273Ab1EXPQO (ORCPT ); Tue, 24 May 2011 11:16:14 -0400 Received: from lt.bhalevy.com ([172.17.33.63]) by daytona.panasas.com with Microsoft SMTPSVC(6.0.3790.4675); Tue, 24 May 2011 11:16:13 -0400 Message-ID: <4DDBCBBA.5040700@panasas.com> Date: Tue, 24 May 2011 18:16:10 +0300 From: Benny Halevy User-Agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.17) Gecko/20110428 Fedora/3.1.10-1.fc13 Thunderbird/3.1.10 MIME-Version: 1.0 To: Boaz Harrosh CC: Trond Myklebust , NFS list Subject: Re: [PATCHSET v6 0/26] pnfs for 2.6.40 References: <4DDA8C3D.5080706@panasas.com> <4DDAAC64.6050807@panasas.com> In-Reply-To: <4DDAAC64.6050807@panasas.com> X-OriginalArrivalTime: 24 May 2011 15:16:13.0520 (UTC) FILETIME=[850C7500:01CC1A25] Sender: linux-nfs-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-nfs@vger.kernel.org X-Greylist: IP, sender and recipient auto-whitelisted, not delayed by milter-greylist-4.2.6 (demeter1.kernel.org [140.211.167.41]); Tue, 24 May 2011 15:16:15 +0000 (UTC) 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(-) 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@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html 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);