Re: [PATCH net-next v5 13/14] libie: add per-queue Page Pool stats

From: Alexander Lobakin
Date: Wed Nov 29 2023 - 08:58:52 EST


From: Alexander Lobakin <aleksander.lobakin@xxxxxxxxx>
Date: Fri, 24 Nov 2023 16:47:31 +0100

> Expand the libie generic per-queue stats with the generic Page Pool
> stats provided by the API itself, when CONFIG_PAGE_POOL_STATS is
> enabled. When it's not, there'll be no such fields in the stats
> structure, so no space wasted.

Jakub,

Do I get it correctly that after Page Pool Netlink introspection was
merged, this commit makes no sense and we shouln't add PP stats to the
drivers private ones?

> They are also a bit special in terms of how they are obtained. One
> &page_pool accumulates statistics until it's destroyed obviously, which
> happens on ifdown. So, in order to not lose any statistics, get the
> stats and store them in the queue container before destroying the pool.
> This container survives ifups/downs, so it basically stores the
> statistics accumulated since the very first pool was allocated on this
> queue. When it's needed to export the stats, first get the numbers from
> this container and then add the "live" numbers -- the ones that the
> current active pool returns. The result values will always represent
> the actual device-lifetime stats.
> There's a cast from &page_pool_stats to `u64 *` in a couple functions,
> but they are guarded with stats asserts to make sure it's safe to do.
> FWIW it saves a lot of object code.

Thanks,
Olek