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 730C3EB64DD for ; Mon, 14 Aug 2023 19:58:53 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 0E3AB8E000B; Mon, 14 Aug 2023 15:58:53 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 094518E0001; Mon, 14 Aug 2023 15:58:53 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id EC5458E000B; Mon, 14 Aug 2023 15:58:52 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0013.hostedemail.com [216.40.44.13]) by kanga.kvack.org (Postfix) with ESMTP id DA0608E0001 for ; Mon, 14 Aug 2023 15:58:52 -0400 (EDT) Received: from smtpin27.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay08.hostedemail.com (Postfix) with ESMTP id 7D862140359 for ; Mon, 14 Aug 2023 19:58:52 +0000 (UTC) X-FDA: 81123773304.27.74D0AC0 Received: from casper.infradead.org (casper.infradead.org [90.155.50.34]) by imf11.hostedemail.com (Postfix) with ESMTP id 75AF840002 for ; Mon, 14 Aug 2023 19:58:48 +0000 (UTC) Authentication-Results: imf11.hostedemail.com; dkim=pass header.d=infradead.org header.s=casper.20170209 header.b=QWU6nQ+K; dmarc=none; spf=none (imf11.hostedemail.com: domain of willy@infradead.org has no SPF policy when checking 90.155.50.34) smtp.mailfrom=willy@infradead.org ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1692043129; 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: in-reply-to:in-reply-to:references:references:dkim-signature; bh=8y8Cxp20leez+KCFbDnHIE/08EfhVajhz7Hb7arHBgc=; b=DWhYEq11N1GD1OTuGpPMixb3P0OVs8ssqC8p5puxTkoBo8djfz5aeqYbfmZrOnWJ8J9I8d 1I2LEXaPmFtVkSolGolc5KCJr1K0RRjPrZSUeMdi/TV1RE6kEXFDgMHStneo+oq2KtiG1S wtcdop76UQXQx9rkhMEm+5g+uS5oVEg= ARC-Authentication-Results: i=1; imf11.hostedemail.com; dkim=pass header.d=infradead.org header.s=casper.20170209 header.b=QWU6nQ+K; dmarc=none; spf=none (imf11.hostedemail.com: domain of willy@infradead.org has no SPF policy when checking 90.155.50.34) smtp.mailfrom=willy@infradead.org ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1692043129; a=rsa-sha256; cv=none; b=6+/DiA5/fF1TFDsiiA+Igh/6zNSTkEaqSQOMd4EySvzO17s90kBiawbdz4CHo81XPdDnrm 0pVvMPcURaupZLWjzPTN3dmi1E123W/KgzItAYrJ2X06K2mW9N44Jc24InSnvHkD1HuGVC +cTVsiaS3xdOnhEVhUFNVve/RVhXoYQ= DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=casper.20170209; h=In-Reply-To:Content-Type:MIME-Version: References:Message-ID:Subject:Cc:To:From:Date:Sender:Reply-To: Content-Transfer-Encoding:Content-ID:Content-Description; bh=8y8Cxp20leez+KCFbDnHIE/08EfhVajhz7Hb7arHBgc=; b=QWU6nQ+KgBU8NhZs9pOpMN58ss LwMsUonJ8kXIozIOuBFgYcg/hOw1vm736P5sp0ttA16CsMcCM7aT93kVVX3BOgVps3iH8iPgdZKxI vwo4SG9bH+yRohnAZ8/qqWJ4zPJfM7jBIUpVCfxgLA+hNXu6FGpPrIZ6zlZSgPqm+m20u4x1PmVE+ JZ2qsTU1CcTbNbV5/xtOKkhi1z32rqJ+PW/U5OGufOlKTW9sU65dKwZrCa/lBC/jGozp/3sf4ma/t 3w7xuf3VYvU4nNNTOZEwmvAeZqCq+ow2Uw6ekPFmWb+wHuDkp7EEQLZAEo25ia84R6l1IPShYVyDD AjRhCbXg==; Received: from willy by casper.infradead.org with local (Exim 4.94.2 #2 (Red Hat Linux)) id 1qVdi8-003vcn-AH; Mon, 14 Aug 2023 19:58:44 +0000 Date: Mon, 14 Aug 2023 20:58:44 +0100 From: Matthew Wilcox To: Peter Xu Cc: linux-mm@kvack.org, linux-kernel@vger.kernel.org, Mike Kravetz , David Hildenbrand , Andrew Morton , Yu Zhao , Ryan Roberts , Yang Shi , Hugh Dickins , "Kirill A . Shutemov" Subject: Re: [PATCH RFC v2 0/3] mm: Properly document tail pages for a folio Message-ID: References: <20230814184411.330496-1-peterx@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20230814184411.330496-1-peterx@redhat.com> X-Rspam-User: X-Rspamd-Server: rspam12 X-Rspamd-Queue-Id: 75AF840002 X-Stat-Signature: fk4du44becbxuqqadkwejp94rh5745xb X-HE-Tag: 1692043128-534604 X-HE-Meta: U2FsdGVkX18WoL4a1hvfVXOglM7eeYoW0y4EdJMeVdt3nlisogIZMmpHdXcDJvTX5MANMWc/wk3X76EX/e8EDx2QOD+N6rGz9xBL5SsFYyIKo8rdze4POm3CraN7pJpbjy1o56t3dNDHHyvypypU1adUHPuMMeAyqOTcN6RLwVgni3nlN8k4YBauQJmTYp/f+WpiOZNEq5J9eqECEv7/5aQN9u//CJCPm8mSAQgP2mmoDLvDQ8DdkeUvTWP9nHfP7UsEA2185JxN5hNjvCwNudbffVkuNP1Whw7BF+g0n3/rFkJ+EuGOwFYoqSiyuaBm+c0VD+jqGDCjAuanxyUy6FSJtmPuwZdr7zX8wlKDi1X7LluevhOxO2OW8+21dQu7U/fK+qf9YD5XnBMSYMu+KxprXe+c80hGMgRPxYseDgiWBwlNc9w3Vna0odXYynMwfVdrM6Lh+x+SfSmHq0x1RAX654kKNAFDy7AjPAuJrIZkVwT5bGI8yGjBwM+z8mfrU++DywkIO/4H2+2kKQSPU2vh7mkg/qFXMtpyacqaSgxJDGM5mWTTxifHmJK9a0mGgmgBVV22qbgqQL1e/rGHMS6etpKFbJSe7JdCQooWesNRx9H7K5CFr9caOoPFRfMKrq+CSeqXwAyxW+UobVJW50x51uicJHf8qM7c6vAB7j6Hu1NccerSTJbzdtU8XdD+St/jo1M7kTOMCDKTPdeXY0xm8TYxV9SaLzcoJPTlszyaDSg52sYLZHJ/dAwCf7V36lQObSf12BWY06ipYetodgZMWEMuDuuqmyKwu1Y4H1b4vpe10ScpvOh9D/W1QlDIwrjGSr8EpwWBEd+dQb6ktHZTUr6zZb4kpU6nwO4wTc15fN/Z2ecLpfB1rZVtHMlAJJjYD53o4lH0PITZoPZCldzGhvGe0E/MsYCeVklO04zsVCwKpCQnwtmM/k0UwnwhQWdp94zrMK/Gf6fypSZ Uf6t/sQP nD0QIeAS2HbWywMW6JeKZzAJ6SiHlbqSlcaN0GkENIUbGIrhNJvjXhTmraWoBLcLvppPyvcV9ZwNpObbYpDOuWtXWe82/pwqRaSFuTezDx//7mz6OkFi4lkYviz1ay9Ld3j2dSDldtSOQWGg= 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: On Mon, Aug 14, 2023 at 02:44:08PM -0400, Peter Xu wrote: Look, this is all still too complicated. And you're trying to make something better that I'm trying to make disappear. I'd really rather you spent your time worrying about making userfaultfd use folios than faffing with this. How about this? diff --git a/include/linux/mm_types.h b/include/linux/mm_types.h index 5e74ce4a28cd..873285bb5d45 100644 --- a/include/linux/mm_types.h +++ b/include/linux/mm_types.h @@ -334,11 +334,14 @@ struct folio { /* public: */ unsigned char _folio_dtor; unsigned char _folio_order; + /* two bytes available here */ atomic_t _entire_mapcount; atomic_t _nr_pages_mapped; atomic_t _pincount; + /* no more space on 32-bt */ #ifdef CONFIG_64BIT unsigned int _folio_nr_pages; + /* twelve bytes available on 64-bit */ #endif /* private: the union with struct page is transitional */ }; @@ -360,6 +363,7 @@ struct folio { unsigned long _head_2a; /* public: */ struct list_head _deferred_list; + /* three more words available here */ /* private: the union with struct page is transitional */ }; struct page __page_2;