[PATCH v5 00/21] libnvdimm: non-volatile memory devices

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Changes since v4 [1]:

1/ Rename libnd to libnvdimm, move the implementation from
   drivers/block/nd to drivers/nvdimm, and replace the "nd" prefix with
   "nvdimm" where it makes sense.  For example, the module name and public
   header filename for the major library entry points are libnvdimm.ko
   and libnvdimm.h respectively.  The entry points are prefixed with
   "nvdimm" and the primary bus objects are renamed, i.e.
   s/nd_bus/nvdimm_bus/ and s/nd_dimm/nvdimm/.  The "nd" prefix remains
   as a short lead-in identifier for implementation internal items that
   are not nvdimms like regions, commands, labels, etc... (Christoph [2])

2/ Move the unit test infrastructure to an external module in
   tools/testing/nvdimm.  The linker hack received a strong NAK from
   Christoph and it is also problematic that an "allmodconfig" build would
   result in including the mocked symbols.  With the move and conversion to
   an external module we keep the unit tests in tree where they can be
   maintained effectively without impacting production builds. (Christoph
   [2])

3/ Fixup some miscellaneous 0day sparse reports [3]

4/ Rebased on top of linux-pm.git/acpica (Rafael [4])

[1]: https://lists.01.org/pipermail/linux-nvdimm/2015-May/000804.html
[2]: https://lists.01.org/pipermail/linux-nvdimm/2015-May/000923.html
[3]: https://lists.01.org/pipermail/linux-nvdimm/2015-May/000983.html
[4]: https://lists.01.org/pipermail/linux-nvdimm/2015-May/000921.html

Diffstat since v4:

 Documentation/{blockdev => nvdimm}/btt.txt         |   0
 .../{blockdev/libnd.txt => nvdimm/nvdimm.txt}      |  97 ++++----
 drivers/acpi/nfit.c                                | 148 ++++++------
 drivers/acpi/nfit.h                                |  19 +-
 drivers/block/nd/Makefile                          |  29 ---
 drivers/block/nd/test/Makefile                     |   5 -
 drivers/{block/nd => nvdimm}/Kconfig               |  42 +---
 drivers/nvdimm/Makefile                            |  21 ++
 drivers/{block/nd => nvdimm}/blk.c                 |   6 +-
 drivers/{block/nd => nvdimm}/btt.c                 |   6 +-
 drivers/{block/nd => nvdimm}/btt.h                 |   0
 drivers/{block/nd => nvdimm}/btt_devs.c            |  38 +--
 drivers/{block/nd => nvdimm}/bus.c                 | 258 ++++++++++-----------
 drivers/{block/nd => nvdimm}/core.c                | 196 ++++++++--------
 drivers/{block/nd => nvdimm}/dimm.c                |  44 ++--
 drivers/{block/nd => nvdimm}/dimm_devs.c           | 188 +++++++--------
 drivers/{block/nd => nvdimm}/label.c               | 116 ++++-----
 drivers/{block/nd => nvdimm}/label.h               |  22 +-
 drivers/{block/nd => nvdimm}/namespace_devs.c      | 108 ++++-----
 drivers/{block/nd => nvdimm}/nd-private.h          |  62 +++--
 drivers/{block/nd => nvdimm}/nd.h                  |  44 ++--
 drivers/{block/nd => nvdimm}/pmem.c                |   6 +-
 drivers/{block/nd => nvdimm}/region.c              |  10 +-
 drivers/{block/nd => nvdimm}/region_devs.c         | 126 +++++-----
 include/linux/{libnd.h => libnvdimm.h}             |  68 +++---
 tools/testing/nvdimm/Kbuild                        |  37 +++
 tools/testing/nvdimm/Makefile                      |   7 +
 tools/testing/nvdimm/test/Kbuild                   |   8 +
 .../block/nd => tools/testing/nvdimm}/test/iomap.c |   0
 .../block/nd => tools/testing/nvdimm}/test/nfit.c  | 122 +++-------
 .../nd => tools/testing/nvdimm}/test/nfit_test.h   |   0
 31 files changed, 895 insertions(+), 938 deletions(-)
 rename Documentation/{blockdev => nvdimm}/btt.txt (100%)
 rename Documentation/{blockdev/libnd.txt => nvdimm/nvdimm.txt} (92%)
 delete mode 100644 drivers/block/nd/Makefile
 delete mode 100644 drivers/block/nd/test/Makefile
 rename drivers/{block/nd => nvdimm}/Kconfig (72%)
 create mode 100644 drivers/nvdimm/Makefile
 rename drivers/{block/nd => nvdimm}/blk.c (98%)
 rename drivers/{block/nd => nvdimm}/btt.c (99%)
 rename drivers/{block/nd => nvdimm}/btt.h (100%)
 rename drivers/{block/nd => nvdimm}/btt_devs.c (90%)
 rename drivers/{block/nd => nvdimm}/bus.c (68%)
 rename drivers/{block/nd => nvdimm}/core.c (62%)
 rename drivers/{block/nd => nvdimm}/dimm.c (71%)
 rename drivers/{block/nd => nvdimm}/dimm_devs.c (69%)
 rename drivers/{block/nd => nvdimm}/label.c (89%)
 rename drivers/{block/nd => nvdimm}/label.h (87%)
 rename drivers/{block/nd => nvdimm}/namespace_devs.c (94%)
 rename drivers/{block/nd => nvdimm}/nd-private.h (57%)
 rename drivers/{block/nd => nvdimm}/nd.h (86%)
 rename drivers/{block/nd => nvdimm}/pmem.c (99%)
 rename drivers/{block/nd => nvdimm}/region.c (96%)
 rename drivers/{block/nd => nvdimm}/region_devs.c (83%)
 rename include/linux/{libnd.h => libnvdimm.h} (62%)
 create mode 100644 tools/testing/nvdimm/Kbuild
 create mode 100644 tools/testing/nvdimm/Makefile
 create mode 100644 tools/testing/nvdimm/test/Kbuild
 rename {drivers/block/nd => tools/testing/nvdimm}/test/iomap.c (100%)
 rename {drivers/block/nd => tools/testing/nvdimm}/test/nfit.c (91%)
 rename {drivers/block/nd => tools/testing/nvdimm}/test/nfit_test.h (100%)

---

Dan Williams (18):
      e820, efi: add ACPI 6.0 persistent memory types
      libnvdimm, nfit: initial libnvdimm infrastructure and NFIT support
      libnvdimm: control character device and libnvdimm bus sysfs attributes
      libnvdimm, nfit: dimm/memory-devices
      libnvdimm: control (ioctl) messages for libnvdimm bus and dimm devices
      libnvdimm, nvdimm: dimm driver and base libnvdimm device-driver infrastructure
      libnvdimm, nfit: regions (block-data-window, persistent memory, volatile memory)
      libnvdimm: support for legacy (non-aliasing) nvdimms
      libnvdimm, nd_pmem: add libnvdimm support to the pmem driver
      libnvdimm, nfit: add interleave-set state-tracking infrastructure
      libnvdimm: namespace indices: read and validate
      libnvdimm: pmem label sets and namespace instantiation.
      libnvdimm: blk labels and namespace instantiation
      libnvdimm: write pmem label set
      libnvdimm: write blk label set
      libnvdimm: infrastructure for btt devices
      tools/testing/nvdimm: manufactured NFITs for interface development
      libnvdimm: Non-Volatile Devices

Ross Zwisler (2):
      pmem: Dynamically allocate partition numbers
      libnvdimm, nfit, nd_blk: driver for BLK-mode access persistent memory

Vishal Verma (1):
      nd_btt: atomic sector updates


 Documentation/nvdimm/btt.txt          |  273 +++++
 Documentation/nvdimm/nvdimm.txt       |  805 ++++++++++++++++
 MAINTAINERS                           |   39 +
 arch/arm64/kernel/efi.c               |    1 
 arch/ia64/kernel/efi.c                |    4 
 arch/x86/Kconfig                      |    4 
 arch/x86/boot/compressed/eboot.c      |    4 
 arch/x86/include/uapi/asm/e820.h      |    1 
 arch/x86/kernel/e820.c                |   28 -
 arch/x86/kernel/pmem.c                |   92 +-
 arch/x86/platform/efi/efi.c           |    3 
 drivers/Kconfig                       |    2 
 drivers/Makefile                      |    1 
 drivers/acpi/Kconfig                  |   27 +
 drivers/acpi/Makefile                 |    2 
 drivers/acpi/nfit.c                   | 1474 +++++++++++++++++++++++++++++
 drivers/acpi/nfit.h                   |  161 +++
 drivers/block/Kconfig                 |   11 
 drivers/block/Makefile                |    1 
 drivers/nvdimm/Kconfig                |   79 ++
 drivers/nvdimm/Makefile               |   21 
 drivers/nvdimm/blk.c                  |  252 +++++
 drivers/nvdimm/btt.c                  | 1440 ++++++++++++++++++++++++++++
 drivers/nvdimm/btt.h                  |  186 ++++
 drivers/nvdimm/btt_devs.c             |  443 +++++++++
 drivers/nvdimm/bus.c                  |  770 +++++++++++++++
 drivers/nvdimm/core.c                 |  472 +++++++++
 drivers/nvdimm/dimm.c                 |  115 ++
 drivers/nvdimm/dimm_devs.c            |  516 ++++++++++
 drivers/nvdimm/label.c                |  926 ++++++++++++++++++
 drivers/nvdimm/label.h                |  143 +++
 drivers/nvdimm/namespace_devs.c       | 1702 +++++++++++++++++++++++++++++++++
 drivers/nvdimm/nd-private.h           |  107 ++
 drivers/nvdimm/nd.h                   |  261 +++++
 drivers/nvdimm/pmem.c                 |  107 +-
 drivers/nvdimm/region.c               |  189 ++++
 drivers/nvdimm/region_devs.c          |  667 +++++++++++++
 include/linux/efi.h                   |    3 
 include/linux/libnvdimm.h             |  131 +++
 include/linux/nd.h                    |   98 ++
 include/uapi/linux/Kbuild             |    1 
 include/uapi/linux/ndctl.h            |  199 ++++
 tools/testing/nvdimm/Kbuild           |   37 +
 tools/testing/nvdimm/Makefile         |    7 
 tools/testing/nvdimm/test/Kbuild      |    8 
 tools/testing/nvdimm/test/iomap.c     |  151 +++
 tools/testing/nvdimm/test/nfit.c      | 1101 +++++++++++++++++++++
 tools/testing/nvdimm/test/nfit_test.h |   28 +
 48 files changed, 13004 insertions(+), 89 deletions(-)
 create mode 100644 Documentation/nvdimm/btt.txt
 create mode 100644 Documentation/nvdimm/nvdimm.txt
 create mode 100644 drivers/acpi/nfit.c
 create mode 100644 drivers/acpi/nfit.h
 create mode 100644 drivers/nvdimm/Kconfig
 create mode 100644 drivers/nvdimm/Makefile
 create mode 100644 drivers/nvdimm/blk.c
 create mode 100644 drivers/nvdimm/btt.c
 create mode 100644 drivers/nvdimm/btt.h
 create mode 100644 drivers/nvdimm/btt_devs.c
 create mode 100644 drivers/nvdimm/bus.c
 create mode 100644 drivers/nvdimm/core.c
 create mode 100644 drivers/nvdimm/dimm.c
 create mode 100644 drivers/nvdimm/dimm_devs.c
 create mode 100644 drivers/nvdimm/label.c
 create mode 100644 drivers/nvdimm/label.h
 create mode 100644 drivers/nvdimm/namespace_devs.c
 create mode 100644 drivers/nvdimm/nd-private.h
 create mode 100644 drivers/nvdimm/nd.h
 rename drivers/{block/pmem.c => nvdimm/pmem.c} (70%)
 create mode 100644 drivers/nvdimm/region.c
 create mode 100644 drivers/nvdimm/region_devs.c
 create mode 100644 include/linux/libnvdimm.h
 create mode 100644 include/linux/nd.h
 create mode 100644 include/uapi/linux/ndctl.h
 create mode 100644 tools/testing/nvdimm/Kbuild
 create mode 100644 tools/testing/nvdimm/Makefile
 create mode 100644 tools/testing/nvdimm/test/Kbuild
 create mode 100644 tools/testing/nvdimm/test/iomap.c
 create mode 100644 tools/testing/nvdimm/test/nfit.c
 create mode 100644 tools/testing/nvdimm/test/nfit_test.h
--
To unsubscribe from this list: send the line "unsubscribe linux-api" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux