Files
linux/include/trace/events
Matthew Wilcox (Oracle) d99e3140a4 mm: turn folio_test_hugetlb into a PageType
The current folio_test_hugetlb() can be fooled by a concurrent folio split
into returning true for a folio which has never belonged to hugetlbfs. 
This can't happen if the caller holds a refcount on it, but we have a few
places (memory-failure, compaction, procfs) which do not and should not
take a speculative reference.

Since hugetlb pages do not use individual page mapcounts (they are always
fully mapped and use the entire_mapcount field to record the number of
mappings), the PageType field is available now that page_mapcount()
ignores the value in this field.

In compaction and with CONFIG_DEBUG_VM enabled, the current implementation
can result in an oops, as reported by Luis. This happens since 9c5ccf2db0
("mm: remove HUGETLB_PAGE_DTOR") effectively added some VM_BUG_ON() checks
in the PageHuge() testing path.

[willy@infradead.org: update vmcoreinfo]
  Link: https://lkml.kernel.org/r/ZgGZUvsdhaT1Va-T@casper.infradead.org
Link: https://lkml.kernel.org/r/20240321142448.1645400-6-willy@infradead.org
Fixes: 9c5ccf2db0 ("mm: remove HUGETLB_PAGE_DTOR")
Signed-off-by: Matthew Wilcox (Oracle) <willy@infradead.org>
Reviewed-by: David Hildenbrand <david@redhat.com>
Acked-by: Vlastimil Babka <vbabka@suse.cz>
Reported-by: Luis Chamberlain <mcgrof@kernel.org>
Closes: https://bugzilla.kernel.org/show_bug.cgi?id=218227
Cc: Miaohe Lin <linmiaohe@huawei.com>
Cc: Muchun Song <muchun.song@linux.dev>
Cc: Oscar Salvador <osalvador@suse.de>
Cc: <stable@vger.kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
2024-04-24 19:34:26 -07:00
..
2023-08-02 09:13:09 -06:00
2022-12-07 13:54:09 -08:00
2023-08-10 10:33:03 -05:00
2023-07-04 19:40:16 +01:00
2023-07-04 19:40:16 +01:00
2023-01-13 16:39:18 +01:00
2023-03-24 11:01:29 +01:00
2023-12-29 11:58:27 -08:00
2023-12-08 15:43:33 -05:00
2023-07-17 08:18:17 -06:00
2022-08-03 17:50:58 +02:00
2022-07-30 14:01:30 -04:00
2023-05-31 11:05:34 -04:00
2023-02-20 08:28:49 +00:00
2023-10-04 10:32:29 -07:00
2023-07-17 08:18:17 -06:00
2023-09-19 07:04:49 +02:00