libnvdimm: infrastructure for btt devices
NVDIMM namespaces, in addition to accepting "struct bio" based requests,
also have the capability to perform byte-aligned accesses. By default
only the bio/block interface is used. However, if another driver can
make effective use of the byte-aligned capability it can claim namespace
interface and use the byte-aligned ->rw_bytes() interface.
The BTT driver is the initial first consumer of this mechanism to allow
adding atomic sector update semantics to a pmem or blk namespace. This
patch is the sysfs infrastructure to allow configuring a BTT instance
for a namespace. Enabling that BTT and performing i/o is in a
subsequent patch.
Cc: Greg KH <gregkh@linuxfoundation.org>
Cc: Neil Brown <neilb@suse.de>
Signed-off-by:
Dan Williams <dan.j.williams@intel.com>
Showing
- drivers/nvdimm/Kconfig 3 additions, 0 deletionsdrivers/nvdimm/Kconfig
- drivers/nvdimm/Makefile 1 addition, 0 deletionsdrivers/nvdimm/Makefile
- drivers/nvdimm/btt.h 45 additions, 0 deletionsdrivers/nvdimm/btt.h
- drivers/nvdimm/btt_devs.c 422 additions, 0 deletionsdrivers/nvdimm/btt_devs.c
- drivers/nvdimm/bus.c 10 additions, 2 deletionsdrivers/nvdimm/bus.c
- drivers/nvdimm/label.c 3 additions, 2 deletionsdrivers/nvdimm/label.c
- drivers/nvdimm/namespace_devs.c 170 additions, 34 deletionsdrivers/nvdimm/namespace_devs.c
- drivers/nvdimm/nd-core.h 4 additions, 0 deletionsdrivers/nvdimm/nd-core.h
- drivers/nvdimm/nd.h 40 additions, 0 deletionsdrivers/nvdimm/nd.h
- drivers/nvdimm/pmem.c 84 additions, 48 deletionsdrivers/nvdimm/pmem.c
- drivers/nvdimm/region.c 5 additions, 3 deletionsdrivers/nvdimm/region.c
- drivers/nvdimm/region_devs.c 34 additions, 5 deletionsdrivers/nvdimm/region_devs.c
- include/linux/nd.h 58 additions, 5 deletionsinclude/linux/nd.h
Loading
Please register or sign in to comment