[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] Querying the size of devdax devices from userspace
From: |
Stefan Hajnoczi |
Subject: |
Re: [Qemu-devel] Querying the size of devdax devices from userspace |
Date: |
Fri, 8 Feb 2019 09:53:13 +0800 |
User-agent: |
Mutt/1.10.1 (2018-07-13) |
On Mon, Feb 04, 2019 at 12:06:32AM -0800, Dan Williams wrote:
> On Sun, Feb 3, 2019 at 11:56 PM Stefan Hajnoczi <address@hidden> wrote:
> >
> > How can userspace applications query the size of devdax character
> > devices?
> >
> > stat(1) doesn't know how large the device is:
> >
> > # stat /dev/dax0.0
> > File: /dev/dax0.0
> > Size: 0 Blocks: 0 IO Block: 4096 character
> > special file
> > Device: 6h/6d Inode: 56764 Links: 1 Device type: fa,d
> >
> > ndctl(1) finds out by digging in /sys:
> >
> > # ndctl list
> > [
> > {
> > "dev":"namespace0.0",
> > "mode":"devdax",
> > "map":"dev",
> > "size":2111832064,
> > "uuid":"235acf4d-503f-46be-bf64-f26faf9777ef",
> > "chardev":"dax0.0"
> > }
> > ]
> >
> > I'm not sure how to do it without enumerating all nvdimms in /sys. Is
> > there a mapping from devdax major/minor number to a /sys path?
> >
> > The use case I have in mind is that QEMU currently takes the size as a
> > command-line parameter. The failure mode is ugly when users get this
> > value wrong: the guest gets a softlockup and there is no error message
> > on the host side.
> >
> > I'd like QEMU to detect the size or at least reject size values that are
> > too large. In order to do that userspace needs a convenient way of
> > querying the size. Any ideas?
>
> You're looking for /sys/dev/char. That will wake you from major:minor
> to sysfs. Perhaps borrow fio's implementation for the same:
>
> http://git.kernel.dk/cgit/fio/tree/engines/dev-dax.c#n258
Excellent, thanks!
Stefan
signature.asc
Description: PGP signature