[PATCH v7 0/9] libnvdimm: add DMA supported blk-mq pmem driver

2017-08-30 Thread Dave Jiang
mance that is good enough. Experimentations have been done on DRAM backed pmem block device that showed the utilization of DMA engine is beneficial. By default nd_pmem.ko will be loaded. This can be overridden through module blacklisting in order to load nd_pmem_dma.ko. --- Dave Jiang (9): d

Re: [v6,2/8] dmaengine: Add DMA_MEMCPY_SG transaction op

2017-08-30 Thread Dave Jiang
On 08/30/2017 11:18 AM, Robin Murphy wrote: > On 25/08/17 21:59, Dave Jiang wrote: >> Adding a dmaengine transaction operation that allows copy to/from a >> scatterlist and a flat buffer. > > Apologies if I'm late to the party, but doesn't DMA_SG already cover >

[PATCH v4] ndctl: daxctl: Adding io option for daxctl

2017-08-25 Thread Dave Jiang
The daxctl io option allows I/Os to be performed between file descriptor to and from device dax files. It also provides a way to zero a device dax device. i.e. daxctl io --input=/home/myfile --output=/dev/dax1.0 Signed-off-by: Dave Jiang --- v4: - Added documentation on size suffix suggested by

[PATCH v6 8/8] libnvdimm: Add blk-mq pmem driver

2017-08-25 Thread Dave Jiang
: 14100 MB/s 1594% CPUDMA Write: 20400 MB/s 446.9% CPU Also, due to a significant portion of the code being shared with the pmem driver, the common code are broken out into a kernel module called pmem_core to be shared between the two drivers. Signed-off-by: Dave Jiang Reviewed-by: Ross Zwisler

[PATCH v6 7/8] dmaengine: provide number of available channels

2017-08-25 Thread Dave Jiang
Adding a dmaengine support function to provide the number of available channels that can be shared with support of a filter function. Signed-off-by: Dave Jiang --- drivers/dma/dmaengine.c | 45 + include/linux/dmaengine.h |7 +++ 2 files

[PATCH v6 3/8] dmaengine: add verification of DMA_MEMSET_SG in dmaengine

2017-08-25 Thread Dave Jiang
DMA_MEMSET_SG is missing the verification of having the operation set and also a supporting function provided. Fixes: Commit 50c7cd2bd ("dmaengine: Add scatter-gathered memset") Signed-off-by: Dave Jiang --- drivers/dma/dmaengine.c |2 ++ 1 file changed, 2 insertions(+) di

[PATCH v6 4/8] dmaengine: ioatdma: dma_prep_memcpy_sg support

2017-08-25 Thread Dave Jiang
Adding ioatdma support to copy from a physically contiguous buffer to a provided scatterlist and vice versa. This is used to support reading/writing persistent memory in the pmem driver. Signed-off-by: Dave Jiang --- drivers/dma/ioat/dma.h |4 +++ drivers/dma/ioat/init.c |2 ++ drivers

[PATCH v6 6/8] dmaengine: add SG support to dmaengine_unmap

2017-08-25 Thread Dave Jiang
This provides support to unmap scatterlist with the dmaengine_unmap_data. We will support only 1 scatterlist per direction. Signed-off-by: Dave Jiang --- drivers/dma/dmaengine.c | 27 +++ include/linux/dmaengine.h | 13 - 2 files changed, 39 insertions

[PATCH v6 5/8] dmaengine: add function to provide per descriptor xfercap for dma engine

2017-08-25 Thread Dave Jiang
Adding a function that will export the transfer capability per descriptor for a DMA device for the dmaengine subsystem. Signed-off-by: Dave Jiang --- drivers/dma/ioat/init.c |1 + include/linux/dmaengine.h | 10 ++ 2 files changed, 11 insertions(+) diff --git a/drivers/dma/ioat

[PATCH v6 2/8] dmaengine: Add DMA_MEMCPY_SG transaction op

2017-08-25 Thread Dave Jiang
Adding a dmaengine transaction operation that allows copy to/from a scatterlist and a flat buffer. Signed-off-by: Dave Jiang --- Documentation/dmaengine/provider.txt |3 +++ drivers/dma/dmaengine.c |2 ++ include/linux/dmaengine.h| 19 +++ 3

[PATCH v6 0/8] libnvdimm: add DMA supported blk-mq pmem driver

2017-08-25 Thread Dave Jiang
performance that is good enough. Experimentations have been done on DRAM backed pmem block device that showed the utilization of DMA engine is beneficial. By default nd_pmem.ko will be loaded. This can be overridden through module blacklisting in order to load nd_pmem_dma.ko. --- Dave Jiang

[PATCH v6 1/8] dmaengine: ioatdma: revert 7618d035 to allow sharing of DMA channels

2017-08-25 Thread Dave Jiang
oatdma for blk-mq implementation of pmem we need as many channels we can share in order to be high performing. Thus reverting the patch. Signed-off-by: Dave Jiang --- drivers/dma/ioat/init.c |3 --- 1 file changed, 3 deletions(-) diff --git a/drivers/dma/ioat/init.c b/drivers/dma/ioat/in

Re: [PATCH v5 7/7] libnvdimm: Add blk-mq pmem driver

2017-08-23 Thread Dave Jiang
On 08/23/2017 11:39 AM, Dan Williams wrote: > On Mon, Aug 21, 2017 at 2:11 PM, Dave Jiang wrote: >> Adding a DMA supported blk-mq driver for pmem. > > "Add support for offloading pmem block-device I/O operations to a DMA engine." > >> This provide

[PATCH v3] ndctl: daxctl: Adding io option for daxctl

2017-08-23 Thread Dave Jiang
The daxctl io option allows I/Os to be performed between file descriptor to and from device dax files. It also provides a way to zero a device dax device. i.e. daxctl io --input=/home/myfile --output=/dev/dax1.0 Signed-off-by: Dave Jiang --- v3: - Added support for size suffix suggested by

[PATCH v2] ndctl: daxctl: Adding io option for daxctl

2017-08-22 Thread Dave Jiang
The daxctl io option allows I/Os to be performed between file descriptor to and from device dax files. It also provides a way to zero a device dax device. i.e. daxctl io --input=/home/myfile --output=/dev/dax1.0 Signed-off-by: Dave Jiang --- v2: - Removed dependency on ndctl to match device

[PATCH v5 6/7] dmaengine: add SG support to dmaengine_unmap

2017-08-21 Thread Dave Jiang
This provides support to unmap scatterlist with the dmaengine_unmap_data. We will support only 1 scatterlist per direction. Signed-off-by: Dave Jiang --- drivers/dma/dmaengine.c | 27 +++ include/linux/dmaengine.h | 13 - 2 files changed, 39 insertions

[PATCH v5 7/7] libnvdimm: Add blk-mq pmem driver

2017-08-21 Thread Dave Jiang
16 tasks queuedepth=16 CPU Read: 18100 MB/s 1588% CPUDMA Read: 21300 MB/s 180.9% CPU CPU Write: 14100 MB/s 1594% CPUDMA Write: 20400 MB/s 446.9% CPU Signed-off-by: Dave Jiang Reviewed-by: Ross Zwisler Signed-off-by: Dave Jiang --- drivers/nvdimm/Kconfig | 23 + drivers/nvd

[PATCH v5 4/7] dmaengine: ioatdma: dma_prep_memcpy_sg support

2017-08-21 Thread Dave Jiang
Adding ioatdma support to copy from a physically contiguous buffer to a provided scatterlist and vice versa. This is used to support reading/writing persistent memory in the pmem driver. Signed-off-by: Dave Jiang --- drivers/dma/ioat/dma.h |4 +++ drivers/dma/ioat/init.c |2 ++ drivers

[PATCH v5 3/7] dmaengine: add verification of DMA_MEMSET_SG in dmaengine

2017-08-21 Thread Dave Jiang
DMA_MEMSET_SG is missing the verification of having the operation set and also a supporting function provided. Fixes: Commit 50c7cd2bd ("dmaengine: Add scatter-gathered memset") Signed-off-by: Dave Jiang --- drivers/dma/dmaengine.c |2 ++ 1 file changed, 2 insertions(+) di

[PATCH v5 5/7] dmaengine: add function to provide per descriptor xfercap for dma engine

2017-08-21 Thread Dave Jiang
Adding a function that will export the transfer capability per descriptor for a DMA device for the dmaengine subsystem. Signed-off-by: Dave Jiang --- drivers/dma/ioat/init.c |1 + include/linux/dmaengine.h | 10 ++ 2 files changed, 11 insertions(+) diff --git a/drivers/dma/ioat

[PATCH v5 2/7] dmaengine: Add DMA_MEMCPY_SG transaction op

2017-08-21 Thread Dave Jiang
Adding a dmaengine transaction operation that allows copy to/from a scatterlist and a flat buffer. Signed-off-by: Dave Jiang --- Documentation/dmaengine/provider.txt |3 +++ drivers/dma/dmaengine.c |2 ++ include/linux/dmaengine.h| 19 +++ 3

[PATCH v5 1/7] dmaengine: ioatdma: revert 7618d035 to allow sharing of DMA channels

2017-08-21 Thread Dave Jiang
oatdma for blk-mq implementation of pmem we need as many channels we can share in order to be high performing. Thus reverting the patch. Signed-off-by: Dave Jiang --- drivers/dma/ioat/init.c |3 --- 1 file changed, 3 deletions(-) diff --git a/drivers/dma/ioat/init.c b/drivers/dma/ioat/in

[PATCH v5 0/7] libnvdimm: add DMA support for pmem blk-mq

2017-08-21 Thread Dave Jiang
listing in order to load nd_pmem_mq.ko. --- Dave Jiang (7): dmaengine: ioatdma: revert 7618d035 to allow sharing of DMA channels dmaengine: Add DMA_MEMCPY_SG transaction op dmaengine: add verification of DMA_MEMSET_SG in dmaengine dmaengine: ioatdma: dma_prep_memcpy_

Re: [PATCH v2 5/5] libnvdimm: add DMA support for pmem blk-mq

2017-08-16 Thread Dave Jiang
On 08/16/2017 10:20 AM, Dan Williams wrote: > On Wed, Aug 16, 2017 at 10:16 AM, Dave Jiang wrote: >> >> >> On 08/16/2017 10:06 AM, Dan Williams wrote: >>> On Wed, Aug 16, 2017 at 9:50 AM, Vinod Koul wrote: >>>> On Thu, Aug 03, 2017 at 09:14:13AM -070

Re: [PATCH v2 5/5] libnvdimm: add DMA support for pmem blk-mq

2017-08-16 Thread Dave Jiang
On 08/16/2017 10:06 AM, Dan Williams wrote: > On Wed, Aug 16, 2017 at 9:50 AM, Vinod Koul wrote: >> On Thu, Aug 03, 2017 at 09:14:13AM -0700, Dan Williams wrote: >> Do we need a new API / new function, or new capability? > Hmmm...you are right. I wonder if we need somethi

Re: [PATCH v4 8/8] libnvdimm: add DMA support for pmem blk-mq

2017-08-11 Thread Dave Jiang
On 08/11/2017 04:04 AM, Christoph Hellwig wrote: > On Mon, Aug 07, 2017 at 09:39:59AM -0700, Dave Jiang wrote: >> +static int queue_mode = PMEM_Q_MQ; > > So this changes the default for everyone. How about those systems > without dma engine? The code requests a

Re: [PATCH v4 7/8] libnvdimm: Adding blk-mq support to the pmem driver

2017-08-11 Thread Dave Jiang
On 08/11/2017 03:57 AM, Christoph Hellwig wrote: > On Mon, Aug 07, 2017 at 09:39:53AM -0700, Dave Jiang wrote: >> Adding blk-mq support to the pmem driver in addition to the direct bio >> support. > > Can you explain why this is only done for pmem and not btt and nd_blk?

Re: [PATCH v4 2/8] dmaengine: change transaction type DMA_SG to DMA_SG_SG

2017-08-10 Thread Dave Jiang
On 08/10/2017 12:05 PM, Dan Williams wrote: > On Thu, Aug 10, 2017 at 9:22 AM, Dave Jiang wrote: >> >> >> On 08/09/2017 07:20 PM, Dan Williams wrote: >>> On Wed, Aug 9, 2017 at 7:15 PM, Dan Williams >>> wrote: >>>> On Mon, Aug 7, 2017 at

Re: [PATCH v4 2/8] dmaengine: change transaction type DMA_SG to DMA_SG_SG

2017-08-10 Thread Dave Jiang
On 08/09/2017 07:20 PM, Dan Williams wrote: > On Wed, Aug 9, 2017 at 7:15 PM, Dan Williams wrote: >> On Mon, Aug 7, 2017 at 9:39 AM, Dave Jiang wrote: >>> In preparation of adding an API to perform SG to/from buffer for dmaengine, >>> we will change DMA_SG to DMA_S

Re: [PATCH v4 3/8] dmaengine: Add DMA_MEMCPY_SG transaction op

2017-08-08 Thread Dave Jiang
On 08/08/2017 06:16 AM, Sinan Kaya wrote: > Hi Dave, > > On 8/7/2017 12:39 PM, Dave Jiang wrote: >> Adding a dmaengine transaction operation that allows copy to/from a >> scatterlist and a flat buffer. >> >> Signed-off-by: Dave Jiang >> --- >>

[PATCH v4 8/8] libnvdimm: add DMA support for pmem blk-mq

2017-08-07 Thread Dave Jiang
446.9% CPU Signed-off-by: Dave Jiang Reviewed-by: Ross Zwisler --- drivers/nvdimm/pmem.c | 214 +++-- 1 file changed, 204 insertions(+), 10 deletions(-) diff --git a/drivers/nvdimm/pmem.c b/drivers/nvdimm/pmem.c index 519b949..8eeb646 100644 --- a

[PATCH v4 7/8] libnvdimm: Adding blk-mq support to the pmem driver

2017-08-07 Thread Dave Jiang
Adding blk-mq support to the pmem driver in addition to the direct bio support. This allows for hardware offloading via DMA engines. By default the bio method will be enabled. The blk-mq support can be turned on via module parameter queue_mode=1. Signed-off-by: Dave Jiang Reviewed-by: Ross

[PATCH v4 6/8] dmaengine: add SG support to dmaengine_unmap

2017-08-07 Thread Dave Jiang
This should provide support to unmap scatterlist with the dmaengine_unmap_data. We will support only 1 scatterlist per direction. The DMA addresses array has been overloaded for the 2 or less entries DMA unmap data structure in order to store the SG pointer(s). Signed-off-by: Dave Jiang

[PATCH v4 5/8] dmaengine: ioatdma: dma_prep_memcpy_sg support

2017-08-07 Thread Dave Jiang
Adding ioatdma support to copy from a physically contiguous buffer to a provided scatterlist and vice versa. This is used to support reading/writing persistent memory in the pmem driver. Signed-off-by: Dave Jiang --- drivers/dma/ioat/dma.h |4 +++ drivers/dma/ioat/init.c |2 ++ drivers

[PATCH v4 4/8] dmaengine: add verification of DMA_MEMSET_SG in dmaengine

2017-08-07 Thread Dave Jiang
DMA_MEMSET_SG is missing the verification of having the operation set and also a supporting function provided. Fixes: Commit 50c7cd2bd ("dmaengine: Add scatter-gathered memset") Signed-off-by: Dave Jiang --- drivers/dma/dmaengine.c |2 ++ 1 file changed, 2 insertions(+) di

[PATCH v4 3/8] dmaengine: Add DMA_MEMCPY_SG transaction op

2017-08-07 Thread Dave Jiang
Adding a dmaengine transaction operation that allows copy to/from a scatterlist and a flat buffer. Signed-off-by: Dave Jiang --- Documentation/dmaengine/provider.txt |3 +++ drivers/dma/dmaengine.c |2 ++ include/linux/dmaengine.h|6 ++ 3 files changed

[PATCH v4 2/8] dmaengine: change transaction type DMA_SG to DMA_SG_SG

2017-08-07 Thread Dave Jiang
In preparation of adding an API to perform SG to/from buffer for dmaengine, we will change DMA_SG to DMA_SG_SG in order to explicitly making clear what this op type is for. Signed-off-by: Dave Jiang --- Documentation/dmaengine/provider.txt |2 +- drivers/crypto/ccp/ccp-dmaengine.c |2

[PATCH v4 0/8] Adding blk-mq and DMA support to pmem block driver

2017-08-07 Thread Dave Jiang
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 (8): dmaengine: ioatdma

[PATCH v4 1/8] dmaengine: ioatdma: revert 7618d035 to allow sharing of DMA channels

2017-08-07 Thread Dave Jiang
oatdma for blk-mq implementation of pmem we need as many channels we can share in order to be high performing. Thus reverting the patch. Signed-off-by: Dave Jiang --- drivers/dma/ioat/init.c |3 --- 1 file changed, 3 deletions(-) diff --git a/drivers/dma/ioat/init.c b/drivers/dma/ioat/in

[PATCH v3 3/8] dmaengine: Add DMA_MEMCPY_SG transaction op

2017-08-03 Thread Dave Jiang
Adding a dmaengine transaction operation that allows copy to/from a scatterlist and a flat buffer. Signed-off-by: Dave Jiang --- Documentation/dmaengine/provider.txt |3 +++ drivers/dma/dmaengine.c |2 ++ include/linux/dmaengine.h|6 ++ 3 files changed

[PATCH v3 4/8] dmaengine: add verification of DMA_MEMSET_SG in dmaengine

2017-08-03 Thread Dave Jiang
DMA_MEMSET_SG is missing the verification of having the operation set and also a supporting function provided. Fixes: Commit 50c7cd2bd ("dmaengine: Add scatter-gathered memset") Signed-off-by: Dave Jiang --- drivers/dma/dmaengine.c |2 ++ 1 file changed, 2 insertions(+) di

[PATCH v3 8/8] libnvdimm: add DMA support for pmem blk-mq

2017-08-03 Thread Dave Jiang
446.9% CPU Signed-off-by: Dave Jiang Reviewed-by: Ross Zwisler --- drivers/nvdimm/pmem.c | 214 +++-- 1 file changed, 204 insertions(+), 10 deletions(-) diff --git a/drivers/nvdimm/pmem.c b/drivers/nvdimm/pmem.c index 519b949..3ad78e3 100644 --- a

[PATCH v3 6/8] dmaengine: add SG support to dmaengine_unmap

2017-08-03 Thread Dave Jiang
This should provide support to unmap scatterlist with the dmaengine_unmap_data. We will support only 1 scatterlist per direction. The DMA addresses array has been overloaded for the 2 or less entries DMA unmap data structure in order to store the SG pointer(s). Signed-off-by: Dave Jiang

[PATCH v3 7/8] libnvdimm: Adding blk-mq support to the pmem driver

2017-08-03 Thread Dave Jiang
Adding blk-mq support to the pmem driver in addition to the direct bio support. This allows for hardware offloading via DMA engines. By default the bio method will be enabled. The blk-mq support can be turned on via module parameter queue_mode=1. Signed-off-by: Dave Jiang Reviewed-by: Ross

[PATCH v3 0/8] Adding blk-mq and DMA support to pmem block driver

2017-08-03 Thread Dave Jiang
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 (8): dmaengine: ioatdma: revert 7618d035 to allow sharing of DMA channels dmaengine: change

[PATCH v3 5/8] dmaengine: ioatdma: dma_prep_memcpy_sg support

2017-08-03 Thread Dave Jiang
Adding ioatdma support to copy from a physically contiguous buffer to a provided scatterlist and vice versa. This is used to support reading/writing persistent memory in the pmem driver. Signed-off-by: Dave Jiang --- drivers/dma/ioat/dma.h |4 +++ drivers/dma/ioat/init.c |2 ++ drivers

[PATCH v3 2/8] dmaengine: change transaction type DMA_SG to DMA_SG_SG

2017-08-03 Thread Dave Jiang
In preparation of adding an API to perform SG to/from buffer for dmaengine, we will change DMA_SG to DMA_SG_SG in order to explicitly making clear what this op type is for. Signed-off-by: Dave Jiang --- Documentation/dmaengine/provider.txt |2 +- drivers/crypto/ccp/ccp-dmaengine.c |2

[PATCH v3 1/8] dmaengine: ioatdma: revert 7618d035 to allow sharing of DMA channels

2017-08-03 Thread Dave Jiang
oatdma for blk-mq implementation of pmem we need as many channels we can share in order to be high performing. Thus reverting the patch. Signed-off-by: Dave Jiang --- drivers/dma/ioat/init.c |3 --- 1 file changed, 3 deletions(-) diff --git a/drivers/dma/ioat/init.c b/drivers/dma/ioat/in

Re: [PATCH v2 5/5] libnvdimm: add DMA support for pmem blk-mq

2017-08-03 Thread Dave Jiang
t;> On Thu, Aug 03, 2017 at 11:06:13AM +0530, Jiang, Dave wrote: >>>>> >>>>> >>>>>>> On Aug 2, 2017, at 10:25 PM, Koul, Vinod wrote: >>>>>>> >>>>>>> On Thu, Aug 03, 2017 at 10:41:51AM +0530, Jiang, Dave

Re: [PATCH 5/5] libnvdimm: add DMA support for pmem blk-mq

2017-08-03 Thread Dave Jiang
On 08/03/2017 08:41 AM, Dan Williams wrote: > On Thu, Aug 3, 2017 at 1:06 AM, Johannes Thumshirn wrote: >> On Tue, Aug 01, 2017 at 10:43:30AM -0700, Dan Williams wrote: >>> On Tue, Aug 1, 2017 at 12:34 AM, Johannes Thumshirn >>> wrote: >>>> Dave Jiang

Re: [PATCH v2 5/5] libnvdimm: add DMA support for pmem blk-mq

2017-08-02 Thread Dave Jiang
On 08/02/2017 02:10 PM, Sinan Kaya wrote: > On 8/2/2017 4:52 PM, Dave Jiang wrote: >>> Do we need a new API / new function, or new capability? >> Hmmm...you are right. I wonder if we need something like DMA_SG cap >> >> > > Unfortunately, DMA_SG

Re: [PATCH v2 5/5] libnvdimm: add DMA support for pmem blk-mq

2017-08-02 Thread Dave Jiang
On 08/02/2017 12:22 PM, Sinan Kaya wrote: > On 8/2/2017 2:41 PM, Dave Jiang wrote: >> if (queue_mode == PMEM_Q_MQ) { >> +chan = dma_find_channel(DMA_MEMCPY); >> +if (!chan) { >> +queue_mode = PMEM_Q_BIO; >>

[PATCH v2 3/5] dmaengine: add SG support to dmaengine_unmap

2017-08-02 Thread Dave Jiang
This should provide support to unmap scatterlist with the dmaengine_unmap_data. We will support only 1 scatterlist per direction. The DMA addresses array has been overloaded for the 2 or less entries DMA unmap data structure in order to store the SG pointer(s). Signed-off-by: Dave Jiang

[PATCH v2 1/5] dmaengine: ioatdma: revert 7618d035 to allow sharing of DMA channels

2017-08-02 Thread Dave Jiang
oatdma for blk-mq implementation of pmem we need as many channels we can share in order to be high performing. Thus reverting the patch. Signed-off-by: Dave Jiang --- drivers/dma/ioat/init.c |3 --- 1 file changed, 3 deletions(-) diff --git a/drivers/dma/ioat/init.c b/drivers/dma/ioat/in

[PATCH v2 5/5] libnvdimm: add DMA support for pmem blk-mq

2017-08-02 Thread Dave Jiang
446.9% CPU Signed-off-by: Dave Jiang --- drivers/nvdimm/pmem.c | 214 +++-- 1 file changed, 204 insertions(+), 10 deletions(-) diff --git a/drivers/nvdimm/pmem.c b/drivers/nvdimm/pmem.c index 98e752f..c8f7a2f 100644 --- a/drivers/nvdimm/pmem.c +++ b

[PATCH v2 4/5] libnvdimm: Adding blk-mq support to the pmem driver

2017-08-02 Thread Dave Jiang
Adding blk-mq support to the pmem driver in addition to the direct bio support. This allows for hardware offloading via DMA engines. By default the bio method will be enabled. The blk-mq support can be turned on via module parameter queue_mode=1. Signed-off-by: Dave Jiang --- drivers/nvdimm

[PATCH v2 2/5] dmaengine: ioatdma: dma_prep_memcpy_sg support

2017-08-02 Thread Dave Jiang
Adding ioatdma support to copy from a physically contiguos buffer to a provided scatterlist and vice versa. This is used to support reading/writing persistent memory in the pmem driver. Signed-off-by: Dave Jiang --- drivers/dma/ioat/dma.h|4 +++ drivers/dma/ioat/init.c |1

[PATCH v2 0/5] Adding blk-mq and DMA support to pmem block driver

2017-08-02 Thread Dave Jiang
. 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

Re: [PATCH 5/5] libnvdimm: add DMA support for pmem blk-mq

2017-08-01 Thread Dave Jiang
On 08/01/2017 12:34 AM, Johannes Thumshirn wrote: > Dave Jiang writes: > >> Adding DMA support for pmem blk reads. This provides signficant CPU >> reduction with large memory reads with good performance. DMAs are triggered >> with test against bio_multiple_segment(),

Re: [PATCH 2/5] dmaengine: ioatdma: dma_prep_memcpy_to/from_sg support

2017-08-01 Thread Dave Jiang
On 07/31/2017 07:14 PM, Dan Williams wrote: > On Mon, Jul 31, 2017 at 3:24 PM, Dave Jiang wrote: >> Adding ioatdma support to copy from a physically contiguos buffer to a >> provided scatterlist and vice versa. This is used to support >> reading/writing persistent memo

[PATCH 5/5] libnvdimm: add DMA support for pmem blk-mq

2017-07-31 Thread Dave Jiang
446.9% CPU Signed-off-by: Dave Jiang --- drivers/nvdimm/pmem.c | 225 + 1 file changed, 208 insertions(+), 17 deletions(-) diff --git a/drivers/nvdimm/pmem.c b/drivers/nvdimm/pmem.c index 347835b..02ca9f0 100644 --- a/drivers/nvdimm/pmem.c +++ b

[PATCH 3/5] dmaengine: add SG support to dmaengine_unmap

2017-07-31 Thread Dave Jiang
This should provide support to unmap scatterlist with the dmaengine_unmap_data. We will support only 1 scatterlist per direction. The DMA addresses array has been overloaded for the 2 or less entries DMA unmap data structure in order to store the SG pointer(s). Signed-off-by: Dave Jiang

[PATCH 4/5] libnvdimm: Adding blk-mq support to the pmem driver

2017-07-31 Thread Dave Jiang
Adding blk-mq support to the pmem driver in addition to the direct bio support. This allows for hardware offloading via DMA engines. By default the bio method will be enabled. The blk-mq support can be turned on via module parameter queue_mode=1. Signed-off-by: Dave Jiang --- drivers/nvdimm

[PATCH 2/5] dmaengine: ioatdma: dma_prep_memcpy_to/from_sg support

2017-07-31 Thread Dave Jiang
Adding ioatdma support to copy from a physically contiguos buffer to a provided scatterlist and vice versa. This is used to support reading/writing persistent memory in the pmem driver. Signed-off-by: Dave Jiang --- drivers/dma/ioat/dma.h|8 +++ drivers/dma/ioat/init.c |3

[PATCH 1/5] dmaengine: ioatdma: revert 7618d035 to allow sharing of DMA channels

2017-07-31 Thread Dave Jiang
oatdma for blk-mq implementation of pmem we need as many channels we can share in order to be high performing. Thus reverting the patch. Signed-off-by: Dave Jiang --- drivers/dma/ioat/init.c |3 --- 1 file changed, 3 deletions(-) diff --git a/drivers/dma/ioat/init.c b/drivers/dma/ioat/in

[PATCH 0/5] Adding blk-mq and DMA support to pmem block driver

2017-07-31 Thread Dave Jiang
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

Re: [ndctl PATCH] ndctl, list: always show 'name' if it is available

2017-07-21 Thread Dave Jiang
On 07/21/2017 12:15 PM, Linda Knippers wrote: > > > On 07/21/2017 02:39 PM, Dan Williams wrote: >> The user-friendly name of a namespace should always be emitted. > > Thanks! > > When running your master branch I was getting this: > > { > "dev":"namespace1.12", > "mode":"memory", >

[PATCH] ndctl: daxctl: Adding io option for daxctl

2017-06-15 Thread Dave Jiang
The daxctl io option allows I/Os to be performed between block/file to and from device dax files. It also provides a way to zero a device dax device. i.e. daxctl io --input=/home/myfile --output=/dev/dax1.0 Signed-off-by: Dave Jiang --- Documentation/Makefile.am |3 Documentation/daxctl

[PATCH] ndctl: fix uninitialized bb_count in list command

2017-06-07 Thread Dave Jiang
bb_count would be 0 if util_region_badblocks_to_json() returns NULL. Initialize bb_count to 0 by default. Reported-by: Andy Rudoff Signed-off-by: Dave Jiang --- ndctl/list.c |2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ndctl/list.c b/ndctl/list.c index 4d5050c

[PATCH] ndctl: add numa_node to --list command

2017-05-31 Thread Dave Jiang
Adding numa_node of a namesapce to the --list command. If numa_node is -1, numa_node will not be display as there's no NUMA node. Signed-off-by: Dave Jiang --- util/json.c |8 1 file changed, 8 insertions(+) diff --git a/util/json.c b/util/json.c index b718d74..a9b733a 1

[PATCH] ndctl: add list -M documentation

2017-05-11 Thread Dave Jiang
Adding the list --media-errors option to documentation. Signed-off-by: Dave Jiang --- Documentation/ndctl-list.txt | 29 + 1 file changed, 29 insertions(+) diff --git a/Documentation/ndctl-list.txt b/Documentation/ndctl-list.txt index 444a6f9..0ac08a8 100644 --- a

[PATCH v7] ndctl: add list --media-errors support

2017-05-11 Thread Dave Jiang
come later. Signed-off-by: Dave Jiang Reviewed-by: Vishal Verma --- v2: added fix to badblocks display from Toshi's testing result. v3: fixed naming issues from Dan's comments. fixed badblocks boundary offset calculations from Toshi's testing. v4: Add indicator to show ba

Re: [PATCH v6] ndctl: add list --media-errors support

2017-05-11 Thread Dave Jiang
On 05/11/2017 11:25 AM, Kani, Toshimitsu wrote: > On Thu, 2017-05-11 at 11:01 -0700, Dave Jiang wrote: >> ACPI NFIT enabled platforms provide media errors as absolute phyiscal >> address offsets. Add an option to ndctl to display those media errors >> tranlsated to region

[PATCH v6] ndctl: add list --media-errors support

2017-05-11 Thread Dave Jiang
come later. Signed-off-by: Dave Jiang Reviewed-by: Vishal Verma --- v2: added fix to badblocks display from Toshi's testing result. v3: fixed naming issues from Dan's comments. fixed badblocks boundary offset calculations from Toshi's testing. v4: Add indicator to show ba

Re: [PATCH v5 2/2] ndctl: add list --media-errors support

2017-05-11 Thread Dave Jiang
On 05/11/2017 10:48 AM, Kani, Toshimitsu wrote: > On Thu, 2017-05-11 at 10:37 -0700, Dave Jiang wrote: >> ACPI NFIT enabled platforms provide media errors as absolute phyiscal >> address offsets. Add an option to ndctl to display those media errors >> tranlsated to region

[PATCH v5 2/2] ndctl: add list --media-errors support

2017-05-11 Thread Dave Jiang
come later. Signed-off-by: Dave Jiang --- v2: added fix to badblocks display from Toshi's testing result. v3: fixed naming issues from Dan's comments. fixed badblocks boundary offset calculations from Toshi's testing. v4: Add indicator to show badblocks exist or not, per Tosh

[PATCH v5 1/2] ndctl: add foreach helper for region badblocks in libndctl

2017-05-11 Thread Dave Jiang
The helper function allow iteration through the badblocks file that's part of the region sysfs attributes. This will support the region list badblocks code that's coming. Signed-off-by: Dave Jiang --- v2: added cleanup of opened badblocks file, from Dan's comments. v3: fixed inco

Re: [PATCH v4 2/2] ndctl: add list --media-errors support

2017-05-11 Thread Dave Jiang
On 05/11/2017 08:31 AM, Kani, Toshimitsu wrote: > On Wed, 2017-05-10 at 16:57 -0700, Dave Jiang wrote: >> ACPI NFIT enabled platforms provide media errors as absolute phyiscal >> address offsets. Add an option to ndctl to display those media errors >> tranlsated to region

[PATCH v4 2/2] ndctl: add list --media-errors support

2017-05-10 Thread Dave Jiang
come later. Signed-off-by: Dave Jiang --- v2: added fix to badblocks display from Toshi's testing result. v3: fixed naming issues from Dan's comments. fixed badblocks boundary offset calculations from Toshi's testing. v4: Add indicator to show badblocks exist or not, per Toshi&#

[PATCH v4 1/2] ndctl: add foreach helper for region badblocks in libndctl

2017-05-10 Thread Dave Jiang
The helper function allow iteration through the badblocks file that's part of the region sysfs attributes. This will support the region list badblocks code that's coming. Signed-off-by: Dave Jiang --- v2: added cleanup of opened badblocks file, from Dan's comments. v3: fixed inco

Re: [PATCH v3 2/2] ndctl: add list --media-errors support

2017-05-10 Thread Dave Jiang
On 05/10/2017 02:28 PM, Kani, Toshimitsu wrote: > On Wed, 2017-05-10 at 14:13 -0700, Dave Jiang wrote: >> >> On 05/10/2017 01:57 PM, Kani, Toshimitsu wrote: >>> On Wed, 2017-05-10 at 12:56 -0700, Dave Jiang wrote: >>>> >>>> On 05/10/2017 11:43 A

Re: [PATCH v3 2/2] ndctl: add list --media-errors support

2017-05-10 Thread Dave Jiang
On 05/10/2017 01:57 PM, Kani, Toshimitsu wrote: > On Wed, 2017-05-10 at 12:56 -0700, Dave Jiang wrote: >> >> On 05/10/2017 11:43 AM, Kani, Toshimitsu wrote: >>> On Wed, 2017-05-10 at 11:03 -0700, Dave Jiang wrote: >>>> ACPI NFIT enabled platforms provide me

Re: [PATCH v3 2/2] ndctl: add list --media-errors support

2017-05-10 Thread Dave Jiang
On 05/10/2017 11:43 AM, Kani, Toshimitsu wrote: > On Wed, 2017-05-10 at 11:03 -0700, Dave Jiang wrote: >> ACPI NFIT enabled platforms provide media errors as absolute phyiscal >> address offsets. Add an option to ndctl to display those media errors >> tranlsated to region

[PATCH v3 2/2] ndctl: add list --media-errors support

2017-05-10 Thread Dave Jiang
ACPI NFIT enabled platforms provide media errors as absolute phyiscal address offsets. Add an option to ndctl to display those media errors tranlsated to region and namespace device level offsets in an "ndctl list" listing. Signed-off-by: Dave Jiang --- v2: added fix to badblocks di

[PATCH v3 1/2] ndctl: add foreach helper for region badblocks in libndctl

2017-05-10 Thread Dave Jiang
The helper function allow iteration through the badblocks file that's part of the region sysfs attributes. This will support the region list badblocks code that's coming. Signed-off-by: Dave Jiang --- v2: added cleanup of opened badblocks file from Dan's comments. v3: fixed inco

Re: [PATCH v2 2/2] ndctl: add list --media-errors support

2017-05-10 Thread Dave Jiang
On 05/10/2017 07:50 AM, Kani, Toshimitsu wrote: > On Tue, 2017-05-09 at 16:31 -0700, Dave Jiang wrote: >> Adding option for ndctl list command to show badblocks for region and >> device. The device badblocks are calculated from the region >> badblocks. >> This allows the

[PATCH v2 2/2] ndctl: add list --media-errors support

2017-05-09 Thread Dave Jiang
Adding option for ndctl list command to show badblocks for region and device. The device badblocks are calculated from the region badblocks. This allows the user to provide the proper badblock offset and length for clearing later on. Signed-off-by: Dave Jiang --- v2: added fix to badblocks

[PATCH v2 1/2] ndctl: add foreach helper for region badblocks in libndctl

2017-05-09 Thread Dave Jiang
The helper function allow iteration through the badblocks file that's part of the region sysfs attributes. This will support the region list badblocks code that's coming. Signed-off-by: Dave Jiang --- v2: added cleanup of opened badblocks file from Dan's comments. ndctl

Re: [PATCH 2/2] ndctl: add list --media-errors support

2017-05-09 Thread Dave Jiang
On 05/09/2017 09:55 AM, Kani, Toshimitsu wrote: > On Mon, 2017-05-08 at 16:04 -0700, Dave Jiang wrote: >> Adding option for ndctl list command to show badblocks for region and >> device. The device badblocks are calculated from the region >> badblocks. This allows the user

[PATCH 1/2] ndctl: add foreach helper for region badblocks in libndctl

2017-05-08 Thread Dave Jiang
The helper function allow iteration through the badblocks file that's part of the region sysfs attributes. This will support the region list badblocks code that's coming. Signed-off-by: Dave Jiang --- ndctl/lib/libndctl.c | 72

[PATCH 2/2] ndctl: add list --media-errors support

2017-05-08 Thread Dave Jiang
Adding option for ndctl list command to show badblocks for region and device. The device badblocks are calculated from the region badblocks. This allows the user to provide the proper badblock offset and length for clearing later on. Signed-off-by: Dave Jiang --- ndctl/list.c | 17

Re: [PATCH v6 2/3] ndctl: add list-errors support

2017-05-05 Thread Dave Jiang
On 05/05/2017 10:21 AM, Kani, Toshimitsu wrote: > On Fri, 2017-05-05 at 10:14 -0700, Dave Jiang wrote: >> >> On 05/05/2017 10:07 AM, Kani, Toshimitsu wrote: >>> On Thu, 2017-05-04 at 14:49 -0700, Dave Jiang wrote: >>>> Adding list-errors command to support

Re: [PATCH v6 2/3] ndctl: add list-errors support

2017-05-05 Thread Dave Jiang
On 05/05/2017 10:07 AM, Kani, Toshimitsu wrote: > On Thu, 2017-05-04 at 14:49 -0700, Dave Jiang wrote: >> Adding list-errors command to support displaying of all badblocks in >> relation to the device rather than the region. This allows the user >> to know what badblocks

[PATCH v6 3/3] ndctl: add test for clear-error

2017-05-04 Thread Dave Jiang
Adding unit test for ndctl clear-error (and list-errors) Signed-off-by: Dave Jiang --- test/Makefile.am |1 + test/ndctl-clear-error-dax.sh | 66 + 2 files changed, 67 insertions(+) create mode 100755 test/ndctl-clear-error-dax.sh

[PATCH v6 1/3] ndctl: add clear-error to ndctl for device dax

2017-05-04 Thread Dave Jiang
Adding ndctl support that will allow clearing of bad blocks for a device. Initial implementation will only support device dax devices. The ndctl takes a device path and parameters of the starting bad block, and the number of bad blocks to clear. Signed-off-by: Dave Jiang --- Documentation/ndctl

[PATCH v6 0/3] ndctl: add error clearing support for dev dax

2017-05-04 Thread Dave Jiang
badblock coverage. v5: Address comments from Toshi - Made -l 0 to error out and no length means 1 block cleared. v6: Address comments from Dan - Fixed clear-error to be based off of device instead of region. - Added list-errors command to ndctl Dave Jiang (3): ndctl: add clear-error to ndctl for

[PATCH v6 2/3] ndctl: add list-errors support

2017-05-04 Thread Dave Jiang
Adding list-errors command to support displaying of all badblocks in relation to the device rather than the region. This allows the user to know what badblocks to pass in when doing clear-error calls. Signed-off-by: Dave Jiang --- Documentation/ndctl-list-errors.txt | 26 +++ builtin.h

Re: [RFC PATCH] dax: add badblocks check to Device DAX

2017-05-03 Thread Dave Jiang
On 05/03/2017 02:48 PM, Dan Williams wrote: > On Wed, May 3, 2017 at 11:46 AM, Kani, Toshimitsu wrote: >> On Wed, 2017-05-03 at 09:30 -0700, Dan Williams wrote: >>> On Wed, May 3, 2017 at 9:09 AM, Kani, Toshimitsu >>> wrote: On Wed, 2017-05-03 at 08:52 -0700, Dan Williams wrote: > On Wed

Re: [PATCH v5] ndctl: add clear error support for ndctl

2017-05-02 Thread Dave Jiang
On 05/02/2017 04:54 PM, Vishal Verma wrote: > On 05/02, Dave Jiang wrote: >> Adding ndctl support that will allow clearing of bad blocks for a device. >> Initial implementation will only support device dax devices. The ndctl >> takes a device path and parameters of the starti

[PATCH v5] ndctl: add clear error support for ndctl

2017-05-02 Thread Dave Jiang
Adding ndctl support that will allow clearing of bad blocks for a device. Initial implementation will only support device dax devices. The ndctl takes a device path and parameters of the starting bad block, and the number of bad blocks to clear. Signed-off-by: Dave Jiang --- v2: Addressed

<    3   4   5   6   7   8   9   10   >