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 58D09C4167D for ; Tue, 7 Nov 2023 15:34:52 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 4208F6B01A1; Tue, 7 Nov 2023 10:34:51 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 3A87C6B01A4; Tue, 7 Nov 2023 10:34:51 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 222366B01A7; Tue, 7 Nov 2023 10:34:51 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0016.hostedemail.com [216.40.44.16]) by kanga.kvack.org (Postfix) with ESMTP id 106616B01A1 for ; Tue, 7 Nov 2023 10:34:51 -0500 (EST) Received: from smtpin20.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay05.hostedemail.com (Postfix) with ESMTP id E0CF440147 for ; Tue, 7 Nov 2023 15:34:50 +0000 (UTC) X-FDA: 81431555940.20.FF17FD8 Received: from NAM12-DM6-obe.outbound.protection.outlook.com (mail-dm6nam12on2079.outbound.protection.outlook.com [40.107.243.79]) by imf23.hostedemail.com (Postfix) with ESMTP id 184EC14000D for ; Tue, 7 Nov 2023 15:34:46 +0000 (UTC) Authentication-Results: imf23.hostedemail.com; dkim=pass header.d=memverge.com header.s=selector2 header.b=B168JVdH; dmarc=pass (policy=none) header.from=memverge.com; spf=pass (imf23.hostedemail.com: domain of gregory.price@memverge.com designates 40.107.243.79 as permitted sender) smtp.mailfrom=gregory.price@memverge.com; arc=pass ("microsoft.com:s=arcselector9901:i=1") ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1699371287; 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=/tCxEzamrMrIUv4GcfiOOlbPvyOgpDL7gIciakCDqSg=; b=i1qn0i/mboML3QjEK6SXMx+hygHyMBVftmxx1NiQN5gjbGn2D2b6kMLYyp2gZkWjt8z6Rs 5kNh8RF2iOyg9KCsnuYDp3bB0nrzIuGerN/laqG9gK+4Ry7+x8URr2Va0DlRREKDrcYGoi 6N2HAFF3EWPqlSkWb3D49vQzr0QdF04= ARC-Authentication-Results: i=2; imf23.hostedemail.com; dkim=pass header.d=memverge.com header.s=selector2 header.b=B168JVdH; dmarc=pass (policy=none) header.from=memverge.com; spf=pass (imf23.hostedemail.com: domain of gregory.price@memverge.com designates 40.107.243.79 as permitted sender) smtp.mailfrom=gregory.price@memverge.com; arc=pass ("microsoft.com:s=arcselector9901:i=1") ARC-Seal: i=2; s=arc-20220608; d=hostedemail.com; t=1699371287; a=rsa-sha256; cv=pass; b=u9l6BdPJTTK974IOJLWn0p/fzOTuyyRCq87RITB8nI3+AFtTskGUd/KiJQWHeGskVVGCf2 O7091KN0uj7+Rkqm0RHhWiOEUFwR2wuen+ZvDmxv3Te2JoawsxtV5ZgsypdVT62I70QMhb eTE3Mlk8vc0rDXepKbT1fER7wrq9ayc= ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=OsuAlM8pjPJvZ0GyPq/7rWC4Zy6P9oAFvAyaQvPatu6g8X/qgA9xugZykEnRX62QRMZ2jvKwQVFxEcHhW35+GXnrXGausAyPsbGpyhmQT63LJuYrtro7bJLi3pWPMlrObv+gR+9nDpybNKJG7S5Z1ZxbPcVk1UbJrGMLl2weD85JWhSxOKUwZRVIGWHVkg4xqr98UY8Fr+L2nda12haZfKwyUyJ0kjlScA43nPlYiVv8NRPNmQuOb8LTAdBztXjh4oXAlMGTicnJIj1WdV+UrSj2h4HyevaeV+OdGpL7LBA1r8aRE29/r4C64UY+uUh1L19zEGDZ1/8rp039sSCwIw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=/tCxEzamrMrIUv4GcfiOOlbPvyOgpDL7gIciakCDqSg=; b=W9+6eHw0odVqtmKZAHyBwvZXJLRLO06riHduk+waRpC/GljGhYW6fBBxi8CS0217MTbRFrjleBc3Mx1oEtfYZK+KROB1pq2w9VWzfzhHV7cMDo1QeLHnXbeflwc1WIu2LcIZd2kTBUTe+zTSNlPAZnhdpP99CulJ3kpYgaZOQjCwQgEkDRANVigoYW6iggjXJR5VrpexcR9Q0W48dPpxL+ByPIjlQRw27RzYCPiFh35N1mtA1PNAbg4hKdCxhORRJcFslR4++SmkhKEzxfuuD1l3QDFA1WnoldAF3+Jt/3PVRBhHcH6D8uzSAlMvS8tvVKEbm6A90Nrr/Uo+jaXFrQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=memverge.com; dmarc=pass action=none header.from=memverge.com; dkim=pass header.d=memverge.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=memverge.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=/tCxEzamrMrIUv4GcfiOOlbPvyOgpDL7gIciakCDqSg=; b=B168JVdHkEkQGuFcF9nCTkggJ0SbjDGY8fmxjvPyU9VxgxduNJ+DFvOlVpWlQjITT2BV2jnymPzZWcayILbLT4Pq5fOzzw7L2eiDrocya++YlauMPE1og9HLSek6U9OmSA4dV7W1KLbRaXILyJGvjSBumpab1+Ro9e/IVb0iiDE= Received: from SJ0PR17MB5512.namprd17.prod.outlook.com (2603:10b6:a03:394::19) by SA0PR17MB4267.namprd17.prod.outlook.com (2603:10b6:806:e7::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6977.18; Tue, 7 Nov 2023 15:34:43 +0000 Received: from SJ0PR17MB5512.namprd17.prod.outlook.com ([fe80::381c:7f11:1028:15f4]) by SJ0PR17MB5512.namprd17.prod.outlook.com ([fe80::381c:7f11:1028:15f4%4]) with mapi id 15.20.6954.019; Tue, 7 Nov 2023 15:34:43 +0000 Date: Tue, 7 Nov 2023 10:34:34 -0500 From: Gregory Price To: Kefeng Wang Cc: Matthew Wilcox , Gregory Price , linux-mm@kvack.org, akpm@linux-foundation.org, david@redhat.com, vbabka@suse.cz, naoya.horiguchi@linux.dev, linux-kernel@vger.kernel.org Subject: Re: [PATCH v2] kpageflags: respect folio head-page flag placement Message-ID: References: <20231030180005.2046-1-gregory.price@memverge.com> Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: X-ClientProxiedBy: SJ0PR05CA0096.namprd05.prod.outlook.com (2603:10b6:a03:334::11) To SJ0PR17MB5512.namprd17.prod.outlook.com (2603:10b6:a03:394::19) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: SJ0PR17MB5512:EE_|SA0PR17MB4267:EE_ X-MS-Office365-Filtering-Correlation-Id: 42f8ca6a-2e27-45c0-c6e1-08dbdfa7100a X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: xkx+2yJqb1zxoQb5bScz45MeL7yFFtkeisSCCxtxLNl+APOJ0Cbh86xqIWCwB9070vOwzC27SBV67ya51V5tYrFFHrZ5pGOe4hqagq8l/20pM6/zGFQgkjr96EJGGw6FNMsGxl1/Z0g6YjwXseqIkD+Xdfbn1Uf6r9soeA3PvLBkB6tZpZebx6f21gBDGdb+G7QBTXdumYZZb2fv4Pkv8sTPJXKc2HI7U/KJ8dqlwkpXpPh6d2oy7ApEoAG7JwhQJ5e56C+eI+UY2zAVZne5+laAFEsspli48zKOvE9irf49liQA4VndlZExFpdMZeWL8p4Mco3NJquR2S4by1C7sF+mJzfaSanApEUqcsyg+0rx7S7SVP4OA7ovUIGYze0DCD8YIH1dkkMddVX4pyKTH6g0iZ+SXj3yC+yamza/YeX3lOG7dpN34HZ/Lz0gLP1Z17zLwziJKdF5AwLBkFHvPkABunUspVYMUhgS8jJMbrsGGZ1SNaHd7X74HAL2OTTxn7LUWAoBxhU1a9al56Yaiwg2vq1s2aFD+TW54OIEA7uNxQdK4m4s8EBZ5bZrgwkYcRG5t3j4onA7b5uEjvQuWSLUvSTUUErcN8kbk7nSE3NU3VIQjJZ2cKsPEgQWkNxV X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:SJ0PR17MB5512.namprd17.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(346002)(39840400004)(366004)(396003)(376002)(136003)(230173577357003)(230922051799003)(230273577357003)(64100799003)(186009)(1800799009)(451199024)(53546011)(6506007)(6512007)(2616005)(478600001)(6486002)(966005)(6666004)(83380400001)(316002)(26005)(2906002)(44832011)(5660300002)(41300700001)(66946007)(66556008)(66476007)(54906003)(4326008)(8676002)(6916009)(8936002)(38100700002)(36756003)(86362001);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?PhKBf5PVGUsvSAtdHwacjRCNtOJqQ99BV/JxvdQVQ4CIZPCnxeBeVUist55E?= =?us-ascii?Q?FaGOxTg+QvNEz94af6fea/tq29jvz6xRcozO9RMFoyLvLa0l4fhSEAuIbbUt?= =?us-ascii?Q?gdvenYtocI17pM4bVrWFNwVkvheled6bBhZQL/1UZH8phHJBXQOx9hQzpzz/?= =?us-ascii?Q?A9AS6XhzNnRNiF32TvZeYfvSmy9zK4Di8QKHPTswppqPoprdsvIqZ+JssMI0?= =?us-ascii?Q?fEITHftKVT6Tdor5Vn4zxpth70YECn+nJ4WNYmkEhroMYBKEheSXGB2Vc7Ay?= =?us-ascii?Q?S+JfEPh9e85UNVrwdijf1ep6xG1g/ALnErmLAevp+EH6iwBaMFoqQHj0c64R?= =?us-ascii?Q?v7G8IXCy1Qqh4QvoTPkDnBckzZgq9+zwIuuDkZJwd24nSFF5m6feUSkY+1I2?= =?us-ascii?Q?yfVL4c8reHCenaMkqN+kIivIa5M5gwzK9u+/j3GVH7WDqkJJATy6SQ2oNCi6?= =?us-ascii?Q?miHvEXMJ+KiOOeC8D+J+iTtKp/Ic6LAz2oRCxI/K1j1RghVWUdvxdqO+VrX7?= =?us-ascii?Q?DaTa8wCB0ZYFNkxMPAW+XDr3TaNeCdcDXRTSfLylQV2gJEw7Li+NeEZ3Wp2x?= =?us-ascii?Q?mCH9SPofID97Q9ar4R+HTimTZIjXm3YiCDRHDCsOdzPeP6/5RsB2HxUTZA9l?= =?us-ascii?Q?qtIiQUZKNT2i7rSyhQdU8jgpU7KDhIPm7jfxhklynI4t8kTbTrzyLfSfJqtF?= =?us-ascii?Q?Su0fLhUuvICc/tG8agXXolZBS08cOyweBfwTaP+tNkeNEFXIG1auQ2fcAAQM?= =?us-ascii?Q?iL9fX8Yz3g+eP3AtlNZM/31nYGoxG9PzKbga7AipkvZTxikGg7W1mTbjQNQf?= =?us-ascii?Q?XdiDh9USwgBU3ibZlgFAjg6W8UiIrC1/e5BrtXoGKoLlyeR/TB3fpTKb+Meq?= =?us-ascii?Q?aIrsISceDc7o4uoFx9A0uQyN/+rbEr/+gYvAPlmCZYz+ciQ5lYVlsmY3j2ab?= =?us-ascii?Q?s2BBGKGK4Ae6mxS8JBQwMmKMbifeKvK3olIJo6GjFEy7+CwruhYVTTItWrXX?= =?us-ascii?Q?eIE0QNw1g2QdJR476azIXq96ZZS9DyeG4MWDw4wFYx2ToBErVK+mseK3pzwn?= =?us-ascii?Q?mMmheRe3IFeiiDpjGDFscutgW/8ZSc4MW7r9sPh3vrMkMMdDaUkk90DOx1fL?= =?us-ascii?Q?uS3P8o9ZOcYjoDGr9GSQT4EGeRvkmLbTNgU+IKhmOl1AtRCLtCvvL2phvGk+?= =?us-ascii?Q?ik0qrNx0e9gi1DD0xA0DYZPVjXOg/WnmRfgj3mDuED69jyBa18BGbaVL/IKh?= =?us-ascii?Q?V4FK7OXSK5/xQbvi7dR72uYAn9PvTzabAgG3pIXK18CaSOcNc8YmFm9ygx05?= =?us-ascii?Q?5DUeZGZUbm7NApccK0pH5GTVy+TpBvePH6Q8z4b7MRWtbMRL7vLJloGozZdE?= =?us-ascii?Q?Iho1hTPVT/pqIhBHcTHs2cnPnweOyXj5AueYJqz537k7lhubpu1oXi945RKE?= =?us-ascii?Q?JDzlWdc9dV0bICHr5VNgAT36nNL83MPr2yvCfBVofBw1xW9zMzup6Vu4sjg4?= =?us-ascii?Q?eyvxUZ4c15UDgm1wPlFfPjy/GOstuDWYUpCEMHB2Tg/MsrAQkxxDGuI1hTkn?= =?us-ascii?Q?gJsN81dcr24IpyiIuzJnsMR2ValnOp8rHsoXkhcA7x8MOEauI8LrgB+alqm6?= =?us-ascii?Q?dA=3D=3D?= X-OriginatorOrg: memverge.com X-MS-Exchange-CrossTenant-Network-Message-Id: 42f8ca6a-2e27-45c0-c6e1-08dbdfa7100a X-MS-Exchange-CrossTenant-AuthSource: SJ0PR17MB5512.namprd17.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 Nov 2023 15:34:42.9351 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 5c90cb59-37e7-4c81-9c07-00473d5fb682 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: 4pzBD2+63x4Foj3Ibi8fZ8AvfjQSdkpAEXu50I7t+ePUa0Z5yu7mN583eya8UN5zrKr454DVSuIiTg9IpN8onxEimDFECxch6r0UhBlqgkI= X-MS-Exchange-Transport-CrossTenantHeadersStamped: SA0PR17MB4267 X-Rspamd-Queue-Id: 184EC14000D X-Rspam-User: X-Rspamd-Server: rspam04 X-Stat-Signature: 1oy6qegdrigrtgf7pcwz4c64nee36ajz X-HE-Tag: 1699371286-464731 X-HE-Meta: U2FsdGVkX190+lR4PFmSBS7llmeT3CjwNMByWaV7bRsXLWY/WNTDrAP0Ycnk+OrZWTqlt+uSZ2qBOpdiH41dkKIePmGyQ6iuu6IEwqafQTS7lCkNzrn+KkhGgPeOpR4Lc2/SQGWO3HArYyDBiRY+aGou4/3mdweT+ix59/7qG/3mWwE+UMfUnhkkzJNcky0l+/G9eqhg+mE/KFJVHYbhm4v7ptc6dm296mHABZkWLfSbx63jpJhLWOb6o2osUNXmr9gWkV8ixob/m/V3ygA2D96GYFYYRd/T24EHBi0vlXNSdlAAWv542wPelluKIzDQBRr76UacDtiUTKPjEhduwbZLmNGdfQB+0BVGpy7ZFAeIpT8LYFRLNYzQSXXpdE1ac/F++dUFEEuBT0QkZjWop237xcDegAWl3qIQhfz/HX5j8dHTNLjeCUOF3EG1amqxkHVQ0uSUxeI991dmzy1LSxmuS0hXwyDjnhJ/iSLff8wvXJ4AkCaX8Z3YAP5u3yRGzXvfocbLCO+tUOKadIyF2zkyIwaeb1UaXJ2ZE0bp6XWamkik9RlHbanWnxE70HwkcvEnvhlic00zfYv2y/s0/v4Ao/TlNLlaxdkFJWvBGeTulvFWWRQJSMwDsCZCYU3GG+/WR9Be3zVjxkoaoETisaji9JxJFS5I0a3L6avTpPwMvjs8bzs94BaRaHaIVTiKkor0m0o61AC9A4AfJwz054TDficiS8maDM3BMHSB1ClY0aCcR+cdLtxeYb53mxOvAx7YatNtW75GCFFwhcULtDAz1nwfH1ESIEDjvM941Y+DBkUuTzLxEmGW4cpI6jh5f2faqg+vTzj6UAOoCF7dIneAhAbmTYpxP4yX7aLAdsBRWE4TUa/GG45FBwkB2PRiNOud5qLL6E8EZZzikiBGFEykU4cv62C2WJuEQOOAO7eSaBwDnfUUWcqhyfEl3zfIfP/Qqk2fr3m8lu48Hsw LeGGUX7Y E/rT3WDb//pyn+dpvMmh1WW8lr1q+MGeuOU9tj9SlK5o1XZv5dtK8JJOtPAbez5ydjPZFDlap2XA1vCiw0Fr0DBFZRdE2KjY5Kcz5X1LYRnx0YFtfXouZrIM1E0XOhMYj0s2S4HiEb4uoDv25Uu2DgD8/j1spTnBfrYgSCB98d8BbGkO74Yj+Xp3anPsv3yWkQQh9BqP7NY0HwL0i6xeTPF85GxRxgVB2n0XO8O9af5YsHMcv5P9W0K7dOFFbq78fUBmKHTjq/5rSYB4SmKpCCWooRVPO3FIKfkAfSePER/LS9qABLB5ktHnOMMseT6IIS/5gEyTIAXM3WjU22of2HlSnMqwnzwDZt5RpUEJDCNQ5um8o8RcMTi40ri00sjrmZqJHgDEekPF91TIteHKMZHjstWDHWmEcPpPs8Ww+TMFffbk= 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 Tue, Nov 07, 2023 at 09:03:53AM +0800, Kefeng Wang wrote: > > > On 2023/10/31 12:34, Gregory Price wrote: > > On Tue, Oct 31, 2023 at 09:13:44AM +0000, Matthew Wilcox wrote: > > > On Mon, Oct 30, 2023 at 07:41:23PM -0400, Gregory Price wrote: > > > > On Mon, Oct 30, 2023 at 11:22:18PM +0000, Matthew Wilcox wrote: > > > > > On Mon, Oct 30, 2023 at 02:00:05PM -0400, Gregory Price wrote: > > > > > > kpageflags reads page-flags directly from the page, even when the > > > > > > respective flag is only updated on the headpage of a folio. > > > > > > > > > > > > Update bitchecks to use PAGEFLAG() interfaces to check folio for the > > > > > > referenced, dirty, lru, active, and unevictable bits. > > > > > > > > > > But uptodate, writeback and reclaim (amongst others) are also defined > > > > > only on the head page. > > > > > > > > > > > > > Ah yes i was only looking at the things defined w/ PAGEFLAG defines in > > > > page-flags.h. I'll give it full once over can collect them all, my bad. > > > > > > > > (also i forgot to update my commit message) > > > > > > > > Quick question here since i have your attention: any recommendation on > > > > what to do for ONLY_HEAD flags? If the provided page is not the head, > > > > should the flag report 0... or whatever the head says? > > > > > > Thinking about it some more, really almost all flags are per-folio, not > > > per-page. The only exceptions are HWPoison and AnonExclusive. So > > > probably the right way to do this is to make k = folio->flags, and > > > then just change a few places rather than changing all the places that > > > test 'k'. > > > > Funny enough that's what i originally did but was confident it was > > correct so walked it back. I'll take another crack at it. > > Hi Gregory, any update? > I changed stable_page_flags[1] when try to remove page idle wrapper, > Matthew pointed it will conflict with this, I could redo my patch > based on your new version:) > > [1]https://lore.kernel.org/linux-mm/20231103072906.2000381-5-wangkefeng.wang@huawei.com/ > > Thanks. looks like we were noticing the same thing. I haven't done any further work, got caught up in another project. Matthew last pointed out: "probably the right way to do this is to make k = folio->flags, and then just change a few places rather than changing all the places that test 'k'." https://lore.kernel.org/linux-mm/ZUDFSEvpxxoGWmdG@casper.infradead.org/ I took a quick look, and the only thing I'm not confident about is that some flags are stored in the head page, and some are stored on the second page. /* Which page is the flag stored in */ #define FOLIO_PF_ANY 0 #define FOLIO_PF_HEAD 0 #define FOLIO_PF_ONLY_HEAD 0 #define FOLIO_PF_NO_TAIL 0 #define FOLIO_PF_NO_COMPOUND 0 #define FOLIO_PF_SECOND 1 There's only a handful, so yeah the best way is probably to go ahead and swap k = page->flags for k = *folio_flags(folio, 0) and then handle the couple of outliars. ~Gregory