[PATCH v1 1/2] KVM: arm64: Do not transfer page refcount for THP adjustment

Vincent Donnefort vdonnefort at google.com
Wed Sep 27 05:40:42 PDT 2023


On Wed, Sep 27, 2023 at 08:00:28AM +0100, Matthew Wilcox wrote:
> On Tue, Sep 26, 2023 at 07:19:31PM +0100, Vincent Donnefort wrote:
> > With folios, GUP affects a refcount common to all pages forming the THP.
> > There is therefore no need to move the refcount from the tail to the
> > head page. Under the hood it decrements and increments
> > the same counter.
> 
> FYI, this isn't new to folios.  get_page() has _always_ operated on the
> head page of a compound page.  Here's how it worked in 2.6.12-rc2:
> 
> +static inline void get_page(struct page *page)
> +{
> +       if (unlikely(PageCompound(page)))
> +               page = (struct page *)page->private;
> +       atomic_inc(&page->_count);
> +}
> 
> I can't be bothered to switch over to the linux-fullhistory tree and
> show how it evolved, because i think this sufficiently makes the point --
> you can backport this patch as far as you like.

Thanks for having a look!

I'll refine that description in the next version.

> 
> Folios just make it obvious that this is what's going on.  And that's a
> good thing!  Making the MM less inscrutable is a win for everybody.



More information about the linux-arm-kernel mailing list