linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v5 00/21] libnvdimm: non-volatile memory devices
@ 2015-06-02  0:14 Dan Williams
  2015-06-02  0:14 ` [PATCH v5 01/21] e820, efi: add ACPI 6.0 persistent memory types Dan Williams
                   ` (20 more replies)
  0 siblings, 21 replies; 47+ messages in thread
From: Dan Williams @ 2015-06-02  0:14 UTC (permalink / raw)
  To: linux-nvdimm
  Cc: axboe, sfr, rafael, neilb, gregkh, linux-kernel, mingo,
	linux-acpi, jmoyer, linux-api, akpm, hch

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

^ permalink raw reply	[flat|nested] 47+ messages in thread

end of thread, other threads:[~2015-06-17 17:10 UTC | newest]

Thread overview: 47+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-06-02  0:14 [PATCH v5 00/21] libnvdimm: non-volatile memory devices Dan Williams
2015-06-02  0:14 ` [PATCH v5 01/21] e820, efi: add ACPI 6.0 persistent memory types Dan Williams
2015-06-02  0:14 ` [PATCH v5 02/21] libnvdimm, nfit: initial libnvdimm infrastructure and NFIT support Dan Williams
2015-06-03 14:57   ` Christoph Hellwig
2015-06-03 19:24     ` Williams, Dan J
2015-06-09  6:33       ` hch
2015-06-09 22:27         ` Dan Williams
2015-06-02  0:14 ` [PATCH v5 03/21] libnvdimm: control character device and libnvdimm bus sysfs attributes Dan Williams
2015-06-02  0:14 ` [PATCH v5 04/21] libnvdimm, nfit: dimm/memory-devices Dan Williams
2015-06-02  0:14 ` [PATCH v5 05/21] libnvdimm: control (ioctl) messages for libnvdimm bus and dimm devices Dan Williams
2015-06-09  6:34   ` Christoph Hellwig
2015-06-09  6:57     ` Dan Williams
2015-06-10  7:33       ` Christoph Hellwig
2015-06-02  0:14 ` [PATCH v5 06/21] libnvdimm, nvdimm: dimm driver and base libnvdimm device-driver infrastructure Dan Williams
2015-06-02  0:14 ` [PATCH v5 07/21] libnvdimm, nfit: regions (block-data-window, persistent memory, volatile memory) Dan Williams
2015-06-02  0:14 ` [PATCH v5 08/21] libnvdimm: support for legacy (non-aliasing) nvdimms Dan Williams
2015-06-02  0:14 ` [PATCH v5 09/21] libnvdimm, nd_pmem: add libnvdimm support to the pmem driver Dan Williams
2015-06-03  7:44   ` Christoph Hellwig
2015-06-03 19:31     ` Williams, Dan J
2015-06-09  6:36       ` hch
2015-06-02  0:15 ` [PATCH v5 10/21] pmem: Dynamically allocate partition numbers Dan Williams
2015-06-02  0:15 ` [PATCH v5 11/21] libnvdimm, nfit: add interleave-set state-tracking infrastructure Dan Williams
2015-06-02  0:15 ` [PATCH v5 12/21] libnvdimm: namespace indices: read and validate Dan Williams
2015-06-09  6:39   ` Christoph Hellwig
2015-06-10 15:54     ` Dan Williams
2015-06-02  0:15 ` [PATCH v5 13/21] libnvdimm: pmem label sets and namespace instantiation Dan Williams
2015-06-02  0:15 ` [PATCH v5 14/21] libnvdimm: blk labels " Dan Williams
2015-06-02  0:15 ` [PATCH v5 15/21] libnvdimm: write pmem label set Dan Williams
2015-06-02  0:15 ` [PATCH v5 16/21] libnvdimm: write blk " Dan Williams
2015-06-02  0:15 ` [PATCH v5 17/21] libnvdimm: infrastructure for btt devices Dan Williams
2015-06-09  6:42   ` Christoph Hellwig
2015-06-10 18:46     ` Matthew Wilcox
2015-06-11  7:28       ` Christoph Hellwig
2015-06-17 16:47         ` Jeff Moyer
2015-06-17 16:50           ` Dan Williams
2015-06-17 16:57             ` Jeff Moyer
2015-06-17 17:09               ` Dan Williams
2015-06-02  0:15 ` [PATCH v5 18/21] nd_btt: atomic sector updates Dan Williams
2015-06-09  6:44   ` Christoph Hellwig
2015-06-09 18:27     ` Vishal Verma
2015-06-10  7:34       ` Christoph Hellwig
2015-06-10 18:24         ` Vishal Verma
2015-06-02  0:15 ` [PATCH v5 19/21] libnvdimm, nfit, nd_blk: driver for BLK-mode access persistent memory Dan Williams
2015-06-02  0:15 ` [PATCH v5 20/21] tools/testing/nvdimm: manufactured NFITs for interface development Dan Williams
2015-06-09  6:48   ` Christoph Hellwig
2015-06-11 20:12     ` Dan Williams
2015-06-02  0:16 ` [PATCH v5 21/21] libnvdimm: Non-Volatile Devices Dan Williams

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).