Re: [RFC] put page to pcp->lists[] tail if it is not on the same node

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

 



On 10/19/18 6:33 AM, Wei Yang wrote:
> @@ -2763,7 +2764,14 @@ static void free_unref_page_commit(struct page *page, unsigned long pfn)
>  	}
>  
>  	pcp = &this_cpu_ptr(zone->pageset)->pcp;
> -	list_add(&page->lru, &pcp->lists[migratetype]);

My impression is that you think there's only one pcp per cpu. But the
"pcp" here is already specific to the zone (and thus node) of the page
being freed. So it doesn't matter if we put the page to the list or
tail. For allocation we already typically prefer local nodes, thus local
zones, thus pcp's containing only local pages.

> +	/*
> +	 * If the page has the same node_id as this cpu, put the page at head.
> +	 * Otherwise, put at the end.
> +	 */
> +	if (page_node == pcp->node)

So this should in fact be always true due to what I explained above.

Otherwise I second the recommendation from Mel.

Cheers,
Vlastimil




[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