Re: NVMe over Fabrics target implementation

From: Christoph Hellwig
Date: Thu Jun 09 2016 - 09:46:11 EST


On Wed, Jun 08, 2016 at 09:36:15PM -0700, Nicholas A. Bellinger wrote:
> The configfs ABI should not dictate a single backend use-case.

And it doesn't. I actually had a file backend implemented to
benchmark it against the loopback driver. It needed absolutely
zero new configfs interface. And if we at some point want
different backends using different attributes we can trivially
add them using configfs_register_group.

> Along with having common code and existing configfs
> ABI, we also get a proper starting point for target-core
> features that span across endpoints, and are defined for
> both scsi and nvme. PR APTPL immediately comes to mind.

PRs are a useful feature on the road map. However we need a separate
pluggable backend anyway for distributed backends like RBD or Bart's
DLM implementation. Also the current LIO PR implementation will need
a lot of work to be usable for NVMe while actually following the
spec in all it's details and to be power Ñafe. The right way to
go here is a PR API that allows different backends, and the existing
LIO one might be one of them after it's got the needed attention.