1. 01 Jul, 2015 37 commits
  2. 29 Jun, 2015 3 commits
    • Linus Torvalds's avatar
      Merge tag 'md/4.2' of git://neil.brown.name/md · 6aaf0da8
      Linus Torvalds authored
      Pull md updates from Neil Brown:
       "A mixed bag
      
         - a few bug fixes
         - some performance improvement that decrease lock contention
         - some clean-up
      
        Nothing major"
      
      * tag 'md/4.2' of git://neil.brown.name/md:
        md: clear Blocked flag on failed devices when array is read-only.
        md: unlock mddev_lock on an error path.
        md: clear mddev->private when it has been freed.
        md: fix a build warning
        md/raid5: ignore released_stripes check
        md/raid5: per hash value and exclusive wait_for_stripe
        md/raid5: split wait_for_stripe and introduce wait_for_quiescent
        wait: introduce wait_event_exclusive_cmd
        md: convert to kstrto*()
        md/raid10: make sync_request_write() call bio_copy_data()
      6aaf0da8
    • Christoph Lameter's avatar
      Fix kmalloc slab creation sequence · a9730fca
      Christoph Lameter authored
      This patch restores the slab creation sequence that was broken by commit
      4066c33d and also reverts the portions that introduced the
      KMALLOC_LOOP_XXX macros. Those can never really work since the slab creation
      is much more complex than just going from a minimum to a maximum number.
      
      The latest upstream kernel boots cleanly on my machine with a 64 bit x86
      configuration under KVM using either SLAB or SLUB.
      
      Fixes: 4066c33d ("support the slub_debug boot option")
      Reported-by: default avatarTheodore Ts'o <tytso@mit.edu>
      Signed-off-by: default avatarChristoph Lameter <cl@linux.com>
      Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
      a9730fca
    • Linus Torvalds's avatar
      Merge tag 'libnvdimm-for-4.2' of git://git.kernel.org/pub/scm/linux/kernel/git/djbw/nvdimm · 88793e5c
      Linus Torvalds authored
      Pull libnvdimm subsystem from Dan Williams:
       "The libnvdimm sub-system introduces, in addition to the
        libnvdimm-core, 4 drivers / enabling modules:
      
        NFIT:
          Instantiates an "nvdimm bus" with the core and registers memory
          devices (NVDIMMs) enumerated by the ACPI 6.0 NFIT (NVDIMM Firmware
          Interface table).
      
          After registering NVDIMMs the NFIT driver then registers "region"
          devices.  A libnvdimm-region defines an access mode and the
          boundaries of persistent memory media.  A region may span multiple
          NVDIMMs that are interleaved by the hardware memory controller.  In
          turn, a libnvdimm-region can be carved into a "namespace" device and
          bound to the PMEM or BLK driver which will attach a Linux block
          device (disk) interface to the memory.
      
        PMEM:
          Initially merged in v4.1 this driver for contiguous spans of
          persistent memory address ranges is re-worked to drive
          PMEM-namespaces emitted by the libnvdimm-core.
      
          In this update the PMEM driver, on x86, gains the ability to assert
          that writes to persistent memory have been flushed all the way
          through the caches and buffers in the platform to persistent media.
          See memcpy_to_pmem() and wmb_pmem().
      
        BLK:
          This new driver enables access to persistent memory media through
          "Block Data Windows" as defined by the NFIT.  The primary difference
          of this driver to PMEM is that only a small window of persistent
          memory is mapped into system address space at any given point in
          time.
      
          Per-NVDIMM windows are reprogrammed at run time, per-I/O, to access
          different portions of the media.  BLK-mode, by definition, does not
          support DAX.
      
        BTT:
          This is a library, optionally consumed by either PMEM or BLK, that
          converts a byte-accessible namespace into a disk with atomic sector
          update semantics (prevents sector tearing on crash or power loss).
      
          The sinister aspect of sector tearing is that most applications do
          not know they have a atomic sector dependency.  At least today's
          disk's rarely ever tear sectors and if they do one almost certainly
          gets a CRC error on access.  NVDIMMs will always tear and always
          silently.  Until an application is audited to be robust in the
          presence of sector-tearing the usage of BTT is recommended.
      
        Thanks to: Ross Zwisler, Jeff Moyer, Vishal Verma, Christoph Hellwig,
        Ingo Molnar, Neil Brown, Boaz Harrosh, Robert Elliott, Matthew Wilcox,
        Andy Rudoff, Linda Knippers, Toshi Kani, Nicholas Moulin, Rafael
        Wysocki, and Bob Moore"
      
      * tag 'libnvdimm-for-4.2' of git://git.kernel.org/pub/scm/linux/kernel/git/djbw/nvdimm: (33 commits)
        arch, x86: pmem api for ensuring durability of persistent memory updates
        libnvdimm: Add sysfs numa_node to NVDIMM devices
        libnvdimm: Set numa_node to NVDIMM devices
        acpi: Add acpi_map_pxm_to_online_node()
        libnvdimm, nfit: handle unarmed dimms, mark namespaces read-only
        pmem: flag pmem block devices as non-rotational
        libnvdimm: enable iostat
        pmem: make_request cleanups
        libnvdimm, pmem: fix up max_hw_sectors
        libnvdimm, blk: add support for blk integrity
        libnvdimm, btt: add support for blk integrity
        fs/block_dev.c: skip rw_page if bdev has integrity
        libnvdimm: Non-Volatile Devices
        tools/testing/nvdimm: libnvdimm unit test infrastructure
        libnvdimm, nfit, nd_blk: driver for BLK-mode access persistent memory
        nd_btt: atomic sector updates
        libnvdimm: infrastructure for btt devices
        libnvdimm: write blk label set
        libnvdimm: write pmem label set
        libnvdimm: blk labels and namespace instantiation
        ...
      88793e5c