Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1182161 > unrolled thread

[PATCH v2 0/6] Correctness fixes for NFIT BLK I/O path

Started byDan Williams <dan.j.williams@intel.com>
First post2015-07-11 16:50 +0200
Last post2015-07-11 16:50 +0200
Articles 2 — 1 participant

Back to article view | Back to linux.kernel


Contents

  [PATCH v2 0/6] Correctness fixes for NFIT BLK I/O path Dan Williams <dan.j.williams@intel.com> - 2015-07-11 16:50 +0200
    [PATCH v2 2/6] tools/testing/nvdimm: mock ioremap_wt Dan Williams <dan.j.williams@intel.com> - 2015-07-11 16:50 +0200

#1182161 — [PATCH v2 0/6] Correctness fixes for NFIT BLK I/O path

FromDan Williams <dan.j.williams@intel.com>
Date2015-07-11 16:50 +0200
Subject[PATCH v2 0/6] Correctness fixes for NFIT BLK I/O path
Message-ID<pL4gh-4l9-3@gated-at.bofh.it>
Changes since v1 [1]:

1/ Fixup the unit test in response to the 4.2-rc1 merge (handle the new
   usage of ioremap_wt).

2/ Add unit test infrastructure for NFIT "flush" sub-table entries

3/ Fix the mock DSM implementation's usage of ENOTTY

4/ Replace usage of devm_ioremap_resource() with devm_ioremap_nocache()
   for mapping flush table addresses.  Multiple DIMMs are allowed to
   share the same flush address.  Also, the side effect of stray writes
   to a flush address are simply extra memory controller buffer flushes,
   so we don't strictly need exclusive resource ownership.

5/ Fixed the warning "unable to guarantee persistence of writes" to
   consider the case of a platform without PMEM API support, but *with*
   flush address entries.

6/ Fixed the "latch" flag retrieval code to proceed with a sane default
   in the case the "DIMM flags" DSM is not implemented.

[1]: https://lists.01.org/pipermail/linux-nvdimm/2015-July/001499.html


Summary:

This set of fixes to the BLK I/O path is a bit larger than I would have
liked for an -rc update, but they are necessary for correct operation of
a BLK-mode namespace.  Originally posted as part of the initial PMEM API
submission at the end of May [2], they got deferred while we iterated on
the details of memremap_pmem(), memcpy_to_pmem(), and wmb_pmem().  Now
that those APIs are upstream these patches finish off enabling
persistence guarantees for BLK-mode persistent memory.

[2]: https://lists.01.org/pipermail/linux-nvdimm/2015-May/000929.html

---

Dan Williams (3):
      tools/testing/nvdimm: mock ioremap_wt
      tools/testing/nvdimm: fix return code for unimplemented commands
      tools/testing/nvdimm: add mock acpi_nfit_flush_address entries to nfit_test

Ross Zwisler (3):
      pmem: add maintainer for include/linux/pmem.h
      nfit: update block I/O path to use PMEM API
      nfit: add support for NVDIMM "latch" flag


 MAINTAINERS                       |    1 
 drivers/acpi/nfit.c               |  130 ++++++++++++++++++++++++++++++++++---
 drivers/acpi/nfit.h               |   20 +++++-
 tools/testing/nvdimm/Kbuild       |    3 +
 tools/testing/nvdimm/test/iomap.c |   27 ++++++++
 tools/testing/nvdimm/test/nfit.c  |   52 ++++++++++++++-
 6 files changed, 217 insertions(+), 16 deletions(-)
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[toc] | [next] | [standalone]


#1182164 — [PATCH v2 2/6] tools/testing/nvdimm: mock ioremap_wt

FromDan Williams <dan.j.williams@intel.com>
Date2015-07-11 16:50 +0200
Subject[PATCH v2 2/6] tools/testing/nvdimm: mock ioremap_wt
Message-ID<pL4gi-4l9-27@gated-at.bofh.it>
In reply to#1182161
In the 4.2-rc1 merge the default_memremap_pmem() implementation switched
from ioremap_nocache() to ioremap_wt().  Add it to the list of mocked
routines to restore the ability to run the unit tests.

Signed-off-by: Dan Williams <dan.j.williams@intel.com>
---
 tools/testing/nvdimm/Kbuild       |    1 +
 tools/testing/nvdimm/test/iomap.c |    6 ++++++
 2 files changed, 7 insertions(+)

diff --git a/tools/testing/nvdimm/Kbuild b/tools/testing/nvdimm/Kbuild
index 8e9b64520ec1..8e020601c773 100644
--- a/tools/testing/nvdimm/Kbuild
+++ b/tools/testing/nvdimm/Kbuild
@@ -1,3 +1,4 @@
+ldflags-y += --wrap=ioremap_wt
 ldflags-y += --wrap=ioremap_cache
 ldflags-y += --wrap=ioremap_nocache
 ldflags-y += --wrap=iounmap
diff --git a/tools/testing/nvdimm/test/iomap.c b/tools/testing/nvdimm/test/iomap.c
index c85a6f6ba559..9f21b150396b 100644
--- a/tools/testing/nvdimm/test/iomap.c
+++ b/tools/testing/nvdimm/test/iomap.c
@@ -77,6 +77,12 @@ void __iomem *__wrap_ioremap_nocache(resource_size_t offset, unsigned long size)
 }
 EXPORT_SYMBOL(__wrap_ioremap_nocache);
 
+void __iomem *__wrap_ioremap_wt(resource_size_t offset, unsigned long size)
+{
+	return __nfit_test_ioremap(offset, size, ioremap_wt);
+}
+EXPORT_SYMBOL(__wrap_ioremap_wt);
+
 void __wrap_iounmap(volatile void __iomem *addr)
 {
 	struct nfit_test_resource *nfit_res;

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[toc] | [prev] | [standalone]


Back to top | Article view | linux.kernel


csiph-web