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.