Skip to contentSkip to conversation

A write error on converting dax0.0 to kmem

DISCUSSION Won-Kyo Choe 2 participants 2 messages Jun 27, 2019

Subsystems (2)
lore
Share & tools
lore
#0 lore raw

Hi, Dave. I hope this message is sent appropriately in this time.

We've recently got a new machine which contains Optane DC memory and
tried to use your patch set[1] in a recent kernel version(5.1.15). Unfortunately, we've failed on the last step[2] that describes
converting device-dax driver as kmem. The main error is "echo: write error: No such device". We are certain that there must be a device and it should be recognized
since we can see it in a path "/dev/dax0.0", however, somehow it keeps saying that error.

We've followed all your steps in the first patch[1] except a step about qemu configuration since we already have a persistent memory. We even checked that there is a region mapped with persistent memory from a command, dmesg | grep e820 described in below.

BIOS-e820: [mem 0x0000000880000000-0x00000027ffffffff] persistent (type 7)

As the address is shown above, the thing is that in the qemu, the region is set as persistent (type 12) but in the native machine, it says persistent (type 7). We've still tried to find what type means and we simply guess that this is one of the reasons why we are not able to set the device as kmem.

We'd like to know why this error comes up and how can we handle this problem. We would really appreciate it if you are able to little bit help us.

Regards,

Won-Kyo

1. https://patchwork.kernel.org/cover/10829019/
2. https://patchwork.kernel.org/patch/10829041/

#1 lore raw

[ this is on-topic for linux-nvdimm, but likely off-topic for linux-mm. I leave it cc'd for now ]

Quoted 16 lines · Won-Kyo Choe

Hi, Dave. I hope this message is sent appropriately in this time.

We've recently got a new machine which contains Optane DC memory and
tried to use your patch set[1] in a recent kernel version(5.1.15). Unfortunately, we've failed on the last step[2] that describes
converting device-dax driver as kmem. The main error is "echo: write error: No such device". We are certain that there must be a device and it should be recognized
since we can see it in a path "/dev/dax0.0", however, somehow it keeps saying that error.

We've followed all your steps in the first patch[1] except a step about qemu configuration since we already have a persistent memory. We even checked that there is a region mapped with persistent memory from a command, dmesg | grep e820 described in below.

BIOS-e820: [mem 0x0000000880000000-0x00000027ffffffff] persistent (type 7)

Quoted 7 lines

As the address is shown above, the thing is that in the qemu, the region is set as persistent (type 12) but in the native machine, it says persistent (type 7). We've still tried to find what type means and we simply guess that this is one of the reasons why we are not able to set the device as kmem.

We'd like to know why this error comes up and how can we handle this problem. We would really appreciate it if you are able to little bit help us.

Before digging deeper let's first verify that you have switched device-dax from using "class" devices to using "bus" devices. Yes, that step is not included in the changelog instructions. Here is a man page for a tool that can automate some of the steps for you:

http://pmem.io/ndctl/daxctl-migrate-device-model.html

You can validate that you're in "bus" mode by making sure a "dax0.0" link appears under "/sys/bus/dax/devices".