Re: [PATCH net-next v2] net: page_pool: optimize page pool page allocation in NUMA scenario

From: wangjie (L)
Date: Sun Jul 03 2022 - 21:14:26 EST




On 2022/7/1 15:56, Jesper Dangaard Brouer wrote:

On 01/07/2022 06.15, Jakub Kicinski wrote:
On Wed, 29 Jun 2022 21:33:05 +0800 Guangbin Huang wrote:
+#ifdef CONFIG_NUMA
+ pref_nid = (pool->p.nid == NUMA_NO_NODE) ? numa_mem_id() :
pool->p.nid;
+#else
+ /* Ignore pool->p.nid setting if !CONFIG_NUMA */
+ pref_nid = NUMA_NO_NODE;
+#endif

Please factor this out to a helper, this is a copy of the code from
page_pool_refill_alloc_cache() and #ifdefs are a little yuck.


I would say simply use 'pool->p.nid' in the call to
alloc_pages_bulk_array_node() and drop this optimization (that was
copy-pasted from fast-path).

The optimization avoids one reading from memory compile time depending
on CONFIG_NUMA. It is *not* worth doing in this code path which is even
named "slow" (__page_pool_alloc_pages_slow).

--Jesper

Simply use pool->p.nid looks simply and makes sense in both scenario. I will rewrite and test the patch in next version.

.