1. 23 4月, 2020 1 次提交
  2. 18 3月, 2020 1 次提交
  3. 29 2月, 2020 1 次提交
  4. 20 11月, 2019 5 次提交
  5. 18 11月, 2019 1 次提交
  6. 22 10月, 2019 1 次提交
  7. 19 7月, 2019 1 次提交
    • D
      driver-core, libnvdimm: Let device subsystems add local lockdep coverage · 87a30e1f
      Dan Williams 提交于
      For good reason, the standard device_lock() is marked
      lockdep_set_novalidate_class() because there is simply no sane way to
      describe the myriad ways the device_lock() ordered with other locks.
      However, that leaves subsystems that know their own local device_lock()
      ordering rules to find lock ordering mistakes manually. Instead,
      introduce an optional / additional lockdep-enabled lock that a subsystem
      can acquire in all the same paths that the device_lock() is acquired.
      
      A conversion of the NFIT driver and NVDIMM subsystem to a
      lockdep-validate device_lock() scheme is included. The
      debug_nvdimm_lock() implementation implements the correct lock-class and
      stacking order for the libnvdimm device topology hierarchy.
      
      Yes, this is a hack, but hopefully it is a useful hack for other
      subsystems device_lock() debug sessions. Quoting Greg:
      
          "Yeah, it feels a bit hacky but it's really up to a subsystem to mess up
           using it as much as anything else, so user beware :)
      
           I don't object to it if it makes things easier for you to debug."
      
      Cc: Ingo Molnar <mingo@redhat.com>
      Cc: Ira Weiny <ira.weiny@intel.com>
      Cc: Will Deacon <will.deacon@arm.com>
      Cc: Dave Jiang <dave.jiang@intel.com>
      Cc: Keith Busch <keith.busch@intel.com>
      Cc: Peter Zijlstra <peterz@infradead.org>
      Cc: Vishal Verma <vishal.l.verma@intel.com>
      Cc: "Rafael J. Wysocki" <rjw@rjwysocki.net>
      Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
      Signed-off-by: NDan Williams <dan.j.williams@intel.com>
      Acked-by: NGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      Reviewed-by: NIra Weiny <ira.weiny@intel.com>
      Link: https://lore.kernel.org/r/156341210661.292348.7014034644265455704.stgit@dwillia2-desk3.amr.corp.intel.com
      87a30e1f
  8. 06 7月, 2019 1 次提交
  9. 05 6月, 2019 1 次提交
  10. 23 3月, 2019 1 次提交
  11. 02 3月, 2019 1 次提交
  12. 21 2月, 2019 5 次提交
  13. 14 2月, 2019 1 次提交
  14. 13 2月, 2019 1 次提交
    • D
      acpi/nfit: Require opt-in for read-only label configurations · 0171b6b7
      Dan Williams 提交于
      Recent fixes to command handling enabled Linux to read label
      configurations that it could not before. Unfortunately that means that
      configurations that were operating in label-less mode will be broken as
      the kernel ignores the existing namespace configuration and tries to
      honor the new found labels.
      
      Fortunately this seems limited to a case where Linux can quirk the
      behavior and maintain the existing label-less semantics by default.
      When the platform does not emit an _LSW method, disable all label access
      methods. Provide a 'force_labels' module parameter to allow read-only
      label operation.
      
      Fixes: 11189c10 ("acpi/nfit: Fix command-supported detection")
      Reported-by: NDexuan Cui <decui@microsoft.com>
      Reviewed-by: NDexuan Cui <decui@microsoft.com>
      Signed-off-by: NDan Williams <dan.j.williams@intel.com>
      0171b6b7
  15. 08 2月, 2019 1 次提交
  16. 03 2月, 2019 1 次提交
  17. 30 1月, 2019 3 次提交
  18. 22 1月, 2019 3 次提交
  19. 15 1月, 2019 1 次提交
  20. 12 1月, 2019 1 次提交
  21. 09 1月, 2019 2 次提交
  22. 07 1月, 2019 1 次提交
    • D
      acpi/nfit, device-dax: Identify differentiated memory with a unique numa-node · 8fc5c735
      Dan Williams 提交于
      Persistent memory, as described by the ACPI NFIT (NVDIMM Firmware
      Interface Table), is the first known instance of a memory range
      described by a unique "target" proximity domain. Where "initiator" and
      "target" proximity domains is an approach that the ACPI HMAT
      (Heterogeneous Memory Attributes Table) uses to described the unique
      performance properties of a memory range relative to a given initiator
      (e.g. CPU or DMA device).
      
      Currently the numa-node for a /dev/pmemX block-device or /dev/daxX.Y
      char-device follows the traditional notion of 'numa-node' where the
      attribute conveys the closest online numa-node. That numa-node attribute
      is useful for cpu-binding and memory-binding processes *near* the
      device. However, when the memory range backing a 'pmem', or 'dax' device
      is onlined (memory hot-add) the memory-only-numa-node representing that
      address needs to be differentiated from the set of online nodes. In
      other words, the numa-node association of the device depends on whether
      you can bind processes *near* the cpu-numa-node in the offline
      device-case, or bind process *on* the memory-range directly after the
      backing address range is onlined.
      
      Allow for the case that platform firmware describes persistent memory
      with a unique proximity domain, i.e. when it is distinct from the
      proximity of DRAM and CPUs that are on the same socket. Plumb the Linux
      numa-node translation of that proximity through the libnvdimm region
      device to namespaces that are in device-dax mode. With this in place the
      proposed kmem driver [1] can optionally discover a unique numa-node
      number for the address range as it transitions the memory from an
      offline state managed by a device-driver to an online memory range
      managed by the core-mm.
      
      [1]: https://lore.kernel.org/lkml/20181022201317.8558C1D8@viggo.jf.intel.comReported-by: NFan Du <fan.du@intel.com>
      Cc: Michael Ellerman <mpe@ellerman.id.au>
      Cc: "Oliver O'Halloran" <oohall@gmail.com>
      Cc: Dave Hansen <dave.hansen@linux.intel.com>
      Cc: Jérôme Glisse <jglisse@redhat.com>
      Reviewed-by: NYang Shi <yang.shi@linux.alibaba.com>
      Signed-off-by: NDan Williams <dan.j.williams@intel.com>
      8fc5c735
  23. 22 12月, 2018 2 次提交
    • D
      acpi/nfit, libnvdimm/security: add Intel DSM 1.8 master passphrase support · 89fa9d8e
      Dave Jiang 提交于
      With Intel DSM 1.8 [1] two new security DSMs are introduced. Enable/update
      master passphrase and master secure erase. The master passphrase allows
      a secure erase to be performed without the user passphrase that is set on
      the NVDIMM. The commands of master_update and master_erase are added to
      the sysfs knob in order to initiate the DSMs. They are similar in opeartion
      mechanism compare to update and erase.
      
      [1]: http://pmem.io/documents/NVDIMM_DSM_Interface-V1.8.pdfSigned-off-by: NDave Jiang <dave.jiang@intel.com>
      Signed-off-by: NDan Williams <dan.j.williams@intel.com>
      89fa9d8e
    • D
      acpi/nfit, libnvdimm/security: Add security DSM overwrite support · 7d988097
      Dave Jiang 提交于
      Add support for the NVDIMM_FAMILY_INTEL "ovewrite" capability as
      described by the Intel DSM spec v1.7. This will allow triggering of
      overwrite on Intel NVDIMMs. The overwrite operation can take tens of
      minutes. When the overwrite DSM is issued successfully, the NVDIMMs will
      be unaccessible. The kernel will do backoff polling to detect when the
      overwrite process is completed. According to the DSM spec v1.7, the 128G
      NVDIMMs can take up to 15mins to perform overwrite and larger DIMMs will
      take longer.
      
      Given that overwrite puts the DIMM in an indeterminate state until it
      completes introduce the NDD_SECURITY_OVERWRITE flag to prevent other
      operations from executing when overwrite is happening. The
      NDD_WORK_PENDING flag is added to denote that there is a device reference
      on the nvdimm device for an async workqueue thread context.
      Signed-off-by: NDave Jiang <dave.jiang@intel.com>
      Signed-off-by: NDan Williams <dan.j.williams@intel.com>
      7d988097
  24. 14 12月, 2018 2 次提交
  25. 11 12月, 2018 1 次提交