Commit 9d003dec authored by Matthew Wilcox (Oracle)'s avatar Matthew Wilcox (Oracle) Committed by Andrew Morton
Browse files

mm: remove page->order

We already use page->private for storing the order of a page while it's in
the buddy allocator system; extend that to also storing the order while
it's in the pcp_llist.

Link: https://lkml.kernel.org/r/20250910142923.2465470-4-willy@infradead.org


Signed-off-by: default avatarMatthew Wilcox (Oracle) <willy@infradead.org>
Acked-by: default avatarAlexei Starovoitov <ast@kernel.org>
Acked-by: default avatarVlastimil Babka <vbabka@suse.cz>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
parent 6fd893a4
Loading
Loading
Loading
Loading
+3 −5
Original line number Diff line number Diff line
@@ -97,10 +97,7 @@ struct page {
				/* Or, free page */
				struct list_head buddy_list;
				struct list_head pcp_list;
				struct {
				struct llist_node pcp_llist;
					unsigned int order;
				};
			};
			struct address_space *mapping;
			union {
@@ -111,7 +108,8 @@ struct page {
			 * @private: Mapping-private opaque data.
			 * Usually used for buffer_heads if PagePrivate.
			 * Used for swp_entry_t if swapcache flag set.
			 * Indicates order in the buddy system if PageBuddy.
			 * Indicates order in the buddy system if PageBuddy
			 * or on pcp_llist.
			 */
			unsigned long private;
		};
+2 −2
Original line number Diff line number Diff line
@@ -1520,7 +1520,7 @@ static void add_page_to_zone_llist(struct zone *zone, struct page *page,
				   unsigned int order)
{
	/* Remember the order */
	page->order = order;
	page->private = order;
	/* Add the page to the free list */
	llist_add(&page->pcp_llist, &zone->trylock_free_pages);
}
@@ -1549,7 +1549,7 @@ static void free_one_page(struct zone *zone, struct page *page,

		llnode = llist_del_all(llhead);
		llist_for_each_entry_safe(p, tmp, llnode, pcp_llist) {
			unsigned int p_order = p->order;
			unsigned int p_order = p->private;

			split_large_buddy(zone, p, page_to_pfn(p), p_order, fpi_flags);
			__count_vm_events(PGFREE, 1 << p_order);