On Thu, Jul 09, 2026 at 02:46:39PM -0700, Dan Williams (nvidia) wrote: > Gregory Price wrote: > > There is no way for drivers leveraging dax_kmem to plumb through a > > preferred auto-online policy - the system default policy is forced. > > > > Add 'enum mmop' field to DAX device creation path to allow drivers > > to specify an auto-online policy when using the kmem driver. > > > > Capturing the system default would otherwise break the ABI, because > > the system default can change - but we would be statically assigning > > the value at device creation time. > > > > To resolve this we add DAX_ONLINE_DEFAULT, which defaults devices to > > the current behavior, while providing a clean way to override it. > > > > No behavioural change for existing callers (still the system default). > > So I know you have some future usage for this ability, but it is not > present in this set. The only piece that *is* used is that the > online-type from the new sysfs interface gets plumbed through to > __add_memory_driver_managed(). >
Correct. I didn't want to cross three subsystems in one go, I do intend to follow this up with at least a CXL build option to override the global hotplug policy by plumbing it through to the existing cxl auto-probe process. Some of the accelerator stuff is still a bit up in the air but the base driver can still benefit from this as well. > Are these touches: > > > drivers/dax/cxl.c | 1 + > > drivers/dax/hmem/hmem.c | 1 + > > drivers/dax/pmem.c | 1 + > > ...premature until the first user arrives that with the background story > about how it knows to set the policy? > This was more a matter of having the DEFAULT set consistently across the dax driver variant probe() functions to make the behavior explicit. I didn't want an un-set value bug to creep in here somehow. Happy to drop them if you think that's unneeded. > If DAX_ONLINE_DEFAULT is a sentinel for "default" should > DAX_KMEM_UNPLUGGED be a different sentinel than (-1)? > They don't actually run into each other. DAX_ONLINE_DEFAULT is overwritten at probe time with the system default policy, so `dax/state` can never perceive it (even if the values are the same). But this is visually confusing i suppose, so I'll just swap it for -2. > Feel free to add: > > Reviewed-by: Dan Williams <[email protected]> > > ...to this and the previous patches when that is fixed up. Thank you!

