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 85562C4167D for ; Fri, 10 Nov 2023 18:19:39 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 0F2D88D00F3; Fri, 10 Nov 2023 13:19:39 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 07C628D0005; Fri, 10 Nov 2023 13:19:39 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id E60FF8D00F3; Fri, 10 Nov 2023 13:19:38 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0015.hostedemail.com [216.40.44.15]) by kanga.kvack.org (Postfix) with ESMTP id D45EA8D0005 for ; Fri, 10 Nov 2023 13:19:38 -0500 (EST) Received: from smtpin08.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay03.hostedemail.com (Postfix) with ESMTP id A9DFAA0460 for ; Fri, 10 Nov 2023 18:19:38 +0000 (UTC) X-FDA: 81442857636.08.1C444AB Received: from casper.infradead.org (casper.infradead.org [90.155.50.34]) by imf01.hostedemail.com (Postfix) with ESMTP id 103DA40008 for ; Fri, 10 Nov 2023 18:19:36 +0000 (UTC) Authentication-Results: imf01.hostedemail.com; dkim=pass header.d=infradead.org header.s=casper.20170209 header.b="V1/+fRC4"; dmarc=none; spf=none (imf01.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=1699640377; 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=ZMzOaie4lywyOPf2qJYwfQniWHJ785xzMVX7+oeUO70=; b=XtFpxtw52mEQLzGFaWfxOUhHLcDHTgKbYqYlW6cuPToTQcR5129VvZO7zMfi7jBWdmw0Mg jtrF4jHkUwpFasrnFQ7/yKyhigVMHDMfOkXowWIw2C55GGTzHRs6N9++1yWq/hpyaLchw9 NjRi0NnuLORN600gEaL+nn0ldn/O2nY= ARC-Authentication-Results: i=1; imf01.hostedemail.com; dkim=pass header.d=infradead.org header.s=casper.20170209 header.b="V1/+fRC4"; dmarc=none; spf=none (imf01.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=1699640377; a=rsa-sha256; cv=none; b=zDXo7D+qeEWgrQCXppOedSsp2CkycusmdtDHi3vu6ozfieait2kJk2/jKtfzuswpFst3N+ xMo/oTiaMbCt4V76YcT02LVJCnbDut3Jsw3EMdKo7Z3j8iYA2ZHmr1AS8ujHdrhsxOnGXp t/eR7fxHtl5BT1YEpwWs+oYXo0RH0eE= 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=ZMzOaie4lywyOPf2qJYwfQniWHJ785xzMVX7+oeUO70=; b=V1/+fRC4D72zEHzXEcZAduUdd1 pb1y7v9rAMDlrrgMItIiW3TYe9rOF8vvJFo/g5sdeXUlNJEftP9ynKZ5JXZ14nEhvlI9z48e/IYRz NtP/pR30g/6aZwFqEzDhQPMiZwmMCTRlNB5nlaIGvh8A+Sj/JgD64+DkAzCPm7UnFP2Ict7r2gLf+ pw15c6cCj5FUGBPRNcCaSJZEoL7pnNYgjSra9nNPzvhghugr/9u6e0xkyuXApbXois2WzbrViiuUn mQ+pjwy81BB9gCPf5ADmwHiv1BW86pB3tnV9RQPWrV/e/4CBQ+l+QZccPF7OXRtE4uu77H8AtI0zk Nht54HBw==; Received: from willy by casper.infradead.org with local (Exim 4.94.2 #2 (Red Hat Linux)) id 1r1W69-00EtFN-4N; Fri, 10 Nov 2023 18:19:17 +0000 Date: Fri, 10 Nov 2023 18:19:17 +0000 From: Matthew Wilcox To: Kefeng Wang Cc: Andrew Morton , linux-kernel@vger.kernel.org, linux-mm@kvack.org, David Hildenbrand , Gregory Price Subject: Re: [PATCH v2 3/7] fs/proc/page: respect folio head-page flag placement Message-ID: References: <20231110033324.2455523-1-wangkefeng.wang@huawei.com> <20231110033324.2455523-4-wangkefeng.wang@huawei.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20231110033324.2455523-4-wangkefeng.wang@huawei.com> X-Rspam-User: X-Rspamd-Server: rspam12 X-Rspamd-Queue-Id: 103DA40008 X-Stat-Signature: 8bqpkidcnmpkqubimpts5a8sw7jd7cu5 X-HE-Tag: 1699640376-63828 X-HE-Meta: U2FsdGVkX1/Kq780MeQ6Bus5W9vrPnE0wuxZ7wPdoNLntPL6Ui87jjLdETJ5wl/mHq5HkuuVRP75iA2Zyq4IVmJHqa3r+P6+v/4eSLRPOo3MMNecQ+OimNcvXdR0AbUkDvwtJMjXF0A70Hu8CpmCgIUd/paawjb9HbJ51CjebBcxfa33Goe7qk72KcCZzfg32R/D11orVfT9g8q20GsuWEJDPYEaJALtedrYfJtxz5WLxcpPSWSPzwx4pwtNdhMup5w86YARUD8J3KbSttHd/Pk/6EJO+L7YzcYT+H4oTdra7ELaS+6SDjQ61IynnHxOO1WAjW20MNmm77Y5vqOuq3Jriv1sbyq9Wti2tVi4W6GE/zM7kCfxvqv/dlDj/yfja2UNWIENqgh4yEPG66kLxxZScWu58Nlmz9ZJXJNnWPJMgAFi7dAltQbqUmrfOjZTdvUcJxo53beinSHiFkWr7xCYXXvsxwvkEJ42wsUtcSGoo5v0nFubkdR7Y3j1+kYLZlxPLUVitI/cg9nLNJz0vE5KZMfPWi5q9WH+hTxceivVhBCXsCKUukPB5qJQrNZ7tMyrYL06zOO3cFxU1+uEfEegOsn8CrCX3vC7WCtibIjtkIRAGnrwFGyJcEdjhBfZQ21qXnfATcfq1DapBOzdEW1B5/OyXVKOzGDvzlrg7oGUyzJXP+fi7d805ZYal37KIpq0bZ4h/KWGelQucqjtettkF187WX1E363n5a+hQ6+s9wEqn+2FilJTu4WyOPRTxqNGp5ADAdv11ogtUum0OjkpgQGmU3MhpoED/aL4LxBQTmgS663g1FWlDZO9eIs2DUw+uRPo1r4hxFWetVLLaHouFfeVnYMkUH7ZO0lB6n12x6VVnr7JRhrzE+BnXKUbfLjGK4DwVRkP27ALw1+ojEazfLcUnCfm3SIyQ7TFHPRRCSPu/Mm+zSM3hdXm7pK2cGmA8oB6q6iu2WszFAT Py5f5mAZ oorZaHQk4eNPN1r7Y6zIWeiT7FmVFJKoELCdXtYwABCz5EJ+IaqqJWf1AkggvYfd4+ETDpGC/k4+LsFRkebB7IFfR8qhMez5Tzm1j3XuHnRHNdoElIkupZ3uKdmCLSJp6f+p+csaZLY7H9ISCPFDp0OkomNbikcN+JlVuEJozsgpqelWSNlf4HnEh7VLJGnlInVA99E+Re2c6i5XXif9bITbtDt5bV7YO3GCTKctgRbTEL28= 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: On Fri, Nov 10, 2023 at 11:33:20AM +0800, Kefeng Wang wrote: > kpageflags reads page-flags directly from the page, even when the > respective flag is only updated on the headpage of a folio. > > Since most flags are stored in head flags, make k = folio->flags, > and add new p = page->flags used for per-page flags. You'd do better to steal Greg's commit message. > Originally-from: Gregory Price > Suggested-by: Matthew Wilcox > Signed-off-by: Kefeng Wang > @@ -202,7 +202,7 @@ u64 stable_page_flags(struct page *page) > u |= kpf_copy_bit(k, KPF_MLOCKED, PG_mlocked); > > #ifdef CONFIG_MEMORY_FAILURE > - u |= kpf_copy_bit(k, KPF_HWPOISON, PG_hwpoison); > + u |= kpf_copy_bit(p, KPF_HWPOISON, PG_hwpoison); This is correct. > @@ -211,13 +211,13 @@ u64 stable_page_flags(struct page *page) > > u |= kpf_copy_bit(k, KPF_RESERVED, PG_reserved); > u |= kpf_copy_bit(k, KPF_MAPPEDTODISK, PG_mappedtodisk); > - u |= kpf_copy_bit(k, KPF_PRIVATE, PG_private); > - u |= kpf_copy_bit(k, KPF_PRIVATE_2, PG_private_2); > - u |= kpf_copy_bit(k, KPF_OWNER_PRIVATE, PG_owner_priv_1); > + u |= kpf_copy_bit(p, KPF_PRIVATE, PG_private); > + u |= kpf_copy_bit(p, KPF_PRIVATE_2, PG_private_2); > + u |= kpf_copy_bit(p, KPF_OWNER_PRIVATE, PG_owner_priv_1); This is not. PG_private is not, I believe, set on tail pages. Ditto the other two. If you know differently ... ? > #ifdef CONFIG_ARCH_USES_PG_ARCH_X > - u |= kpf_copy_bit(k, KPF_ARCH_2, PG_arch_2); > - u |= kpf_copy_bit(k, KPF_ARCH_3, PG_arch_3); > + u |= kpf_copy_bit(p, KPF_ARCH_2, PG_arch_2); > + u |= kpf_copy_bit(p, KPF_ARCH_3, PG_arch_3); > #endif I also don't think this is correct, but there are many uses of PG_arch* and I may have missed something.