[LSF/MM/BFP TOPIC] Block-layer device resets
Ming Lei
ming.lei at redhat.com
Tue Feb 3 17:14:02 PST 2026
On Tue, Feb 03, 2026 at 06:51:25AM +0100, Hannes Reinecke wrote:
> On 2/3/26 04:14, Ming Lei wrote:
> > Hi Hannes,
> >
> > On Sun, Feb 01, 2026 at 06:06:52PM +0100, Hannes Reinecke wrote:
> > > Hi all,
> > >
> > > We are currently working on implementing cross-controller resets for
> > > NVMe, which requires to send a command to the target which then should
> > > terminate all commands on a given controller.
> >
> > Can you provide a little background why this reset is required? And for
> > solve which problem?
> >
> Sure. It got triggered by me wanting to use a ublk device as a backing
> device for nvmet namespace.
ublk supports it, either delete & re-add the disk or use UBLK_F_USER_RECOVERY &
UBLK_F_QUIESCE for keeping disk node.
> During a nvme reconnect the target is supposed to abort/flush all
> outstanding commands on the backing device. As this is a block device
> we would need to have an interface into the block layer allowing us
> to do so.
It could be hard to provide such generic(ioctl) block interface:
1) use queue freeze
- hang risk, because some or many block devices don't implement timeout or
error handling
2) use queue quiesce
- still need driver cooperation for draining the inflight IOs
Basically the hard part is in driver side.
Thanks,
Ming
More information about the Linux-nvme
mailing list