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 kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id 6EF05D2A523 for ; Wed, 16 Oct 2024 14:42:20 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 12E226B0093; Wed, 16 Oct 2024 10:42:20 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 0B7486B0095; Wed, 16 Oct 2024 10:42:20 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id E9A736B0096; Wed, 16 Oct 2024 10:42:19 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0012.hostedemail.com [216.40.44.12]) by kanga.kvack.org (Postfix) with ESMTP id C773F6B0093 for ; Wed, 16 Oct 2024 10:42:19 -0400 (EDT) Received: from smtpin03.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay01.hostedemail.com (Postfix) with ESMTP id 59F461C453A for ; Wed, 16 Oct 2024 14:42:08 +0000 (UTC) X-FDA: 82679730420.03.08176DB Received: from foss.arm.com (foss.arm.com [217.140.110.172]) by imf29.hostedemail.com (Postfix) with ESMTP id 1A34512000B for ; Wed, 16 Oct 2024 14:42:05 +0000 (UTC) Authentication-Results: imf29.hostedemail.com; dkim=none; dmarc=pass (policy=none) header.from=arm.com; spf=pass (imf29.hostedemail.com: domain of ryan.roberts@arm.com designates 217.140.110.172 as permitted sender) smtp.mailfrom=ryan.roberts@arm.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1729089620; a=rsa-sha256; cv=none; b=4vWW55eqi0zQIYca9zFBSsIejvGUyXZCUKPvFeEt3U5xiEwgzau4+hsPzY48NL2YrpCsGj op0eRWSze1Oqm35d06Zg4i5dXju1Sh4DVgGLB2Y1meNyQQfvLRpjuX6J+ogRRjudbR+3NP 7LMkDtlGiVWI6kqvDZgMhgUv5CvdAoc= ARC-Authentication-Results: i=1; imf29.hostedemail.com; dkim=none; dmarc=pass (policy=none) header.from=arm.com; spf=pass (imf29.hostedemail.com: domain of ryan.roberts@arm.com designates 217.140.110.172 as permitted sender) smtp.mailfrom=ryan.roberts@arm.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1729089620; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=mSTyeewkXqgzuQB4YfeMSl+RKZcbB+y8n1eISoROuDw=; b=r6wZDwURqYyN0XyKVc6xf6956ohEPEINRmbfwYXnVnlhRxK6Wii2KN6jXyiduL9uMwf61P SYsKL0ub3UwsK6xTTFVG51dLI7pb8FJkUjzKptf7cuByrZ5PZ40mTN87nwEmIDNcCk9UFP j2YoaLaa774QivTceNkcQTfFj/Almfw= 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-Rspamd-Server: rspam12 X-Rspamd-Queue-Id: 1A34512000B X-Stat-Signature: cdhsdjdwzezisee5xz9qzo53pmk8bqxb X-Rspam-User: X-HE-Tag: 1729089725-693933 X-HE-Meta: U2FsdGVkX1//+TGm0ZMdiBgEQX9YzF/Bg9Syb2Jl+vmp5eXdgKhjtVF1NhliY35ilTRezE+E7I1yeGhbj7zJqE/lpeA8q3PngsCQqzuzJBINqxaQhQjfhBw94YZwgRD5a8d8bSEVKW2baUt9uNKdCvVZdVFIxrS7W9Yj5QuC6UNJVXHsk0pMEyOOj8xfH5JAmbAS9nHNxiBAhQuAB2wfc6UVGCfM7AuDM12w8M9LOchPYOIqB/9vffI27gQpqhQFTp4q9MMSoKj2XNrtjVL5a8VBfSiFvQ1omobGJvGUaUJS/Zp61WiH8gRhWq/HMPIscuuiyWUi3kEFSITPNTWTyxNtVjYjLdxXM3b/OAKIuMRjlFdO3q3kfZiZUQsiuU/GKwvFoNKiKvKG9QAjuCgFG85WDEJY3fA+gnnM9k0De8STgC+/sdlmnSsmkhPJJRFOo+JdRbaMoQOQy+zYBZI+urHNqyInUEKjKM0FprgAai6PCpUqr3/ZLkyfQN/mZkiuaj+aGWnIkWcs4AxjCJLidW0xQR1BXUwNo7x9wW21WzK6KYwMZn0sL82r7w6P9rSXTV43qDdQcXj0BAqQ3Y+S2ZJU8LuiyBKbkI69EBejaSUAAtdQ6uwueYEJXwCxFwapVa08PgSNnqelpi4MKI6VuObgL1zS7n/NxbE2YCiy8uExk/GCoUM/eaIaY/oTcPcPs21JTzJ0Eyn1t6jyKxDHa/CMkTgdbp95cSg2Ht2LQ6+OE8x2x7JcxlyoGPVvQBiQlekwFRWWjSays/x5yRD6NMBZyA7O9OkJZelno1yLOOFWzFELYb9uI914viFrqv9q+u1za94TmTQwyAuv0qcOjz/OP6x/LMuRhbegiRN4J/6bjNChwbVTIAn75SuX9LkcaU+oU/gx0oJc/W89yEBT/bao4QfOzTqo0Zne0Y0PP07mrq+wqj3/ch4c+AW5Y7kR8WOmZ5JTQiDJSZQ4sVr AjYQhFKm 8N9G1V9wEw9vO0Gp0RxBu8dXpzWWs0K3sFOkQd8uzl2e76dn+uEFEfXsTkaMecJQr2czZlynxnbSWDyvb+NuHj+Qrp6sXG7+t6psYwRQqEYB7iy6N3Eq4BZp7MiRmuRjoUO2i2ZPirFa4pFPIIKq9Hty8UZNYaXrpWiYERUOs1yEYa8i1LyudhNZTVmcpGsTHvLetCOXGKkDuA9GSGbsCQjvzgedRHk83l3FPH8iFirn9KHjkt6V4omkj0GVEcQFs0vIBkhkX7GRFxjKniGohigFJIA== X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: + 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)