From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 6B9CED2A523 for ; Wed, 16 Oct 2024 14:48:45 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:List-Subscribe:List-Help :List-Post:List-Archive:List-Unsubscribe:List-Id:Content-Transfer-Encoding: Content-Type:In-Reply-To:From:References:Cc:To:Subject:MIME-Version:Date: Message-ID:Reply-To:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=mSTyeewkXqgzuQB4YfeMSl+RKZcbB+y8n1eISoROuDw=; b=RAKOyW2n8KjZYi16iVBOeXmDje p/XaVo98SSRxPxlJA6ze/1FqWK2SzJvQHnxBnPk2PlIH1p8+rzco508eXFHFduP1jTHaYELV7wr4l 7a4kCLxWBLdemL+Dx0FrZDp9USbGvntx+z+68YaGpcM9RFrSbZN66WZcgZhBsAIVH3/NQn/O7b04Z Ezho5EGolG3EEPXkVGUF0k949uUKIWwRXrhfX86a3B0VVv6q0L8O/1sOPVF2BRZUZeAbt0LquJOlq x52KDVYqDTT74BuwnOUOiWu43DAM1Q6nFCY1NqdAdA9/ZY9Ub4TjIb0gaup0AUnURg6YEZayBJoz5 x3J5b1EQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98 #2 (Red Hat Linux)) id 1t15KF-0000000C8Yx-32Oe; Wed, 16 Oct 2024 14:48:35 +0000 Received: from foss.arm.com ([217.140.110.172]) by bombadil.infradead.org with esmtp (Exim 4.98 #2 (Red Hat Linux)) id 1t15E9-0000000C73a-3Cc5 for linux-arm-kernel@lists.infradead.org; Wed, 16 Oct 2024 14:42:20 +0000 Received: from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14]) by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 8FB231007; Wed, 16 Oct 2024 07:42:46 -0700 (PDT) Received: from [10.1.28.177] (XHFQ2J9959.cambridge.arm.com [10.1.28.177]) by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id 047503F71E; Wed, 16 Oct 2024 07:42:13 -0700 (PDT) Message-ID: Date: Wed, 16 Oct 2024 15:42:12 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [RFC PATCH v1 21/57] sunrpc: Remove PAGE_SIZE compile-time constant assumption Content-Language: en-GB To: Andrew Morton , Anna Schumaker , Anshuman Khandual , Ard Biesheuvel , Catalin Marinas , David Hildenbrand , Greg Marsden , Ivan Ivanov , Kalesh Singh , Marc Zyngier , Mark Rutland , Matthias Brugger , Miroslav Benes , Trond Myklebust , Will Deacon , Chuck Lever , Jeff Layton Cc: linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, linux-mm@kvack.org, linux-nfs@vger.kernel.org References: <20241014105514.3206191-1-ryan.roberts@arm.com> <20241014105912.3207374-1-ryan.roberts@arm.com> <20241014105912.3207374-21-ryan.roberts@arm.com> From: Ryan Roberts In-Reply-To: <20241014105912.3207374-21-ryan.roberts@arm.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20241016_074217_936961_8DEA6C5D X-CRM114-Status: GOOD ( 20.99 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org + Chuck Lever, Jeff Layton This was a rather tricky series to get the recipients correct for and my script did not realize that "supporter" was a pseudonym for "maintainer" so you were missed off the original post. Appologies! More context in cover letter: https://lore.kernel.org/all/20241014105514.3206191-1-ryan.roberts@arm.com/ On 14/10/2024 11:58, Ryan Roberts wrote: > To prepare for supporting boot-time page size selection, refactor code > to remove assumptions about PAGE_SIZE being compile-time constant. Code > intended to be equivalent when compile-time page size is active. > > Updated array sizes in various structs to contain enough entries for the > smallest supported page size. > > Signed-off-by: Ryan Roberts > --- > > ***NOTE*** > Any confused maintainers may want to read the cover note here for context: > https://lore.kernel.org/all/20241014105514.3206191-1-ryan.roberts@arm.com/ > > include/linux/sunrpc/svc.h | 8 +++++--- > include/linux/sunrpc/svc_rdma.h | 4 ++-- > include/linux/sunrpc/svcsock.h | 2 +- > 3 files changed, 8 insertions(+), 6 deletions(-) > > diff --git a/include/linux/sunrpc/svc.h b/include/linux/sunrpc/svc.h > index a7d0406b9ef59..dda44018b8f36 100644 > --- a/include/linux/sunrpc/svc.h > +++ b/include/linux/sunrpc/svc.h > @@ -160,6 +160,8 @@ extern u32 svc_max_payload(const struct svc_rqst *rqstp); > */ > #define RPCSVC_MAXPAGES ((RPCSVC_MAXPAYLOAD+PAGE_SIZE-1)/PAGE_SIZE \ > + 2 + 1) > +#define RPCSVC_MAXPAGES_MAX ((RPCSVC_MAXPAYLOAD+PAGE_SIZE_MIN-1)/PAGE_SIZE_MIN \ > + + 2 + 1) > > /* > * The context of a single thread, including the request currently being > @@ -190,14 +192,14 @@ struct svc_rqst { > struct xdr_stream rq_res_stream; > struct page *rq_scratch_page; > struct xdr_buf rq_res; > - struct page *rq_pages[RPCSVC_MAXPAGES + 1]; > + struct page *rq_pages[RPCSVC_MAXPAGES_MAX + 1]; > struct page * *rq_respages; /* points into rq_pages */ > struct page * *rq_next_page; /* next reply page to use */ > struct page * *rq_page_end; /* one past the last page */ > > struct folio_batch rq_fbatch; > - struct kvec rq_vec[RPCSVC_MAXPAGES]; /* generally useful.. */ > - struct bio_vec rq_bvec[RPCSVC_MAXPAGES]; > + struct kvec rq_vec[RPCSVC_MAXPAGES_MAX]; /* generally useful.. */ > + struct bio_vec rq_bvec[RPCSVC_MAXPAGES_MAX]; > > __be32 rq_xid; /* transmission id */ > u32 rq_prog; /* program number */ > diff --git a/include/linux/sunrpc/svc_rdma.h b/include/linux/sunrpc/svc_rdma.h > index d33bab33099ab..7c6441e8d6f7a 100644 > --- a/include/linux/sunrpc/svc_rdma.h > +++ b/include/linux/sunrpc/svc_rdma.h > @@ -200,7 +200,7 @@ struct svc_rdma_recv_ctxt { > struct svc_rdma_pcl rc_reply_pcl; > > unsigned int rc_page_count; > - struct page *rc_pages[RPCSVC_MAXPAGES]; > + struct page *rc_pages[RPCSVC_MAXPAGES_MAX]; > }; > > /* > @@ -242,7 +242,7 @@ struct svc_rdma_send_ctxt { > void *sc_xprt_buf; > int sc_page_count; > int sc_cur_sge_no; > - struct page *sc_pages[RPCSVC_MAXPAGES]; > + struct page *sc_pages[RPCSVC_MAXPAGES_MAX]; > struct ib_sge sc_sges[]; > }; > > diff --git a/include/linux/sunrpc/svcsock.h b/include/linux/sunrpc/svcsock.h > index 7c78ec6356b92..6c6bcc82685a3 100644 > --- a/include/linux/sunrpc/svcsock.h > +++ b/include/linux/sunrpc/svcsock.h > @@ -40,7 +40,7 @@ struct svc_sock { > > struct completion sk_handshake_done; > > - struct page * sk_pages[RPCSVC_MAXPAGES]; /* received data */ > + struct page * sk_pages[RPCSVC_MAXPAGES_MAX]; /* received data */ > }; > > static inline u32 svc_sock_reclen(struct svc_sock *svsk)