[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <aWfcYjZVrROHfGyh@gourry-fedora-PF4VCD3F>
Date: Wed, 14 Jan 2026 13:11:46 -0500
From: Gregory Price <gourry@...rry.net>
To: "David Hildenbrand (Red Hat)" <david@...nel.org>
Cc: linux-mm@...ck.org, linux-cxl@...r.kernel.org, nvdimm@...ts.linux.dev,
linux-kernel@...r.kernel.org, virtualization@...ts.linux.dev,
kernel-team@...a.com, dan.j.williams@...el.com,
vishal.l.verma@...el.com, dave.jiang@...el.com, mst@...hat.com,
jasowang@...hat.com, xuanzhuo@...ux.alibaba.com,
eperezma@...hat.com, osalvador@...e.de, akpm@...ux-foundation.org
Subject: Re: [PATCH 7/8] dax/kmem: add sysfs interface for runtime hotplug
state control
On Wed, Jan 14, 2026 at 11:55:21AM +0100, David Hildenbrand (Red Hat) wrote:
> On 1/14/26 09:51, Gregory Price wrote:
> > The dax kmem driver currently onlines memory automatically during
> > probe using the system's default online policy but provides no way
> > to control or query the memory state at runtime. Users cannot change
> > the online type after probe, and there's no atomic way to offline and
> > remove memory blocks together.
> >
> > Add a new 'hotplug' sysfs attribute that allows userspace to control
> > and query the memory state. The interface supports the following states:
> >
> > - "offline": memory is added but not online
> > - "online": memory is online as normal system RAM
> > - "online_movable": memory is online in ZONE_MOVABLE
> > - "unplug": memory is offlined and removed
> >
> > The initial state after probe uses MMOP_SYSTEM_DEFAULT to preserve
> > backwards compatibility - existing systems with auto-online policies
> > will continue to work as before.
> >
> > The state machine enforces valid transitions:
> > - From offline: can transition to online, online_movable, or unplug
> > - From online/online_movable: can transition to offline or unplug
> > - Cannot switch directly between online and online_movable
>
> Do we have to support these transitions right from the start?
>
> What are the use cases for adding memory as offline and then onlining it,
> and why do we have to support that through this interface?
>
After a re-read of the feedback - are you suggested to basically kill the
entire offline state of blocks entirely? (e.g. if a driver calls to
offline a block, instead fully unplug it)
I took a look at the acpi and ppc code you suggested, and I think they
also have "expect offline then online" as a default expectation. I
can't speak to those users requirements.
This would definitely break things like daxctl/ndctl, but maybe that's
preferable? I pointed out that patch 8 does this anyway - and I'd like
input from ndctl folks as to whether that should end in a NACK.
~Gregory
Powered by blists - more mailing lists