Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit bc30196f authored by Dan Williams's avatar Dan Williams
Browse files

libnvdimm: Non-Volatile Devices



Maintainer information and documentation for drivers/nvdimm

Cc: Andy Lutomirski <luto@amacapital.net>
Cc: Boaz Harrosh <boaz@plexistor.com>
Cc: H. Peter Anvin <hpa@zytor.com>
Cc: Jens Axboe <axboe@fb.com>
Cc: Ingo Molnar <mingo@kernel.org>
Cc: Christoph Hellwig <hch@lst.de>
Cc: Neil Brown <neilb@suse.de>
Cc: Greg KH <gregkh@linuxfoundation.org>
Signed-off-by: default avatarDan Williams <dan.j.williams@intel.com>
parent 6bc75619
Loading
Loading
Loading
Loading
+17 −7
Original line number Diff line number Diff line
@@ -80,8 +80,16 @@ block. Each map entry is 32 bits. The two most significant bits are special
flags, and the remaining form the internal block number.

Bit      Description
31     : TRIM flag - marks if the block was trimmed or discarded
30     : ERROR flag - marks an error block. Cleared on write.
31 - 30	: Error and Zero flags - Used in the following way:
	 Bit		      Description
	31 30
	-----------------------------------------------------------------------
	 00	Initial state. Reads return zeroes; Premap = Postmap
	 01	Zero state: Reads return zeroes
	 10	Error state: Reads fail; Writes clear 'E' bit
	 11	Normal Block – has valid postmap


29 - 0	: Mappings to internal 'postmap' blocks


@@ -127,10 +135,11 @@ old_map': alternate old postmap entry
new_map': alternate new postmap entry
seq'	: alternate sequence number.

Each of the above fields is 32-bit, making one entry 16 bytes. Flog updates are
Each of the above fields is 32-bit, making one entry 32 bytes. Entries are also
padded to 64 bytes to avoid cache line sharing or aliasing. Flog updates are
done such that for any entry being written, it:
a. overwrites the 'old' section in the entry based on sequence numbers
b. writes the new entry such that the sequence number is written last.
b. writes the 'new' section such that the sequence number is written last.


c. The concept of lanes
@@ -141,8 +150,9 @@ concurrently, 'nlanes' is the number of IOs the BTT device as a whole can
process.
 nlanes = min(nfree, num_cpus)
A lane number is obtained at the start of any IO, and is used for indexing into
all the on-disk and in-memory data structures for the duration of the IO. It is
protected by a spinlock.
all the on-disk and in-memory data structures for the duration of the IO. If
there are more CPUs than the max number of available lanes, than lanes are
protected by spinlocks.


d. In-memory data structure: Read Tracking Table (RTT)
+808 −0

File added.

Preview size limit exceeded, changes collapsed.

+33 −6
Original line number Diff line number Diff line
@@ -5912,6 +5912,39 @@ M: Sasha Levin <sasha.levin@oracle.com>
S:	Maintained
F:	tools/lib/lockdep/

LIBNVDIMM: NON-VOLATILE MEMORY DEVICE SUBSYSTEM
M:	Dan Williams <dan.j.williams@intel.com>
L:	linux-nvdimm@lists.01.org
Q:	https://patchwork.kernel.org/project/linux-nvdimm/list/
S:	Supported
F:	drivers/nvdimm/*
F:	include/linux/nd.h
F:	include/linux/libnvdimm.h
F:	include/uapi/linux/ndctl.h

LIBNVDIMM BLK: MMIO-APERTURE DRIVER
M:	Ross Zwisler <ross.zwisler@linux.intel.com>
L:	linux-nvdimm@lists.01.org
Q:	https://patchwork.kernel.org/project/linux-nvdimm/list/
S:	Supported
F:	drivers/nvdimm/blk.c
F:	drivers/nvdimm/region_devs.c
F:	drivers/acpi/nfit*

LIBNVDIMM BTT: BLOCK TRANSLATION TABLE
M:	Vishal Verma <vishal.l.verma@intel.com>
L:	linux-nvdimm@lists.01.org
Q:	https://patchwork.kernel.org/project/linux-nvdimm/list/
S:	Supported
F:	drivers/nvdimm/btt*

LIBNVDIMM PMEM: PERSISTENT MEMORY DRIVER
M:	Ross Zwisler <ross.zwisler@linux.intel.com>
L:	linux-nvdimm@lists.01.org
Q:	https://patchwork.kernel.org/project/linux-nvdimm/list/
S:	Supported
F:	drivers/nvdimm/pmem.c

LINUX FOR IBM pSERIES (RS/6000)
M:	Paul Mackerras <paulus@au.ibm.com>
W:	http://www.ibm.com/linux/ltc/projects/ppc
@@ -8136,12 +8169,6 @@ S: Maintained
F:	Documentation/blockdev/ramdisk.txt
F:	drivers/block/brd.c

PERSISTENT MEMORY DRIVER
M:	Ross Zwisler <ross.zwisler@linux.intel.com>
L:	linux-nvdimm@lists.01.org
S:	Supported
F:	drivers/block/pmem.c

RANDOM NUMBER DRIVER
M:	"Theodore Ts'o" <tytso@mit.edu>
S:	Maintained