Re: [PATCH v2 0/4] nvmet-fcloop: unblock module removal

From: Daniel Wagner
Date: Tue Apr 11 2023 - 11:00:55 EST


On Tue, Apr 11, 2023 at 02:07:14PM +0200, Daniel Wagner wrote:
> loop: module loaded
> run blktests nvme/003 at 2023-04-11 13:55:57
> nvmet: adding nsid 1 to subsystem blktests-subsystem-1
> nvme nvme0: NVME-FC{0}: create association : host wwpn 0x20001100aa000002 rport wwpn 0x20001100aa000001: NQN "nqn.2014-08.org.nvmexpress.discovery"
> (NULL device *): {0:0} Association created
> [71] nvmet: ctrl 1 start keep-alive timer for 120 secs
> nvmet: creating discovery controller 1 for subsystem nqn.2014-08.org.nvmexpress.discovery for NQN nqn.2014-08.org.nvmexpress:uuid:242d4a24-2484-4a80-8234-d0169409c5e8.
> nvme nvme0: NVME-FC{0}: controller connect complete
> nvme nvme0: NVME-FC{0}: new ctrl: NQN "nqn.2014-08.org.nvmexpress.discovery"
> nvme nvme1: NVME-FC{1}: create association : host wwpn 0x20001100aa000002 rport wwpn 0x20001100aa000001: NQN "blktests-subsystem-1"
> (NULL device *): {0:1} Association created
> [453] nvmet: ctrl 2 start keep-alive timer for 5 secs
> nvmet: creating nvm controller 2 for subsystem blktests-subsystem-1 for NQN nqn.2014-08.org.nvmexpress:uuid:242d4a24-2484-4a80-8234-d0169409c5e8.
> [71] nvmet: adding queue 1 to ctrl 2.
> [45] nvmet: adding queue 2 to ctrl 2.
> [453] nvmet: adding queue 3 to ctrl 2.
> [105] nvmet: adding queue 4 to ctrl 2.
> nvme nvme1: NVME-FC{1}: controller connect complete
> nvme nvme1: NVME-FC{1}: new ctrl: NQN "blktests-subsystem-1"
> [453] nvmet: ctrl 2 reschedule traffic based keep-alive timer
> [105] nvmet: ctrl 2 update keep-alive timer for 5 secs
> [105] nvmet: ctrl 2 update keep-alive timer for 5 secs
> nvme nvme0: Removing ctrl: NQN "nqn.2014-08.org.nvmexpress.discovery"
> [45] nvmet: ctrl 1 stop keep-alive
> (NULL device *): {0:0} Association deleted
> (NULL device *): {0:0} Association freed
> (NULL device *): Disconnect LS failed: No Association

It turns out this sequence is triggered the udev auto connect rules. As I read
the _setup_nvmet() code, the connect should happen via blktest and not udev.
Obviously, this messes with the test case. I'll try to figure out how we can
disable the udev rules during test run.