1. 25 12月, 2015 2 次提交
  2. 14 12月, 2015 2 次提交
  3. 13 12月, 2015 1 次提交
  4. 11 12月, 2015 2 次提交
  5. 09 12月, 2015 2 次提交
    • D
      nvdimm: do not show pfn_seed for non pmem regions · 6bb691ac
      Dmitry Krivenok 提交于
      This simple change hides pfn_seed attribute for non pmem
      regions because they don't support pfn anyway.
      Signed-off-by: NDmitry V. Krivenok <krivenok.dmitry@gmail.com>
      Signed-off-by: NDan Williams <dan.j.williams@intel.com>
      6bb691ac
    • D
      nvdimm: improve diagnosibility of namespaces · bd26d0d0
      Dmitry Krivenok 提交于
      In order to bind namespace to the driver user must first
      set all mandatory attributes in the following order:
      - uuid
      - size
      - sector_size (for blk namespace only)
      
      If the order is wrong, then user either won't be able to set
      the attribute or bind the namespace.
      
      This simple patch improves diagnosibility of common operations
      with namespaces by printing some details about the error
      instead of failing silently.
      
      Below are examples of error messages (assuming dyndbg is
      enabled for nvdimms):
      
      [/]# echo 4194304 > /sys/bus/nd/devices/region5/namespace5.0/size
      [  288.372612] nd namespace5.0: __size_store: uuid not set
      [  288.374839] nd namespace5.0: size_store: 400000 fail (-6)
      sh: write error: No such device or address
      [/]#
      
      [/]# echo namespace5.0 > /sys/bus/nd/drivers/nd_blk/bind
      [  554.671648] nd_blk namespace5.0: nvdimm_namespace_common_probe: sector size not set
      [  554.674688]  ndbus1: nd_blk.probe(namespace5.0) = -19
      sh: write error: No such device
      [/]#
      Signed-off-by: NDmitry V. Krivenok <krivenok.dmitry@gmail.com>
      Signed-off-by: NDan Williams <dan.j.williams@intel.com>
      bd26d0d0
  6. 13 11月, 2015 2 次提交
  7. 08 11月, 2015 1 次提交
  8. 22 10月, 2015 4 次提交
  9. 10 10月, 2015 3 次提交
  10. 17 9月, 2015 3 次提交
  11. 29 8月, 2015 3 次提交
    • D
      libnvdimm, pmem: direct map legacy pmem by default · 004f1afb
      Dan Williams 提交于
      The expectation is that the legacy / non-standard pmem discovery method
      (e820 type-12) will only ever be used to describe small quantities of
      persistent memory.  Larger capacities will be described via the ACPI
      NFIT.  When "allocate struct page from pmem" support is added this default
      policy can be overridden by assigning a legacy pmem namespace to a pfn
      device, however this would be only be necessary if a platform used the
      legacy mechanism to define a very large range.
      
      Cc: Christoph Hellwig <hch@lst.de>
      Signed-off-by: NDan Williams <dan.j.williams@intel.com>
      004f1afb
    • D
      libnvdimm, pmem: 'struct page' for pmem · 32ab0a3f
      Dan Williams 提交于
      Enable the pmem driver to handle PFN device instances.  Attaching a pmem
      namespace to a pfn device triggers the driver to allocate and initialize
      struct page entries for pmem.  Memory capacity for this allocation comes
      exclusively from RAM for now which is suitable for low PMEM to RAM
      ratios.  This mechanism will be expanded later for setting an "allocate
      from PMEM" policy.
      
      Cc: Boaz Harrosh <boaz@plexistor.com>
      Cc: Ross Zwisler <ross.zwisler@linux.intel.com>
      Cc: Christoph Hellwig <hch@lst.de>
      Signed-off-by: NDan Williams <dan.j.williams@intel.com>
      32ab0a3f
    • D
      libnvdimm, pfn: 'struct page' provider infrastructure · e1455744
      Dan Williams 提交于
      Implement the base infrastructure for libnvdimm PFN devices. Similar to
      BTT devices they take a namespace as a backing device and layer
      functionality on top. In this case the functionality is reserving space
      for an array of 'struct page' entries to be handed out through
      pfn_to_page(). For now this is just the basic libnvdimm-device-model for
      configuring the base PFN device.
      
      As the namespace claiming mechanism for PFN devices is mostly identical
      to BTT devices drivers/nvdimm/claim.c is created to house the common
      bits.
      
      Cc: Ross Zwisler <ross.zwisler@linux.intel.com>
      Signed-off-by: NDan Williams <dan.j.williams@intel.com>
      e1455744
  12. 28 8月, 2015 3 次提交
  13. 21 8月, 2015 1 次提交
  14. 19 8月, 2015 1 次提交
    • D
      libnvdimm, e820: make CONFIG_X86_PMEM_LEGACY a tristate option · 7a67832c
      Dan Williams 提交于
      We currently register a platform device for e820 type-12 memory and
      register a nvdimm bus beneath it.  Registering the platform device
      triggers the device-core machinery to probe for a driver, but that
      search currently comes up empty.  Building the nvdimm-bus registration
      into the e820_pmem platform device registration in this way forces
      libnvdimm to be built-in.  Instead, convert the built-in portion of
      CONFIG_X86_PMEM_LEGACY to simply register a platform device and move the
      rest of the logic to the driver for e820_pmem, for the following
      reasons:
      
      1/ Letting e820_pmem support be a module allows building and testing
         libnvdimm.ko changes without rebooting
      
      2/ All the normal policy around modules can be applied to e820_pmem
         (unbind to disable and/or blacklisting the module from loading by
         default)
      
      3/ Moving the driver to a generic location and converting it to scan
         "iomem_resource" rather than "e820.map" means any other architecture can
         take advantage of this simple nvdimm resource discovery mechanism by
         registering a resource named "Persistent Memory (legacy)"
      
      Cc: Christoph Hellwig <hch@lst.de>
      Signed-off-by: NDan Williams <dan.j.williams@intel.com>
      7a67832c
  15. 15 8月, 2015 4 次提交
  16. 01 8月, 2015 1 次提交
  17. 29 7月, 2015 1 次提交
    • C
      block: add a bi_error field to struct bio · 4246a0b6
      Christoph Hellwig 提交于
      Currently we have two different ways to signal an I/O error on a BIO:
      
       (1) by clearing the BIO_UPTODATE flag
       (2) by returning a Linux errno value to the bi_end_io callback
      
      The first one has the drawback of only communicating a single possible
      error (-EIO), and the second one has the drawback of not beeing persistent
      when bios are queued up, and are not passed along from child to parent
      bio in the ever more popular chaining scenario.  Having both mechanisms
      available has the additional drawback of utterly confusing driver authors
      and introducing bugs where various I/O submitters only deal with one of
      them, and the others have to add boilerplate code to deal with both kinds
      of error returns.
      
      So add a new bi_error field to store an errno value directly in struct
      bio and remove the existing mechanisms to clean all this up.
      Signed-off-by: NChristoph Hellwig <hch@lst.de>
      Reviewed-by: NHannes Reinecke <hare@suse.de>
      Reviewed-by: NNeilBrown <neilb@suse.com>
      Signed-off-by: NJens Axboe <axboe@fb.com>
      4246a0b6
  18. 28 7月, 2015 2 次提交
  19. 26 7月, 2015 1 次提交
    • D
      libnvdimm: fix namespace seed creation · 8ca24353
      Dan Williams 提交于
      A new BLK namespace "seed" device is created whenever the current seed
      is successfully probed.  However, if that namespace is assigned to a BTT
      it may never directly experience a successful probe as it is a
      subordinate device to a BTT configuration.
      
      The effect of the current code is that no new namespaces can be
      instantiated, after the seed namespace, to consume available BLK DPA
      capacity.  Fix this by treating a successful BTT probe event as a
      successful probe event for the backing namespace.
      Reported-by: NNicholas Moulin <nicholas.w.moulin@linux.intel.com>
      Signed-off-by: NDan Williams <dan.j.williams@intel.com>
      8ca24353
  20. 01 7月, 2015 1 次提交