Thread (3 messages) 3 messages, 2 authors, 2023-10-31

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.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help