[PATCH] lightnvm: pblk: add asynchronous partial read

2018-06-11 Thread Heiner Litz
In the read path, partial reads are currently performed synchronously which affects performance for workloads that generate many partial reads. This patch adds an asynchronous partial read path as well as the required partial read ctx. Signed-off-by: Heiner Litz --- drivers/lightnvm/pblk-read.c

[RESEND PATCH] lightnvm: pblk: add asynchronous partial read

2018-06-18 Thread Heiner Litz
In the read path, partial reads are currently performed synchronously which affects performance for workloads that generate many partial reads. This patch adds an asynchronous partial read path as well as the required partial read ctx. Signed-off-by: Heiner Litz --- drivers/lightnvm/pblk-read.c

Re: [PATCH] lightnvm: pblk: add asynchronous partial read

2018-06-15 Thread Heiner Litz
ier Gonzalez wrote: > >>> On 11 Jun 2018, at 22.53, Heiner Litz wrote: > >>> > >>> In the read path, partial reads are currently performed synchronously > >>> which affects performance for workloads that generate many partial > >>> reads. This patc

Re: [RESEND PATCH] lightnvm: pblk: add asynchronous partial read

2018-06-26 Thread Heiner Litz
6 PM, Heiner Litz wrote: > > In the read path, partial reads are currently performed synchronously > > which affects performance for workloads that generate many partial > > reads. This patch adds an asynchronous partial read path as well as > > the required partial read ctx

Re: [RESEND PATCH] lightnvm: pblk: add asynchronous partial read

2018-06-26 Thread Heiner Litz
On Fri, Jun 22, 2018 at 11:17 AM Matias Bjørling wrote: > > On 06/18/2018 07:56 PM, Heiner Litz wrote: > > In the read path, partial reads are currently performed synchronously > > which affects performance for workloads that generate many partial > > reads. This pa

[PATCH] lightnvm: pblk: Add read memory barrier when reading from rb

2018-06-20 Thread Heiner Litz
/Documentation/memory-barriers.txt Signed-off-by: Heiner Litz --- drivers/lightnvm/pblk-rb.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/drivers/lightnvm/pblk-rb.c b/drivers/lightnvm/pblk-rb.c index a81a97e..5f09983 100644 --- a/drivers/lightnvm/pblk-rb.c +++ b/drivers/lightnvm/pblk-rb.c @@ -545,6

Re: [PATCH] lightnvm: pblk: Add read memory barrier when reading from rb

2018-07-03 Thread Heiner Litz
e proposed smp_rmb() is not required for x86 but it may be for ARM. On Thu, Jun 28, 2018 at 10:15 AM Javier Gonzalez wrote: > > > On 28 Jun 2018, at 09.59, Matias Bjørling wrote: > > > > On 06/28/2018 01:31 AM, Heiner Litz wrote: > >> There is a control dependency b

[PATCH] lightnvm: fix bad block initialization

2018-02-22 Thread Heiner Litz
fix reading bad block device information to correctly setup the per line blk_bitmap during lightnvm initialization Signed-off-by: Heiner Litz <hl...@ucsc.edu> --- drivers/lightnvm/pblk-init.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/drivers/lightnvm/pblk-in

[PATCH][RESEND] lightnvm: Avoid validation of default op value

2018-02-26 Thread Heiner Litz
Fixes: 38401d231de65 ("lightnvm: set target over-provision on create ioctl") Signed-off-by: Heiner Litz <hl...@ucsc.edu> --- drivers/lightnvm/core.c | 6 ++ 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/drivers/lightnvm/core.c b/drivers/lightnvm/core.c in

[PATCH v3] lightnvm: pblk: add asynchronous partial read

2018-07-06 Thread Heiner Litz
In the read path, partial reads are currently performed synchronously which affects performance for workloads that generate many partial reads. This patch adds an asynchronous partial read path as well as the required partial read ctx. Signed-off-by: Heiner Litz --- v3: rebase to head

Re: [PATCH v3] lightnvm: pblk: add asynchronous partial read

2018-07-08 Thread Heiner Litz
Thank you Igor! Nice catch. If this is the only issue I'll send another patch. On Fri, Jul 6, 2018 at 7:51 PM Igor Konopko wrote: > > > > On 06.07.2018 05:18, Matias Bjørling wrote: > > On 07/06/2018 12:12 PM, Heiner Litz wrote: > >> In the read path, partial re

[PATCH v4] lightnvm: pblk: add asynchronous partial read

2018-07-09 Thread Heiner Litz
In the read path, partial reads are currently performed synchronously which affects performance for workloads that generate many partial reads. This patch adds an asynchronous partial read path as well as the required partial read ctx. Signed-off-by: Heiner Litz --- v4: Allocate bitmap

Re: [RFC PATCH 0/6] lightnvm: pblk: Introduce RAIL to enforce low tail read latency

2018-09-20 Thread Heiner Litz
Hi Hans, here is my git branch: https://github.com/hlitz/rail_lightnvm/tree/rail_4-20 thanks for testing! Heiner On Wed, Sep 19, 2018 at 12:58 AM Hans Holmberg wrote: > > On Tue, Sep 18, 2018 at 6:13 PM Heiner Litz wrote: > > > > Hi Hans, > > thanks a lot for your comment

Re: [RFC PATCH 5/6] lightnvm: pblk: Add RAIL interface

2018-09-20 Thread Heiner Litz
On Wed, Sep 19, 2018 at 12:53 AM Hans Holmberg wrote: > > On Tue, Sep 18, 2018 at 6:11 PM Heiner Litz wrote: > > > > On Tue, Sep 18, 2018 at 4:28 AM Hans Holmberg > > wrote: > > > > > > On Mon, Sep 17, 2018 at 7:30 AM Heiner Litz wrote: > > &

Re: [RFC PATCH 5/6] lightnvm: pblk: Add RAIL interface

2018-09-18 Thread Heiner Litz
On Tue, Sep 18, 2018 at 4:28 AM Hans Holmberg wrote: > > On Mon, Sep 17, 2018 at 7:30 AM Heiner Litz wrote: > > > > In prepartion of supporting RAIL, add the RAIL API. > > > > Signed-off-by: Heiner Litz > > --- >

Re: [RFC PATCH 0/6] lightnvm: pblk: Introduce RAIL to enforce low tail read latency

2018-09-18 Thread Heiner Litz
Hi Hans, thanks a lot for your comments! I will send you a git repo to test. I have a patch which enables/disables RAIL via ioctl and will send that as well. Heiner On Tue, Sep 18, 2018 at 4:46 AM Hans Holmberg wrote: > > On Mon, Sep 17, 2018 at 7:29 AM Heiner Litz wrote: > >

[RFC PATCH 6/6] lightnvm: pblk: Integrate RAIL

2018-09-16 Thread Heiner Litz
% 99.9% 99.95% 99.99% pblk 90 10002200 30006000 RAIL 85 100 250400 500 Signed-off-by: Heiner Litz --- drivers/lightnvm/Kconfig | 10 ++ drivers/lightnvm/Makefile | 1 + drivers/lightnvm/pblk-core.c | 36

[RFC PATCH 4/6] lightnvm: pblk: Add pblk_submit_io_sem

2018-09-16 Thread Heiner Litz
In preparation of supporting RAIL, add a new API pblk_submit_io_sem which takes the lun semaphore before submitting the asynchronous request. Signed-off-by: Heiner Litz --- drivers/lightnvm/pblk-core.c | 11 +++ drivers/lightnvm/pblk.h | 1 + 2 files changed, 12 insertions

[RFC PATCH 5/6] lightnvm: pblk: Add RAIL interface

2018-09-16 Thread Heiner Litz
In prepartion of supporting RAIL, add the RAIL API. Signed-off-by: Heiner Litz --- drivers/lightnvm/pblk-rail.c | 808 +++ drivers/lightnvm/pblk.h | 63 ++- 2 files changed, 870 insertions(+), 1 deletion(-) create mode 100644 drivers/lightnvm/pblk-rail.c

[RFC PATCH 1/6] lightnvm: pblk: refactor read and write APIs

2018-09-16 Thread Heiner Litz
In prepartion of supporting RAIL, expose read and write APIs so their functionality can be leveraged by RAIL. Signed-off-by: Heiner Litz --- drivers/lightnvm/pblk-read.c | 8 +++- drivers/lightnvm/pblk-write.c | 4 ++-- drivers/lightnvm/pblk.h | 7 +++ 3 files changed, 12

[RFC PATCH 0/6] lightnvm: pblk: Introduce RAIL to enforce low tail read latency

2018-09-16 Thread Heiner Litz
Hi All, this patchset introduces RAIL, a mechanism to enforce low tail read latency for lightnvm OCSSD devices. RAIL leverages redundancy to guarantee that reads are always served from LUNs that do not serve a high latency operation such as a write or erase. This avoids that reads become

[RFC PATCH 2/6] lightnvm: pblk: Add configurable mapping function

2018-09-16 Thread Heiner Litz
In prepartion of supporting RAIL, introduce a new function pointer so that different mapping functions can be used to determine sector placement. Signed-off-by: Heiner Litz --- drivers/lightnvm/pblk-init.c | 2 ++ drivers/lightnvm/pblk-map.c | 18 +- drivers/lightnvm/pblk.h

[RFC PATCH 3/6] lightnvm: pblk: Refactor end_io function in pblk_submit_io_set

2018-09-16 Thread Heiner Litz
In preparation of supporting RAIL, refactor pblk_submit_io_set in the write path so that the end_io function can be specified when setting up the request. Signed-off-by: Heiner Litz --- drivers/lightnvm/pblk-write.c | 11 ++- drivers/lightnvm/pblk.h | 3 ++- 2 files changed, 8