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 CB343C04FFE for ; Fri, 17 May 2024 21:32:42 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 5B3186B0085; Fri, 17 May 2024 17:32:42 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 53BCA6B0088; Fri, 17 May 2024 17:32:42 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 3B52D6B0089; Fri, 17 May 2024 17:32:42 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0010.hostedemail.com [216.40.44.10]) by kanga.kvack.org (Postfix) with ESMTP id 18FE46B0085 for ; Fri, 17 May 2024 17:32:42 -0400 (EDT) Received: from smtpin18.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay07.hostedemail.com (Postfix) with ESMTP id 988AA160526 for ; Fri, 17 May 2024 21:32:41 +0000 (UTC) X-FDA: 82129187322.18.976C956 Received: from mail-pj1-f53.google.com (mail-pj1-f53.google.com [209.85.216.53]) by imf06.hostedemail.com (Postfix) with ESMTP id B5B6318000A for ; Fri, 17 May 2024 21:32:39 +0000 (UTC) Authentication-Results: imf06.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=muYM81Oo; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf06.hostedemail.com: domain of navid.emamdoost@gmail.com designates 209.85.216.53 as permitted sender) smtp.mailfrom=navid.emamdoost@gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1715981559; 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-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=cyrneMtT2roM/mXv9xc7jF6yRyXUeDAQ1aSOo1P0c+s=; b=QysMKF8TWAa2M6kITJkhgN/VFT7yXO0uohhj5ej73SPDUJcELc8iRe8qHJyxZoCih1P0jH 9WnSn0OhFlo7d4oWtm0YmmA8SLcfI+ylV/BMIVE3ta8+jiYbZMKqrcBfogflfAHiB5abqY HIVT+/KuVso2qWpIlCi+KrSYjLBvlhg= ARC-Authentication-Results: i=1; imf06.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=muYM81Oo; dmarc=pass (policy=none) header.from=gmail.com; spf=pass (imf06.hostedemail.com: domain of navid.emamdoost@gmail.com designates 209.85.216.53 as permitted sender) smtp.mailfrom=navid.emamdoost@gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1715981559; a=rsa-sha256; cv=none; b=SAI7iGIJK92brnA6eAEmwRsoaLx6VRaZcKmEVA/VgJhLZLPO9OBTGZXSMpXkOdCwVWEsoc 2YQOSUJltE8bMrklJ2DDDBV1b88TW65PuxTTrc7WZopmYsU8hwAfN2Yb8+X/VqKyg7aIdC ufKLt0sw9EJmF7o5paiVKNfeDBc8c6I= Received: by mail-pj1-f53.google.com with SMTP id 98e67ed59e1d1-2b38f2e95aeso457392a91.0 for ; Fri, 17 May 2024 14:32:39 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1715981558; x=1716586358; darn=kvack.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=cyrneMtT2roM/mXv9xc7jF6yRyXUeDAQ1aSOo1P0c+s=; b=muYM81OopgxjNlJrIp2vpmhQuXZptYOPlfy8qc1rdr2piNJoohrQzyIJsc/PCCTcdF B5J+7VsStfxp1FO31UTs1zEAB4lhXp6/9tlOLI0QmC/fA2w836za3pfD7fDVub4OYl1z dkyk2+yoSFMVYsOTUmCUmUmVTeUSktclRyIormBmZeQ66tUXu5YL2KQWHxhrJSZgm3PR 2V9vEEhN7O7uLhMp0Lj8RLRU7kFAHTbTW8Vbt9lGEEMVrgCgPXQbQTg6rTrkfQvHJMAf 2PUruzeONq/u97uLp7ePoXDWcbVDXfX+tByptUv3KGCKONEDpwgTmr0/q7odgn9Y1HAL uM3w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1715981558; x=1716586358; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=cyrneMtT2roM/mXv9xc7jF6yRyXUeDAQ1aSOo1P0c+s=; b=B0fBMhNCvMruPfBndif3tclZVmAB+DWsvuKvSr13QpRXqlBBZNXgoBvYSVCOvxGdz1 QAH1URRjXxsAkiRleTLVn2HPsXRCJ0nBNiEqThIV9cFceTyCRKL7OwPy8ZGmHDDJFFrn eu/BOdHsR0ZA6k5OCrwDkHdUAPAw5WEqFJwkKlRcJFN7ruoCM94MJ/j36lzSYMHf9eTh B0+erL8VEw+rhkuXmbNQ7AAijtScra2EJgQSIRWnh6DKGeW7fnINlT4OIypqu03sC36M 8jJWxWm5R+TF9v6iCvI/juJ/8ZwsYwYa1hLLXboWwCCy/5inyhR3u1FjR1ACqM5VLrLt qTxw== X-Forwarded-Encrypted: i=1; AJvYcCVImonQOxps6Eb8cDoy6E3lzfBOZB+SJBgWs/dcabgYmAZx2cXwltBPjo8eTehPYkEj5tYnwzZKfqRPnNBfXmUAOWU= X-Gm-Message-State: AOJu0YyComuwZfpwdxC60Nrfzx4qFO74UsnuyRgo7dFRs187ExUazgrZ 612bDmXN9DhJAAu95q41pMjEhHRljWuyxR3x6cmXAa+Rmob2wJaE X-Google-Smtp-Source: AGHT+IFXyePfAU6GysoFIX/3SNu/9wWzEv6Uf6hwUK7S74vkedQQo6HP3kvP2IJec5JbP/nPkQmlFg== X-Received: by 2002:a17:90a:68c9:b0:2b3:6898:d025 with SMTP id 98e67ed59e1d1-2bd6038cdabmr402648a91.9.1715981558358; Fri, 17 May 2024 14:32:38 -0700 (PDT) Received: from nvdcloudtop.c.googlers.com.com (32.39.145.34.bc.googleusercontent.com. [34.145.39.32]) by smtp.googlemail.com with ESMTPSA id 98e67ed59e1d1-2b5e02bcf6asm15563186a91.1.2024.05.17.14.32.37 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 17 May 2024 14:32:37 -0700 (PDT) From: Navid To: willy@infradead.org Cc: bpf@vger.kernel.org, linux-block@vger.kernel.org, linux-fsdevel@vger.kernel.org, linux-ide@vger.kernel.org, linux-mm@kvack.org, linux-nvme@lists.infradead.org, linux-scsi@vger.kernel.org, lsf-pc@lists.linux-foundation.org, navid.emamdoost@gmail.com, yuzhao@google.com Subject: Re: [LSF/MM/BPF TOPIC] Reclaiming & documenting page flags Date: Fri, 17 May 2024 21:32:31 +0000 Message-ID: <20240517213231.2934591-1-navid.emamdoost@gmail.com> X-Mailer: git-send-email 2.45.0.rc1.225.g2a3ae87e7f-goog In-Reply-To: References: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: B5B6318000A X-Stat-Signature: xhdyh1swfbzroz4uxwbk3nfxj5jagy4g X-Rspam-User: X-Rspamd-Server: rspam08 X-HE-Tag: 1715981559-553346 X-HE-Meta: U2FsdGVkX1+I+UredAXIZl6MwNt+fZ8rRrdkoB1I7GcJSx/xfeWvWlzVkzVt16/6bjjsO48wZe/QC1cvtrV7a0ulKwiugMrWDkQbqvcdFh+AT3x4U3BH0lQCPSoirfTflmJOf7CHC9b5MUbpxTEsNjH/p27KDotZJW1Zu1+UBs9M+Xg3RQLj4xLFyrPPlMX4NbQdxP3GAx9zR4+nxPo4kgzCW/r9axpI0UzP1MiPIVooJNDLbBmKFd9bxxi8mbMa/pQnSHvKTg3qb1Lt0ZxjdLNIDggDr0/lYtFEX+92QqdFM9/Y+IZU9l4CSQNmmXSFN4zOJ7NhVuUIVUTAEkuHhw89JGQfsiVxUxKhGkMutTQITRbfF62fJOJ+VX/2auAzrK0eySP+FseR1P0ilcW/Gei81kRfuqA4PjHMdchq4TVrMXiVGURXCrt4WyeE675Y3HzxqOU3IEM/IesQMpN8U+SL8J+TZhy8SETNaKlh49z+SHfluOWdq8s3owi5YbP/bduljf6EjX80R9CxOYP1UW4XlQOhcqJmIzE/LTFKZ1dljYXGtdP6zDyQ7UPpzq4zWNWy54ZVBrT5ylAzAKktVWMl1j6RNz2v/IpSi0M0xz6tnsUSSuQ5XKRQpWZCLjPgx8lDJ/YUQOidBADWlU8wpbCX48EWofqdu8NrFxGI8HI9wn5kzu0Uks0yKizMH+Gpnb/lnC9mXAOL00VScoB2ZsE7N9psjXJwwM8wuxXFvwrLTQM7W8JmQjVUtceWWzWfKp+DHl1N2JirA1wMzgU6vUM8MPAwrwoeePq+/D4WiGsKuy1UOlbF7iHyhdRWcJ5EKmgiR+wgqYyYPe5GQq1qhcpXKEzCLfEa6nY8hqGX9BsOctyN99rn3TVT2FbGhRCtbsloXluDN0kl0qlXh2iIbUB7q4Pxm1qCZnk8FkU+dzR4YP6j2ku/tNPzHtA4C9KFFIr29Jm5k2Bccdko8h2 4xUki2Js 2JESBU1oHZYgbXbWxDDX8W4Hywtngh7ngyG4tYakeSFs6GjAmx/iU67FJp/m6J4/x5yx7FNI6CPs9Qxmt4xS6TzGdQHwQ03I68vnb59Uo/KHKfnmUvwHDEmJS7bWc6clWZDOp1Hebz4lGrrSLNoHxZ7b+i/xL0C8+5AqRZGF3hCWj17P4UAniUuDDaokXdqpPA5RN0NJcFgfTz86iBeH5AbE0+O9BczDhTBNhL9S0KYdCv8xhh1tr78D5eKzTKlvQwLYfIyXhR1WKx0y2gdYO1I3obM9kxoMuBJC9AKokD3w8X92z49F+sEAp9pyWpT2f6Ry9Z/1e6YM8vR2OiYcaemjwVTKDufEsCDMTq7DgBnwpboU7p2n8hwQ4lgvMMY1wZuR9fxcp/W76g1d7ZPLOh+n2hZ9Op+mG5HbkWd4Rp4D8N28vw1OhhTz5+n/7QRi2J5p9Wcq5FS3DNAhbM6DLtM/5kTYw1MljBvH0gtTNmOSvRNnWOGy3TLSgzBjSzII4zIS8MyHwT9hZBYU9YSes1MrAkQvxmDg8CePCr+SlqKYURz7vKXkL5ncyoiApyMzbjIpj X-Bogosity: Ham, tests=bogofilter, spamicity=0.052173, 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 Mon, 2024-01-29 at 04:32 +0000, Matthew Wilcox wrote: > Our documentation of the current page flags is ... not great. I think > I can improve it for the page cache side of things; I understand the > meanings of locked, writeback, uptodate, dirty, head, waiters, slab, > mlocked, mappedtodisk, error, hwpoison, readahead, anon_exclusive, > has_hwpoisoned, hugetlb and large_remappable. > > Where I'm a lot more shaky is the meaning of the more "real MM" flags, > like active, referenced, lru, workingset, reserved, reclaim, swapbacked, > unevictable, young, idle, swapcache, isolated, and reported. > > Perhaps we could have an MM session where we try to explain slowly and > carefully to each other what all these flags actually mean, talk about > what combinations of them make sense, how we might eliminate some of > them to make more space in the flags word, and what all this looks like > in a memdesc world. > > And maybe we can get some documentation written about it! Not trying > to nerd snipe Jon into attending this session, but if he did ... > > [thanks to Amir for reminding me that I meant to propose this topic] > On the "Reclaiming" part of this thread, we might consider this: Optimizing Page Flags: Reclaiming Bits in page->flags via folio->lru Limited bit space in the Linux kernel's page->flags field, especially on 32-bit architectures, is a source of challenge [1]. This proposal aims to free up bits by relocating flags like PG_active and PG_unevictable to the lower bits of folio->lru as they are always unset. It helps with encoding zone, numa node, and sparsemem section [2]. Proposed Process: Candidate Evaluation: Assess flags for relocation suitability based on usage, dependencies, and functional impact. Impact Assessment: Evaluate the impact on kernel code to ensure correct behavior and compatibility. Relocation Implementation: Modify code to read/write flags from folio->lru and adjust related macros/functions. Thoroughly test changes. [1] https://lwn.net/Articles/335768/ [2] https://blogs.oracle.com/linux/post/struct-page-the-linux-physical-page-frame-data-structure