Re: page pools, was Re: [PATCH v9 1/5] drm: Add a sharable drm page-pool implementation
From: John Stultz
Date: Wed Jul 07 2021 - 15:35:39 EST
On Tue, Jul 6, 2021 at 11:38 PM Christoph Hellwig <hch@xxxxxxxxxxxxx> wrote:
> 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.
So, as Christian mentioned, on the TTM side it's useful, as they are
trying to avoid TLB flushes when changing caching attributes.
For the dmabuf system heap purposes, the main benefit is moving the
page zeroing to the free path, rather than the allocation path. This
on its own doesn't save much, but allows us to defer frees (and thus
the zeroing) to the background, which can get that work out of the hot
path.
thanks
-john