Re: [PATCH v3 1/1] mm: report per-page metadata information

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, Oct 31, 2023 at 10:44:59AM -0700, Sourav Panda wrote:
> +++ 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)

> @@ -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()?

> @@ -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@xxxxxxxxxxxxxxxxxxxx/

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.




[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Bugtraq]     [Linux OMAP]     [Linux MIPS]     [eCos]     [Asterisk Internet PBX]     [Linux API]

  Powered by Linux