Re: page pools, was Re: [PATCH v9 1/5] drm: Add a sharable drm page-pool implementation

From: Christian König
Date: Wed Jul 07 2021 - 03:10:37 EST


Am 07.07.21 um 08:38 schrieb Christoph Hellwig:
On Wed, Jun 30, 2021 at 01:34:17AM +0000, John Stultz wrote:
This adds a shrinker controlled page pool, extracted
out of the ttm_pool logic, and abstracted out a bit
so it can be used by other non-ttm drivers.
Can you explain in detail why you need a differnt page pool over the one
maintained by the page allocator? Fragmenting the memory into all kinds
of pools has lots of downsides, so the upsides need to be explained in
detail.

Well, the original code all this is based on already had the comment that this really belong into the page allocator.

The key point is traditionally only GPUs used uncached and write-combined memory in such large quantities that having a pool for them makes sense.

Because of this we had this separately to reduce the complexity in the page allocator to handle another set of complexity of allocation types.

For the upside, for those use cases it means huge performance improvements for those drivers. See the numbers John provided in the cover letter.

But essentially at least I would be totally fine moving this into the page allocator, but moving it outside of TTM already helps with this goal. So this patch set is certainly a step into the right direction.

Regards,
Christian.