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.
.