| From: David Hildenbrand <david@redhat.com> |
| Subject: mm/rmap: remove RMAP_COMPOUND |
| Date: Wed, 20 Dec 2023 23:44:46 +0100 |
| |
| No longer used, let's remove it and clarify RMAP_NONE/RMAP_EXCLUSIVE a |
| bit. |
| |
| Link: https://lkml.kernel.org/r/20231220224504.646757-23-david@redhat.com |
| Signed-off-by: David Hildenbrand <david@redhat.com> |
| Cc: Hugh Dickins <hughd@google.com> |
| Cc: Matthew Wilcox (Oracle) <willy@infradead.org> |
| Cc: Muchun Song <muchun.song@linux.dev> |
| Cc: Muchun Song <songmuchun@bytedance.com> |
| Cc: Peter Xu <peterx@redhat.com> |
| Cc: Ryan Roberts <ryan.roberts@arm.com> |
| Cc: Yin Fengwei <fengwei.yin@intel.com> |
| Signed-off-by: Andrew Morton <akpm@linux-foundation.org> |
| --- |
| |
| include/linux/rmap.h | 12 +++--------- |
| mm/rmap.c | 2 -- |
| 2 files changed, 3 insertions(+), 11 deletions(-) |
| |
| --- a/include/linux/rmap.h~mm-rmap-remove-rmap_compound |
| +++ a/include/linux/rmap.h |
| @@ -177,21 +177,15 @@ struct anon_vma *folio_get_anon_vma(stru |
| typedef int __bitwise rmap_t; |
| |
| /* |
| - * No special request: if the page is a subpage of a compound page, it is |
| - * mapped via a PTE. The mapped (sub)page is possibly shared between processes. |
| + * No special request: A mapped anonymous (sub)page is possibly shared between |
| + * processes. |
| */ |
| #define RMAP_NONE ((__force rmap_t)0) |
| |
| -/* The (sub)page is exclusive to a single process. */ |
| +/* The anonymous (sub)page is exclusive to a single process. */ |
| #define RMAP_EXCLUSIVE ((__force rmap_t)BIT(0)) |
| |
| /* |
| - * The compound page is not mapped via PTEs, but instead via a single PMD and |
| - * should be accounted accordingly. |
| - */ |
| -#define RMAP_COMPOUND ((__force rmap_t)BIT(1)) |
| - |
| -/* |
| * Internally, we're using an enum to specify the granularity. We make the |
| * compiler emit specialized code for each granularity. |
| */ |
| --- a/mm/rmap.c~mm-rmap-remove-rmap_compound |
| +++ a/mm/rmap.c |
| @@ -2662,8 +2662,6 @@ void rmap_walk_locked(struct folio *foli |
| * The following two functions are for anonymous (private mapped) hugepages. |
| * Unlike common anonymous pages, anonymous hugepages have no accounting code |
| * and no lru code, because we handle hugepages differently from common pages. |
| - * |
| - * RMAP_COMPOUND is ignored. |
| */ |
| void hugetlb_add_anon_rmap(struct folio *folio, struct vm_area_struct *vma, |
| unsigned long address, rmap_t flags) |
| _ |