|
|
Log in / Subscribe / Register

Adding blk-mq and DMA support to pmem block driver

From:  Dave Jiang <dave.jiang-ral2JQCrhuEAvxtiuMwx3w-AT-public.gmane.org>
To:  vinod.koul-ral2JQCrhuEAvxtiuMwx3w-AT-public.gmane.org, dan.j.williams-ral2JQCrhuEAvxtiuMwx3w-AT-public.gmane.org
Subject:  [PATCH 0/5] Adding blk-mq and DMA support to pmem block driver
Date:  Mon, 31 Jul 2017 15:24:18 -0700
Message-ID:  <150153948477.49768.5767882242140065474.stgit@djiang5-desk3.ch.intel.com>
Cc:  dmaengine-u79uwXL29TY76Z2rM5mHXA-AT-public.gmane.org, linux-nvdimm-hn68Rpc1hR1g9hUCZPvPmw-AT-public.gmane.org

The following series implements adds blk-mq support to the pmem block driver
and also adds infrastructure code to ioatdma and dmaengine in order to
support copying to and from scatterlist in order to process block
requests provided by blk-mq. The usage of DMA engines available on certain
platforms allow us to drastically reduce CPU utilization and at the same time
maintain performance that is good enough. Experimentations have been done on
DRAM backed pmem block device that showed the utilization of DMA engine is
beneficial. User can revert back to original behavior by providing
queue_mode=0 to the nd_pmem kernel module if desired.

---

Dave Jiang (5):
      dmaengine: ioatdma: revert 7618d035 to allow sharing of DMA channels
      dmaengine: ioatdma: dma_prep_memcpy_to/from_sg support
      dmaengine: add SG support to dmaengine_unmap
      libnvdimm: Adding blk-mq support to the pmem driver
      libnvdimm: add DMA support for pmem blk-mq


 drivers/dma/dmaengine.c   |   45 +++++-
 drivers/dma/ioat/dma.h    |    8 +
 drivers/dma/ioat/init.c   |    6 -
 drivers/dma/ioat/prep.c   |  105 ++++++++++++++
 drivers/nvdimm/pmem.c     |  340 ++++++++++++++++++++++++++++++++++++++++++---
 drivers/nvdimm/pmem.h     |    3 
 include/linux/dmaengine.h |   14 ++
 7 files changed, 488 insertions(+), 33 deletions(-)

--


Copyright © 2017, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds