Re: [PATCH v3 1/1] mm: report per-page metadata information
From: Matthew Wilcox <willy@infradead.org>
Date: 2023-10-31 20:27:24
Also in:
linux-fsdevel, linux-mm, lkml
On Tue, Oct 31, 2023 at 10:44:59AM -0700, Sourav Panda wrote:
quoted hunk ↗ jump to hunk
+++ b/mm/hugetlb.c@@ -1790,6 +1790,10 @@ static void __update_and_free_hugetlb_folio(struct hstate *h, destroy_compound_gigantic_folio(folio, huge_page_order(h)); free_gigantic_folio(folio, huge_page_order(h)); } else { +#ifndef CONFIG_SPARSEMEM_VMEMMAP + __mod_node_page_state(NODE_DATA(page_to_nid(&folio->page)), + NR_PAGE_METADATA, -huge_page_order(h)); +#endif
surely, __node_stat_sub_folio(folio, NR_PAGE_METADATA)
quoted hunk ↗ jump to hunk
@@ -2175,7 +2179,9 @@ static struct folio *alloc_buddy_hugetlb_folio(struct hstate *h, __count_vm_event(HTLB_BUDDY_PGALLOC_FAIL); return NULL; } - +#ifndef CONFIG_SPARSEMEM_VMEMMAP + __mod_node_page_state(NODE_DATA(nid), NR_PAGE_METADATA, huge_page_order(h));
__node_stat_add_folio(folio, NR_PAGE_METADATA) (create the folio first ...)
+ __mod_node_page_state(NODE_DATA(page_to_nid(page)), + NR_PAGE_METADATA, 1);
Are you allergic to page_pgdat()?
quoted hunk ↗ jump to hunk
@@ -1656,6 +1657,8 @@ static void __init alloc_node_mem_map(struct pglist_data *pgdat) panic("Failed to allocate %ld bytes for node %d memory map\n", size, pgdat->node_id); pgdat->node_mem_map = map + offset; + mod_node_early_perpage_metadata(pgdat->node_id, + PAGE_ALIGN(size) >> PAGE_SHIFT);
I swear I said to use DIV_ROUND_UP(). Yes, I did: https://lore.kernel.org/linux-mm/ZS%2Fm1KRwTLkcJY8y@casper.infradead.org/ (local) Why have you done something different and claimed I said to do it? You've annoyed me now; I shan't review the rest of this.