All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Lorenzo Stoakes (ARM)" <ljs@kernel.org>
To: "David Hildenbrand (Arm)" <david@kernel.org>
Cc: Andrew Morton <akpm@linux-foundation.org>,
	Zi Yan <ziy@nvidia.com>,
	 Baolin Wang <baolin.wang@linux.alibaba.com>,
	"Liam R. Howlett" <liam@infradead.org>,
	 Nico Pache <npache@redhat.com>,
	Ryan Roberts <ryan.roberts@arm.com>, Dev Jain <dev.jain@arm.com>,
	 Barry Song <baohua@kernel.org>,
	Lance Yang <lance.yang@linux.dev>,
	 Usama Arif <usama.arif@linux.dev>,
	Pankaj Raghav <p.raghav@samsung.com>,
	 Hannes Reinecke <hare@suse.de>, Hugh Dickins <hughd@google.com>,
	Yang Shi <shy828301@gmail.com>,  Kiryl Shutsemau <kas@kernel.org>,
	linux-mm@kvack.org, linux-kernel@vger.kernel.org,
	 Hengbin Zhang <uqbarz@gmail.com>,
	stable@vger.kernel.org
Subject: Re: [PATCH mm-hotfixes 2/2] mm/huge_memory: fix huge_zero_pfn race
Date: Thu, 30 Jul 2026 14:09:17 +0100	[thread overview]
Message-ID: <amtHMG4owrzXeLx0@lucifer> (raw)
In-Reply-To: <39b527d7-9c6e-4798-be9d-b834c8a3d2a0@kernel.org>

On Thu, Jul 30, 2026 at 02:10:23PM +0200, David Hildenbrand (Arm) wrote:
> On 7/30/26 11:55, Lorenzo Stoakes (ARM) wrote:
> > On Thu, Jul 30, 2026 at 11:22:09AM +0200, David Hildenbrand (Arm) wrote:
> >> [...]
> >>
> >>> So invariants are required - huge_zero_refcount MUST:
> >>>
> >>> * Only be set in the huge_zero_lock critical section to ensure
> >>>   serialisation of huge_zero_pfn, huge_zero_folio and huge_zero_refcount
> >>>   writes.
> >>>
> >>> * Be set non-zero only AFTER huge_zero_[pfn, folio] are set to valid values
> >>>   so installation of the huge zero folio on read page fault ensures
> >>>   concurrent is_huge_zero_*() calls correctly identify the huge zero folio.
> >>>
> >>> * Be set zero only BEFORE huge_zero_[pfn, folio] are set to NULL and ~0UL
> >>>   respectively, and atomically.
> >>>
> >>> Establish these by:
> >>>
> >>> * Only updating huge_zero_refcount in the huge_zero_lock critical section
> >>>   in get_huge_zero_folio() and shrink_huge_zero_folio_scan().
> >>
> >> That is imprecise. huge_zero_refcount is updated (incremented) outside of
> >> huge_zero_lock in get_huge_zero_folio().
> >
> > You're right.
> >
> > ->
> >
> > * Only setting huge_zero_refcount to zero or an absolute value in the
> >   huge_zero_lock critical section in get_huge_zero_folio() and
> >   shrink_huge_zero_folio_scan() and updating atomically elsewhere.
> >
> > Seems better?
>
> Yes, I guess the transition from/to 0 are the problematic bits. Everything else
> can just be lockless.

Yeah exactly. Also setting an absolute value in general is potentially
problematic.

>
> --
> Cheers,
>
> David

Cheers, Lorenzo


  reply	other threads:[~2026-07-30 13:09 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-07-28 12:05 [PATCH mm-hotfixes 0/2] mm/huge_memory: fix huge_zero_pfn race Lorenzo Stoakes (ARM)
2026-07-28 12:05 ` [PATCH mm-hotfixes 1/2] mm/huge_memory: separate out CONFIG_PERSISTENT_HUGE_ZERO_FOLIO logic Lorenzo Stoakes (ARM)
2026-07-28 15:08   ` Kiryl Shutsemau
2026-07-28 15:41     ` Lorenzo Stoakes (ARM)
2026-07-28 12:05 ` [PATCH mm-hotfixes 2/2] mm/huge_memory: fix huge_zero_pfn race Lorenzo Stoakes (ARM)
2026-07-30  9:22   ` David Hildenbrand (Arm)
2026-07-30  9:55     ` Lorenzo Stoakes (ARM)
2026-07-30 12:10       ` David Hildenbrand (Arm)
2026-07-30 13:09         ` Lorenzo Stoakes (ARM) [this message]
2026-07-28 19:02 ` [PATCH mm-hotfixes 0/2] " David Hildenbrand (Arm)
2026-07-29  8:15   ` Lorenzo Stoakes (ARM)
2026-07-30  0:55     ` Andrew Morton
2026-07-30  9:05     ` David Hildenbrand (Arm)
2026-07-30  9:15       ` Lorenzo Stoakes (ARM)

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=amtHMG4owrzXeLx0@lucifer \
    --to=ljs@kernel.org \
    --cc=akpm@linux-foundation.org \
    --cc=baohua@kernel.org \
    --cc=baolin.wang@linux.alibaba.com \
    --cc=david@kernel.org \
    --cc=dev.jain@arm.com \
    --cc=hare@suse.de \
    --cc=hughd@google.com \
    --cc=kas@kernel.org \
    --cc=lance.yang@linux.dev \
    --cc=liam@infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=npache@redhat.com \
    --cc=p.raghav@samsung.com \
    --cc=ryan.roberts@arm.com \
    --cc=shy828301@gmail.com \
    --cc=stable@vger.kernel.org \
    --cc=uqbarz@gmail.com \
    --cc=usama.arif@linux.dev \
    --cc=ziy@nvidia.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.