On 3/12/25 12:27, Toke Høiland-Jørgensen wrote:
Yunsheng Lin <linyunsheng@xxxxxxxxxx> writes:
...
cases where it's absolutely needed.
The above can also be done for using page_pool_item too as the
lower 2 bits can be used to indicate the pointer in 'struct page'
is 'page_pool_item' or 'page_pool', I just don't think it is
necessary yet as it might add more checking in the fast path.
Yup, did think about using the lower bits to distinguish if it does turn
out that we can't avoid an indirection. See above; it's not actually the
The 'memdesc' seems like an indirection to me when using that to shrink
'struct page' to a smaller size.
Yes, it does seem like we'll end up with an indirection of some kind
eventually. But let's cross that bridge when we get to it...
At which point it might be easier to avoid all the "bump"s business,
fully embrace net_iov / netmem format, wrap all pp pages into a
structure on the page pool side, and pass that around. That would
remove the indirection for most of the accesses, and the allocation
can be easily cached.
--
Pavel Begunkov