[LSF/MM/BPF TOPIC] Enhancing NVMe target

Hannes Reinecke hare at suse.de
Fri Mar 21 00:43:16 PDT 2025


Hi all,

There are quite some features in the NVMe spec which are geared up for 
distributed environments (eg the entire CDC mechanism, exported 
subsystems in NVMe 2.1), which require quite some logic in the discvoery
and NVM target subsystem.
While this can (and arguably should) be implemented in userspace
(cf my 'nofuse' project [1]), I really would want to continue using the 
existing nvme target infrastructure for handling the actual I/O.
But currently the nvme target infrastructure is pretty much stand-alone,
and provides as the only 'hook' to integrate with other systems the
'referral' configuration for the discovery log page.
I would like to discuss how an integration with user-space tools could
work; offloading the entire admin queue handling via eg io_uring?
eBPF struct ops hooks to modify response data?
Others?

Not forgetting the initial goal of nvme target as the minimal viable 
implementation, so of course we might decide to not modify the target at 
all. Which naturally I would find disappointing :-)

[1] https://github.com/hreinecke/nofuse

Cheers,

Hannes
-- 
Dr. Hannes Reinecke                  Kernel Storage Architect
hare at suse.de                                +49 911 74053 688
SUSE Software Solutions GmbH, Frankenstr. 146, 90461 Nürnberg
HRB 36809 (AG Nürnberg), GF: I. Totev, A. McDonald, W. Knoblich




More information about the Linux-nvme mailing list