[PATCH v3 5/5] dax: add PROBE_PREFER_ASYNCHRONOUS to the dax device driver

Michal Clapinski posted 5 patches 3 months, 2 weeks ago
[PATCH v3 5/5] dax: add PROBE_PREFER_ASYNCHRONOUS to the dax device driver
Posted by Michal Clapinski 3 months, 2 weeks ago
Signed-off-by: Michal Clapinski <mclapinski@google.com>
Reviewed-by: Dan Williams <dan.j.williams@intel.com>
---
 drivers/dax/device.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/drivers/dax/device.c b/drivers/dax/device.c
index 2bb40a6060af..74f2381a7df6 100644
--- a/drivers/dax/device.c
+++ b/drivers/dax/device.c
@@ -470,6 +470,9 @@ static int dev_dax_probe(struct dev_dax *dev_dax)
 static struct dax_device_driver device_dax_driver = {
 	.probe = dev_dax_probe,
 	.type = DAXDRV_DEVICE_TYPE,
+	.drv = {
+		.probe_type = PROBE_PREFER_ASYNCHRONOUS,
+	},
 };
 
 static int __init dax_init(void)
-- 
2.51.1.821.gb6fe4d2222-goog
Re: [PATCH v3 5/5] dax: add PROBE_PREFER_ASYNCHRONOUS to the dax device driver
Posted by Ira Weiny 2 months, 3 weeks ago
Michal Clapinski wrote:
> Signed-off-by: Michal Clapinski <mclapinski@google.com>
> Reviewed-by: Dan Williams <dan.j.williams@intel.com>

Sorry for the delay.  I picked up this series but I find that this breaks
the device-dax and daxctl-create.sh.

I was able to fix device-dax with a sleep, see below.

I'm not 100% sure what to do about this.

I don't want to sprinkle sleeps around the tests.  daxctl-create.sh also
randomly fail due to the races introduced.  So not sure exactly where to
sprinkle them without more work.

Could dropping just this patch and landing the others achieve most of what
you need?

Ira

diff --git a/test/device-dax.c b/test/device-dax.c
index 49c9bc8b1748..817c76b0a88b 100644
--- a/test/device-dax.c
+++ b/test/device-dax.c
@@ -246,6 +246,7 @@ static int __test_device_dax(unsigned long align, int loglevel,
                goto out;
        }

+sleep(1);
        sprintf(path, "/dev/%s", daxctl_dev_get_devname(dev));
        fd = open(path, O_RDONLY);
        if (fd < 0) {
Re: [PATCH v3 5/5] dax: add PROBE_PREFER_ASYNCHRONOUS to the dax device driver
Posted by Michał Cłapiński 2 months, 2 weeks ago
On Tue, Nov 18, 2025 at 10:46 PM Ira Weiny <ira.weiny@intel.com> wrote:
>
> Michal Clapinski wrote:
> > Signed-off-by: Michal Clapinski <mclapinski@google.com>
> > Reviewed-by: Dan Williams <dan.j.williams@intel.com>
>
> Sorry for the delay.  I picked up this series but I find that this breaks
> the device-dax and daxctl-create.sh.
>
> I was able to fix device-dax with a sleep, see below.
>
> I'm not 100% sure what to do about this.
>
> I don't want to sprinkle sleeps around the tests.  daxctl-create.sh also
> randomly fail due to the races introduced.  So not sure exactly where to
> sprinkle them without more work.

I see 2 possible solutions here:
1. Modify the tests to just poll for the devices to appear.
2. Modify ndctl to poll for the devices to appear before returning.

What do you think about those?

> Could dropping just this patch and landing the others achieve most of what
> you need?

No, device-dax is the only one I actually care about.
Re: [PATCH v3 5/5] dax: add PROBE_PREFER_ASYNCHRONOUS to the dax device driver
Posted by Ira Weiny 2 months, 2 weeks ago
Michał Cłapiński wrote:
> On Tue, Nov 18, 2025 at 10:46 PM Ira Weiny <ira.weiny@intel.com> wrote:
> >
> > Michal Clapinski wrote:
> > > Signed-off-by: Michal Clapinski <mclapinski@google.com>
> > > Reviewed-by: Dan Williams <dan.j.williams@intel.com>
> >
> > Sorry for the delay.  I picked up this series but I find that this breaks
> > the device-dax and daxctl-create.sh.
> >
> > I was able to fix device-dax with a sleep, see below.
> >
> > I'm not 100% sure what to do about this.
> >
> > I don't want to sprinkle sleeps around the tests.  daxctl-create.sh also
> > randomly fail due to the races introduced.  So not sure exactly where to
> > sprinkle them without more work.
> 
> I see 2 possible solutions here:
> 1. Modify the tests to just poll for the devices to appear.
> 2. Modify ndctl to poll for the devices to appear before returning.
> 
> What do you think about those?

Yes those would be correct ways fix to the tests.  But I do wonder if
there are any real codes which might break with this.

The real issue is the incompatibility of changing the behavior and having
an older ndctl start failing either the tests or code written to
libdaxctl/daxctl.

In this case I'm not seeing a good way around this other than trying to
make a good documentation update to indicate that the ndctl needs to be
updated for the tests at a minimum.  If we get reports of failures from
real users though it will need to be reverted.

> 
> > Could dropping just this patch and landing the others achieve most of what
> > you need?
> 
> No, device-dax is the only one I actually care about.

I was afraid you would say that...  :-/  ;-)

I'm going to drop this patch while I coordinate with Alison on updating
ndctl.  If we can get a fix next week to ndctl I can throw it back in for
the merge.  I think it has enough testing to work that way.  Otherwise it
will have to land in 6.20 after ndctl is fixed up.

Ira