Thread (9 messages) 9 messages, 2 authors, 2020-12-17

Re: [PATCH V3] nvme: enable char device per namespace

From: Javier González <hidden>
Date: 2020-12-16 08:01:56
Also in: linux-nvme

On 15 Dec 2020, at 23.12, Keith Busch [off-list ref] wrote:

On Tue, Dec 15, 2020 at 08:55:57PM +0100, javier@javigon.com wrote:
quoted
From: Javier González <redacted>

Create a char device per NVMe namespace. This char device is always
initialized, independently of whether the features implemented by the
device are supported by the kernel. User-space can therefore always
issue IOCTLs to the NVMe driver using the char device.

The char device is presented as /dev/generic-nvmeXcYnZ. This naming
scheme follows the convention of the hidden device (nvmeXcYnZ). Support
for multipath will follow.

Christoph, Keith: Is this going in the right direction?
I think this is looking okay, though I'm getting some weird errors and
warnings during boot. The first one looks like the following (I will
look into it too, but I wanted to get a reply out sooner).

[    4.734143] sysfs: cannot create duplicate filename '/dev/char/242:1'
[    4.736359] CPU: 4 PID: 7 Comm: kworker/u16:0 Not tainted 5.10.0+ #172
[    4.740836] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS rel-1.14.0-0-g155821a1990b-prebuilt.qemu.org 04/01/2014
[    4.744228] Workqueue: nvme-wq nvme_scan_work [nvme_core]
[    4.745558] Call Trace:
[    4.746122]  dump_stack+0x6d/0x88
[    4.746834]  sysfs_warn_dup.cold+0x17/0x24
[    4.747656]  sysfs_do_create_link_sd.isra.0+0xb0/0xc0
[    4.747659]  device_add+0x604/0x7b0
[    4.749298]  cdev_device_add+0x46/0x70
[    4.753241]  ? cdev_init+0x51/0x60
[    4.753246]  nvme_alloc_ns+0x670/0x8a0 [nvme_core]
[    4.753249]  ? _cond_resched+0x15/0x30
[    4.753253]  nvme_validate_or_alloc_ns+0x99/0x190 [nvme_core]
[    4.753258]  nvme_scan_work+0x152/0x290 [nvme_core]
[    4.753261]  process_one_work+0x1ac/0x330
[    4.753262]  worker_thread+0x50/0x3a0
[    4.753264]  ? process_one_work+0x330/0x330
[    4.753265]  kthread+0xfb/0x130
[    4.753266]  ? kthread_park+0x90/0x90
[    4.753269]  ret_from_fork+0x1f/0x30
[    4.753272] CPU: 5 PID: 88 Comm: kworker/u16:1 Not tainted 5.10.0+ #172
Mmm. I’ll look into it. I don’t see this in the config I’m using. 
quoted
Keith: Regarding nvme-cli support, what do you think about reporting the
char device as existing block devices? If this is OK with you, I will
submit patches for the filters.
I'm not sure I understand what you mean about reporting these as
"existing block devices". Are you talking about what's shown in the
'nvme list' output?
Exactly. Do we want the char device to be listed?
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help