Hi all,

Sorry for the delay, had to solve a quarantine issue in order to get access to the list.

Some clarifications regarding the user space application:

1. The application is not the nvmf_tgt, we have an entire applicance to which we are integrating spdk

2. We are currently using nvmf_tgt functions in order to activate spdk, and the bdev_user in order to handle IO

3. This is all in user space (I am used to the kernel/user distinction in order to separate protocol/appliance).

4. The bdev_user will also notify spdk of changes to namespaces (e.g. a new namespace has been added, and can be attached to the spdk subsystem)

I am glad that this is your intention, the question is, do you think that it would be useful to create such a bdev_user module which will allow other users to integrate spdk to their appliance using such a simple threading model? Perhaps such a module will allow easier integration of spdk.

I am attaching a reference application which is does NULL IO via bdev_user.

Regarding the RPC, we have an implementation of it, and will be happy to push it upstream.

I am not sure that using the RPC for this type of bdev_user namespaces is the correct approach in the long run, since the user appliance is the one adding/removing namespaces (like hot plugging of a new NVME device), so it can just call the "add_namespace_to_subsystem" interface directly, and does not need to use an RPC for it.