[PATCH RFC 0/2] Convert from bio-based to blk-mq

2013-10-08 Thread Matias Bjørling
hin mq? * Move cmdid into blk mq and use request tagging. * Notify mq of nvme device stripe size. * Let mq know and handle BIOVEC_NOT_VIRT_MERGEABLE. I crave some feedback on whether it's on the right path, before I break the bio path apart and put it together again. Matias Bjørling (2): bl

[PATCH RFC 2/2] NVMe: rfc blk-mq support

2013-10-08 Thread Matias Bjørling
: Matias Bjørling --- drivers/block/nvme-core.c | 404 +- include/linux/nvme.h | 3 +- 2 files changed, 153 insertions(+), 254 deletions(-) diff --git a/drivers/block/nvme-core.c b/drivers/block/nvme-core.c index ce79a59..510e41f 100644 --- a

[PATCH RFC 1/2] blk-mq: call exit_hctx on hw queue teardown

2013-10-08 Thread Matias Bjørling
The driver initialize itself using init_hctx and reverts using exit_hctx if unsucessful. exit_hctx is missing on normal hw queue teardown. Signed-off-by: Matias Bjørling --- block/blk-mq.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/block/blk-mq.c b/block/blk-mq.c index 923e9e1

Re: [PATCH RFC 0/2] Convert from bio-based to blk-mq

2013-10-08 Thread Matias Bjørling
On 10/08/2013 03:10 PM, Matthew Wilcox wrote: On Tue, Oct 08, 2013 at 11:34:20AM +0200, Matias Bjørling wrote: The nvme driver implements itself as a bio-based driver. This primarily because of high lock congestion for high-performance nvm devices. To remove the congestion, a multi-queue block

Re: [PATCH RFC 2/2] NVMe: rfc blk-mq support

2013-10-09 Thread Matias Bjørling
Thanks for the feedback. I'll make a v2 and report back measurements of gain/loss for the machines I have available. On 10/08/2013 10:59 PM, Keith Busch wrote: On Tue, 8 Oct 2013, Matias Bjørling wrote: Convert the driver to blk mq. The patch consists of: * Initializion of mq

Re: [GIT PULL 02/58] lightnvm: prevent bd removal if busy

2017-10-16 Thread Matias Bjørling
On Fri, Oct 13, 2017 at 5:35 PM, Rakesh Pandit wrote: > On Fri, Oct 13, 2017 at 07:58:09AM -0700, Christoph Hellwig wrote: >> On Fri, Oct 13, 2017 at 02:45:51PM +0200, Matias Bjørling wrote: >> > From: Rakesh Pandit >> > >> > When a virtual block device is

Re: [PATCH] ligtnvm: if LUNs are already allocated fix return

2017-05-30 Thread Matias Bjørling
On Mon, May 29, 2017 at 11:05 AM, Rakesh Pandit wrote: > Hi Matias, > > On Mon, May 15, 2017 at 06:31:58AM +, Javier Gonzalez wrote: >> > >> > On 13 May 2017, at 21.50, Rakesh Pandit wrote: >> > >> > While creating new device with NVM_DEV_CREATE if LUNs are already >> > allocated ioctl would

[PATCH] null_blk: fix wrong capacity when bs is not 512 bytes

2015-08-31 Thread Matias Bjørling
set_capacity() sets device's capacity using 512 bytes sectors. null_blk calculates the number of sectors by size / bs, which set_capacity is called with. This led to null_blk exposing the wrong number of sectors when bs is not 512 bytes. Signed-off-by: Matias Bjørling --- drivers/

[PATCH] null_blk: fix memory leak on cleanup

2015-08-31 Thread Matias Bjørling
From: Matias Bjørling Driver was not freeing the memory allocated for internal nullb queues. This patch frees the memory during driver unload. Signed-off-by: Matias Bjørling --- drivers/block/null_blk.c | 33 + 1 file changed, 17 insertions(+), 16 deletions

[PATCH v9 5/5] nvme: LightNVM support

2015-10-14 Thread Matias Bjørling
-off-by: Matias Bjørling --- drivers/nvme/host/Makefile | 2 +- drivers/nvme/host/lightnvm.c | 597 +++ drivers/nvme/host/nvme.h | 10 + drivers/nvme/host/pci.c | 39 ++- 4 files changed, 636 insertions(+), 12 deletions(-) create mode 100644

[PATCH v9 4/5] null_nvm: LightNVM test driver

2015-10-14 Thread Matias Bjørling
This driver implements the I/O flow for a LightNVM device driver. It does no transfers. It can be used to test setup/teardown of devices and evaluating performance of media managers and targets. The framework of the driver is derived from the null_blk module. Signed-off-by: Matias Bjørling

[PATCH v9 3/5] rrpc: Round-robin sector target with cost-based gc

2015-10-14 Thread Matias Bjørling
This target allows an Open-Channel SSD to be exposed asas a block device. It implements a round-robin approach for sector allocation, together with a greedy cost-based garbage collector. Signed-off-by: Matias Bjørling --- drivers/lightnvm/Kconfig |7 + drivers/lightnvm/Makefile |1

[PATCH v9 2/5] gennvm: Generic NVM manager

2015-10-14 Thread Matias Bjørling
-by: Matias Bjørling --- drivers/lightnvm/Kconfig | 7 + drivers/lightnvm/Makefile | 1 + drivers/lightnvm/gennvm.c | 467 ++ drivers/lightnvm/gennvm.h | 46 + 4 files changed, 521 insertions(+) create mode 100644 drivers/lightnvm/gennvm.c

[PATCH v9 0/5] Support for Open-Channel SSDs

2015-10-14 Thread Matias Bjørling
t implement flash translation layer logic. - Updated the patches according to the LightNVM specification changes. - Added interface to add/remove targets for a block device. Thanks to Jens Axboe, Christoph Hellwig, Keith Busch, Paul Bolle, Javier Gonzalez and Jesper Madsen for discussions and contr

[PATCH v9 1/5] lightnvm: Support for Open-Channel SSDs

2015-10-14 Thread Matias Bjørling
, which can be application-specific. Contributions in this patch from: Javier Gonzalez Dongsheng Yang Jesper Madsen Signed-off-by: Matias Bjørling --- Documentation/ioctl/ioctl-number.txt | 1 + MAINTAINERS | 8 + drivers/Kconfig | 2

[PATCH v10 5/5] nvme: LightNVM support

2015-10-14 Thread Matias Bjørling
-off-by: Matias Bjørling --- drivers/nvme/host/Makefile | 2 +- drivers/nvme/host/lightnvm.c | 597 +++ drivers/nvme/host/nvme.h | 10 + drivers/nvme/host/pci.c | 39 ++- 4 files changed, 636 insertions(+), 12 deletions(-) create mode 100644

[PATCH v10 1/5] lightnvm: Support for Open-Channel SSDs

2015-10-14 Thread Matias Bjørling
, which can be application-specific. Contributions in this patch from: Javier Gonzalez Dongsheng Yang Jesper Madsen Signed-off-by: Matias Bjørling --- Documentation/ioctl/ioctl-number.txt | 1 + MAINTAINERS | 8 + drivers/Kconfig | 2

[PATCH v10 0/5] Support for Open-Channel SSDs

2015-10-14 Thread Matias Bjørling
logic. - Updated the patches according to the LightNVM specification changes. - Added interface to add/remove targets for a block device. Thanks to Jens Axboe, Christoph Hellwig, Keith Busch, Paul Bolle, Javier Gonzalez and Jesper Madsen for discussions and contributions. Matias Bjørling (5): ligh

[PATCH v10 4/5] null_nvm: LightNVM test driver

2015-10-14 Thread Matias Bjørling
This driver implements the I/O flow for a LightNVM device driver. It does no transfers. It can be used to test setup/teardown of devices and evaluating performance of media managers and targets. The framework of the driver is derived from the null_blk module. Signed-off-by: Matias Bjørling

[PATCH v10 3/5] rrpc: Round-robin sector target with cost-based gc

2015-10-14 Thread Matias Bjørling
This target allows an Open-Channel SSD to be exposed asas a block device. It implements a round-robin approach for sector allocation, together with a greedy cost-based garbage collector. Signed-off-by: Matias Bjørling --- drivers/lightnvm/Kconfig |7 + drivers/lightnvm/Makefile |1

[PATCH v10 2/5] gennvm: Generic NVM manager

2015-10-14 Thread Matias Bjørling
-by: Matias Bjørling --- drivers/lightnvm/Kconfig | 7 + drivers/lightnvm/Makefile | 1 + drivers/lightnvm/gennvm.c | 467 ++ drivers/lightnvm/gennvm.h | 46 + 4 files changed, 521 insertions(+) create mode 100644 drivers/lightnvm/gennvm.c

Re: [RFC PATCH] lightnvm: nvm_find_target_type() can be static

2015-10-14 Thread Matias Bjørling
On Wed, Oct 14, 2015 at 10:52 PM, kbuild test robot wrote: > > Signed-off-by: Fengguang Wu > --- > core.c | 12 ++-- > 1 file changed, 6 insertions(+), 6 deletions(-) > > diff --git a/drivers/lightnvm/core.c b/drivers/lightnvm/core.c > index 9b06d75..7205e57 100644 > --- a/drivers/ligh

[PATCH v11 3/5] rrpc: Round-robin sector target with cost-based gc

2015-10-16 Thread Matias Bjørling
This target allows an Open-Channel SSD to be exposed as a block device. It implements a round-robin approach for sector allocation, together with a greedy cost-based garbage collector. Signed-off-by: Matias Bjørling --- drivers/lightnvm/Kconfig |7 + drivers/lightnvm/Makefile |1

[PATCH v11 0/5] Support for Open-Channel SSDs

2015-10-16 Thread Matias Bjørling
the LightNVM specification changes. - Added interface to add/remove targets for a block device. Thanks to Jens Axboe, Christoph Hellwig, Keith Busch, Paul Bolle, Javier Gonzalez and Jesper Madsen for discussions and contributions. Matias Bjørling (5): lightnvm: Support for Open-Channel SSDs

[PATCH v11 5/5] nvme: LightNVM support

2015-10-16 Thread Matias Bjørling
: Matias Bjørling --- drivers/nvme/host/Makefile | 2 +- drivers/nvme/host/lightnvm.c | 552 +++ drivers/nvme/host/nvme.h | 10 + drivers/nvme/host/pci.c | 39 ++- 4 files changed, 591 insertions(+), 12 deletions(-) create mode 100644 drivers

[PATCH v11 4/5] null_nvm: LightNVM test driver

2015-10-16 Thread Matias Bjørling
This driver implements the I/O flow for a LightNVM device driver. It does no transfers. It can be used to test setup/teardown of devices and evaluating performance of media managers and targets. The framework of the driver is derived from the null_blk module. Signed-off-by: Matias Bjørling

[PATCH v11 2/5] gennvm: Generic NVM manager

2015-10-16 Thread Matias Bjørling
-by: Matias Bjørling --- drivers/lightnvm/Kconfig | 7 + drivers/lightnvm/Makefile | 1 + drivers/lightnvm/gennvm.c | 478 ++ drivers/lightnvm/gennvm.h | 46 + 4 files changed, 532 insertions(+) create mode 100644 drivers/lightnvm/gennvm.c

[PATCH v11 1/5] lightnvm: Support for Open-Channel SSDs

2015-10-16 Thread Matias Bjørling
, which can be application-specific. Contributions in this patch from: Javier Gonzalez Dongsheng Yang Jesper Madsen Signed-off-by: Matias Bjørling --- Documentation/ioctl/ioctl-number.txt | 1 + MAINTAINERS | 8 + drivers/Kconfig | 2

Re: [PATCH v7 1/5] lightnvm: Support for Open-Channel SSDs

2015-09-02 Thread Matias Bjørling
+ +/* register with device with a supported BM */ +list_for_each_entry(bt, &nvm_bms, list) { +ret = bt->register_bm(dev); +if (ret < 0) +goto err; /* initialization failed */ +if (ret > 0) { +dev->bm = bt; +break; /* successfully

Re: [PATCH v7 0/5] Support for Open-Channel SSDs

2015-09-02 Thread Matias Bjørling
Any feedback is greatly appreciated. Hi Matias, After a reading of your code, that's a great idea. I tried it with null_nvm and qemu-nvm. I have two questions here. Hi Yang, thanks for taking a look. I appreciate it. (1), Why we name it lightnvm? IIUC, this framework can work for o

Re: [PATCH v7 1/5] lightnvm: Support for Open-Channel SSDs

2015-09-04 Thread Matias Bjørling
So here is a suggestion, register_bm again if we found nvm_dev->bm == NULL in create_target(). And if it is still NULL after that. return an error "nvm: no compatible bm was found" and stop target creating. Otherwise, there would be a NULL Pointer reference problem. That's a real problem I met i

Re: [PATCH v7 1/5] lightnvm: Support for Open-Channel SSDs

2015-09-04 Thread Matias Bjørling
On 09/04/2015 10:27 AM, Dongsheng Yang wrote: On 09/04/2015 04:05 PM, Matias Bjørling wrote: So here is a suggestion, register_bm again if we found nvm_dev->bm == NULL in create_target(). And if it is still NULL after that. return an error "nvm: no compatible bm was found" an

[PATCH] lightnvm: combine 1.2 and 2.0 command flags

2018-08-02 Thread Matias Bjørling
nd let the rest be dependent on the command opcode, which is trivial to detect and set. Signed-off-by: Matias Bjørling --- drivers/lightnvm/core.c | 20 drivers/lightnvm/pblk-core.c | 13 - drivers/lightnvm/pblk-read.c | 8 +--- drivers/lig

[PATCH 1/2] lightnvm: remove mlc pairs structure

2018-01-30 Thread Matias Bjørling
The known implementations of the 1.2 specification, and upcoming 2.0 implementation all expose a sequential list of pages to write. Remove the data structure, as it is no longer needed. Signed-off-by: Matias Bjørling --- drivers/nvme/host/lightnvm.c | 14 +- 1 file changed, 1

[PATCH 2/2] lightnvm: remove multiple groups in 1.2 data structure

2018-01-30 Thread Matias Bjørling
Only one id group from the 1.2 specification is supported. Make sure that only the first group is accessible. Signed-off-by: Matias Bjørling --- drivers/nvme/host/lightnvm.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/drivers/nvme/host/lightnvm.c b/drivers/nvme/host

[PATCH] lightnvm: remove chnl_offset in nvme_nvm_identity

2018-01-30 Thread Matias Bjørling
The identity structure is initialized to zero in the beginning of the nvme_nvm_identity function. The chnl_offset is separately set to zero. Since both the variable and assignment is never changed, remove them. Signed-off-by: Matias Bjørling --- drivers/nvme/host/lightnvm.c | 4 +--- 1 file

Re: [PATCH 1/2] lightnvm: remove mlc pairs structure

2018-01-31 Thread Matias Bjørling
On 01/31/2018 03:00 AM, Javier González wrote: On 30 Jan 2018, at 21.26, Matias Bjørling wrote: The known implementations of the 1.2 specification, and upcoming 2.0 implementation all expose a sequential list of pages to write. Remove the data structure, as it is no longer needed. Signed-off

Re: [PATCH 4/5] lightnvm: pblk: add padding distribution sysfs attribute

2018-01-31 Thread Matias Bjørling
On 01/31/2018 03:06 AM, Javier González wrote: From: Hans Holmberg When pblk receives a sync, all data up to that point in the write buffer must be comitted to persistent storage, and as flash memory comes with a minimal write size there is a significant cost involved both in terms of time for

Re: [PATCH 5/5] lightnvm: pblk: refactor bad block identification

2018-01-31 Thread Matias Bjørling
On 01/31/2018 03:06 AM, Javier González wrote: In preparation for the OCSSD 2.0 spec. bad block identification, refactor the current code to generalize bad block get/set functions and structures. Signed-off-by: Javier González --- drivers/lightnvm/pblk-init.c | 213 +++

Re: [PATCH 5/5] lightnvm: pblk: refactor bad block identification

2018-01-31 Thread Matias Bjørling
On 01/31/2018 10:13 AM, Javier Gonzalez wrote: On 31 Jan 2018, at 16.51, Matias Bjørling wrote: On 01/31/2018 03:06 AM, Javier González wrote: In preparation for the OCSSD 2.0 spec. bad block identification, refactor the current code to generalize bad block get/set functions and structures

[GIT PULL 02/25] lightnvm: remove rrpc

2018-01-05 Thread Matias Bjørling
The hybrid mode for 1.2 revision was deprecated, and have no users. Remove to make it easier to move to the 2.0 revision. Signed-off-by: Matias Bjørling --- drivers/lightnvm/Kconfig |7 - drivers/lightnvm/Makefile |1 - drivers/lightnvm/rrpc.c | 1625

[GIT PULL 00/25] LightNVM updates for 4.16

2018-01-05 Thread Matias Bjørling
kthread alloc. before kicking it lightnvm: pblk: free write buffer on init failure lightnvm: pblk: print instance name on instance info lightnvm: pblk: add iostat support Matias Bjørling (7): null_blk: remove lightnvm support lightnvm: remove rrpc lightnvm: use internal pblk methods

[GIT PULL 13/25] lightnvm: pblk: rename sync_point to flush_point

2018-01-05 Thread Matias Bjørling
From: Hans Holmberg Sync point is a really confusing name for keeping track of the last entry that needs to be flushed so change the name to to flush_point instead. Signed-off-by: Hans Holmberg Signed-off-by: Javier González Signed-off-by: Matias Bjørling --- drivers/lightnvm/pblk-rb.c

[GIT PULL 24/25] lightnvm: pblk: add iostat support

2018-01-05 Thread Matias Bjørling
From: Javier González Since pblk registers its own block device, the iostat accounting is not automatically done for us. Therefore, add the necessary accounting logic to satisfy the iostat interface. Signed-off-by: Javier González Signed-off-by: Matias Bjørling --- drivers/lightnvm/pblk

[GIT PULL 22/25] lightnvm: pblk: free write buffer on init failure

2018-01-05 Thread Matias Bjørling
From: Javier González Refactor the way we free the write buffer to ensure that all entries get freed in case of an error on the init sequence. Signed-off-by: Javier González Signed-off-by: Matias Bjørling --- drivers/lightnvm/pblk-init.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion

[GIT PULL 23/25] lightnvm: pblk: print instance name on instance info

2018-01-05 Thread Matias Bjørling
From: Javier González Add the instance name to the information printed out on target creation. Signed-off-by: Javier González Signed-off-by: Matias Bjørling --- drivers/lightnvm/pblk-init.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/drivers/lightnvm/pblk-init.c b

[GIT PULL 25/25] lightnvm: pblk: refactor pblk_ppa_comp function

2018-01-05 Thread Matias Bjørling
Shorten function to simply return the value of the if statement. Signed-off-by: Matias Bjørling --- drivers/lightnvm/pblk.h | 5 + 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/drivers/lightnvm/pblk.h b/drivers/lightnvm/pblk.h index 8af374e..8c357fb 100644 --- a/drivers

[GIT PULL 21/25] lightnvm: pblk: ensure kthread alloc. before kicking it

2018-01-05 Thread Matias Bjørling
creation can be interrupted form user space, adapt the error path to not report an error when this happens, since it is intentional that the instance creation is aborted. Signed-off-by: Javier González Updated source to reflect the new timer_setup API. Signed-off-by: Matias Bjørling --- drivers

[GIT PULL 20/25] lightnvm: pblk: do not log recovery read errors

2018-01-05 Thread Matias Bjørling
t log them, as they are confusing when reviewing the logs. Signed-off-by: Javier González Signed-off-by: Matias Bjørling --- drivers/lightnvm/pblk-core.c | 6 +++--- drivers/lightnvm/pblk.h | 1 + 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/drivers/lightnvm/pblk-core.c

[GIT PULL 18/25] lightnvm: set target over-provision on create ioctl

2018-01-05 Thread Matias Bjørling
Holmberg Signed-off-by: Matias Bjørling --- drivers/lightnvm/core.c | 106 +- drivers/lightnvm/pblk-init.c | 5 +- drivers/lightnvm/pblk.h | 2 + include/linux/lightnvm.h | 6 +++ include/uapi/linux/lightnvm.h | 9 5 files

[GIT PULL 12/25] lightnvm: pblk: refactor emeta consistency check

2018-01-05 Thread Matias Bjørling
version. Signed-off-by: Hans Holmberg Signed-off-by: Javier González Signed-off-by: Matias Bjørling --- drivers/lightnvm/pblk-gc.c | 9 - drivers/lightnvm/pblk-recovery.c | 15 ++- drivers/lightnvm/pblk.h | 2 +- 3 files changed, 19 insertions(+), 7

[GIT PULL 19/25] lightnvm: pblk: ignore high ecc errors on recovery

2018-01-05 Thread Matias Bjørling
From: Javier González On recovery, do not stop L2P recovery if reads report high ECC error as the data is still available. Signed-off-by: Javier González Signed-off-by: Matias Bjørling --- drivers/lightnvm/pblk-recovery.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a

[GIT PULL 17/25] lightnvm: pblk: use exact free block counter in RL

2018-01-05 Thread Matias Bjørling
er to track the number of blocks being used for user data. Signed-off-by: Javier González Signed-off-by: Hans Holmberg Signed-off-by: Matias Bjørling --- drivers/lightnvm/pblk-core.c | 19 +- drivers/lightnvm/pblk-init.c | 18 +++--- drivers/lightnvm/pblk-recovery.c

[GIT PULL 16/25] lightnvm: pblk: remove pblk_gc_stop

2018-01-05 Thread Matias Bjørling
From: Hans Holmberg pblk_gc_stop just sets pblk->gc->gc_active to zero, ignoring the flush parameter. This is plain confusing, so remove the function and set the gc active flag at the call points instead. Signed-off-by: Hans Holmberg Signed-off-by: Javier González Signed-off-by:

[GIT PULL 14/25] lightnvm: pblk: clear flush point on completed writes

2018-01-05 Thread Matias Bjørling
From: Hans Holmberg Move completion of syncs and clearing of flush points to the write completion path - this ensures that the data has been comitted to the media before completing bios containing syncs. Signed-off-by: Hans Holmberg Signed-off-by: Javier González Signed-off-by: Matias

[GIT PULL 15/25] lightnvm: pblk: prevent premature sync point resets

2018-01-05 Thread Matias Bjørling
leted flush points. Signed-off-by: Hans Holmberg Signed-off-by: Javier González Signed-off-by: Matias Bjørling --- drivers/lightnvm/pblk-rb.c | 12 ++-- 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/drivers/lightnvm/pblk-rb.c b/drivers/lightnvm/pblk-rb.c index 672ef8c..ec

[GIT PULL 11/25] lightnvm: pblk: remove pblk_for_each_lun helper

2018-01-05 Thread Matias Bjørling
From: Javier González Signed-off-by: Javier González Signed-off-by: Matias Bjørling --- drivers/lightnvm/pblk.h | 4 1 file changed, 4 deletions(-) diff --git a/drivers/lightnvm/pblk.h b/drivers/lightnvm/pblk.h index d68a94d..1dbb0bf 100644 --- a/drivers/lightnvm/pblk.h +++ b/drivers

[GIT PULL 03/25] lightnvm: use internal pblk methods

2018-01-05 Thread Matias Bjørling
Now that rrpc has been removed, the only users of the ppa helpers is pblk. However, pblk already defines similar functions. Switch pblk to use the internal ones, and remove the generic ppa helpers. Signed-off-by: Matias Bjørling --- drivers/lightnvm/pblk-map.c | 2 +- drivers/lightnvm/pblk

[GIT PULL 09/25] lightnvm: guarantee target unique name across devs.

2018-01-05 Thread Matias Bjørling
: Javier González Signed-off-by: Matias Bjørling --- drivers/lightnvm/core.c | 33 +++-- 1 file changed, 27 insertions(+), 6 deletions(-) diff --git a/drivers/lightnvm/core.c b/drivers/lightnvm/core.c index 5c2d0f3..d5f231c 100644 --- a/drivers/lightnvm/core.c +++ b

[GIT PULL 10/25] lightnvm: pblk: compress and reorder helper functions

2018-01-05 Thread Matias Bjørling
From: Javier González Through time, we have generated some redundant helper functions. Refactor them to eliminate redundant and unnecessary code. Also, reorder them to improve readability Signed-off-by: Javier González Signed-off-by: Matias Bjørling --- drivers/lightnvm/pblk-core.c | 24

[GIT PULL 08/25] lightnvm: refactor target type lookup

2018-01-05 Thread Matias Bjørling
From: Javier González Refactor target type lookup to use/not use locks explicitly instead of using a hidden parameter to make the function locking. Signed-off-by: Javier González Signed-off-by: Matias Bjørling --- drivers/lightnvm/core.c | 30 +- 1 file changed

[GIT PULL 05/25] lightnvm: remove unnecessary field from nvm_rq

2018-01-05 Thread Matias Bjørling
From: Javier González Remove the wait filed in nvm_rq. It is not used anymore, as targets rely on the functionality provided by the LightNVM subsystem when sending sync I/O. Signed-off-by: Javier González Signed-off-by: Matias Bjørling --- include/linux/lightnvm.h | 1 - 1 file changed, 1

[GIT PULL 04/25] lightnvm: remove hybrid ocssd 1.2 support

2018-01-05 Thread Matias Bjørling
Now that rrpc have been removed. Also remove the hybrid 1.2 support from the core. Signed-off-by: Matias Bjørling --- drivers/lightnvm/core.c | 141 --- drivers/nvme/host/lightnvm.c | 96 - include/linux/lightnvm.h

[GIT PULL 07/25] lightnvm: make geometry structures 2.0 ready

2018-01-05 Thread Matias Bjørling
From: Matias Bjørling Prepare for the 2.0 revision by adapting the geometry structures to coexist with the 1.2 revision. Signed-off-by: Matias Bjørling Reviewed-by: Javier González Signed-off-by: Matias Bjørling --- drivers/lightnvm/core.c | 89

[GIT PULL 06/25] lightnvm: remove lower page tables

2018-01-05 Thread Matias Bjørling
The lower page table is unused. All page tables reported by 1.2 devices are all reporting a sequential 1:1 page mapping. This is also not used going forward with the 2.0 revision. Signed-off-by: Matias Bjørling Reviewed-by: Javier González Signed-off-by: Matias Bjørling --- drivers/lightnvm

[GIT PULL 01/25] null_blk: remove lightnvm support

2018-01-05 Thread Matias Bjørling
With rrpc to be removed, the null_blk lightnvm support is no longer functional. Remove the lightnvm implementation and maybe add it to another module in the future if someone takes on the challenge. Signed-off-by: Matias Bjørling --- drivers/block/null_blk.c | 220

Re: [GIT PULL 24/25] lightnvm: pblk: add iostat support

2018-01-05 Thread Matias Bjørling
On 01/05/2018 04:42 PM, Jens Axboe wrote: On Fri, Jan 05 2018, Matias Bjørling wrote: From: Javier González Since pblk registers its own block device, the iostat accounting is not automatically done for us. Therefore, add the necessary accounting logic to satisfy the iostat interface

Re: [GIT PULL 00/25] LightNVM updates for 4.16

2018-01-05 Thread Matias Bjørling
On 01/05/2018 04:50 PM, Jens Axboe wrote: On Fri, Jan 05 2018, Matias Bjørling wrote: Hi Jens, Here is a couple of patches for 4.16. This patchset prepares the lightnvm and pblk source code for the 2.0 specification release. The specification is close to its final revision. After these

Re: [GIT PULL 18/25] lightnvm: set target over-provision on create ioctl

2018-01-05 Thread Matias Bjørling
On 01/05/2018 08:52 PM, Javier Gonzalez wrote: On 5 Jan 2018, at 20.33, Randy Dunlap wrote: On 01/05/2018 05:16 AM, Matias Bjørling wrote: From: Javier González Allow to set the over-provision percentage on target creation. In case that the value is not provided, fall back to the default

Re: [GIT PULL 24/25] lightnvm: pblk: add iostat support

2018-01-08 Thread Matias Bjørling
On Mon, Jan 8, 2018 at 1:53 PM, Javier González wrote: >> On 8 Jan 2018, at 12.54, Christoph Hellwig wrote: >> >> On Fri, Jan 05, 2018 at 07:33:36PM +0100, Matias Bjørling wrote: >>> On 01/05/2018 04:42 PM, Jens Axboe wrote: >>>> On Fri, Jan 05 2018, Ma

Re: [PATCH] lightnvm/pblk-gc: Delete an error message for a failed memory allocation in pblk_gc_line_prepare_ws()

2018-01-16 Thread Matias Bjørling
On 01/16/2018 10:10 PM, SF Markus Elfring wrote: From: Markus Elfring Date: Tue, 16 Jan 2018 22:00:15 +0100 Omit an extra message for a memory allocation failure in this function. This issue was detected by using the Coccinelle software. Signed-off-by: Markus Elfring --- drivers/lightnvm/p

Re: [PATCH] lightnvm: pblk: refactor init/exit sequences

2018-03-05 Thread Matias Bjørling
On 03/05/2018 03:18 PM, Javier González wrote: On 5 Mar 2018, at 15.16, Matias Bjørling wrote: On 03/05/2018 02:45 PM, Javier González wrote: On 5 Mar 2018, at 14.38, Matias Bjørling wrote: On 03/01/2018 08:29 PM, Javier González wrote: On 1 Mar 2018, at 19.49, Matias Bjørling wrote: On

Re: [PATCH 08/12] lightnvm: implement get log report chunk helpers

2018-03-21 Thread Matias Bjørling
On 03/02/2018 04:21 PM, Javier González wrote: The 2.0 spec provides a report chunk log page that can be retrieved using the stangard nvme get log page. This replaces the dedicated get/put bad block table in 1.2. This patch implements the helper functions to allow targets retrieve the chunk meta

[PATCH] nvme: make nvme_get_log_ext non-static

2018-03-21 Thread Matias Bjørling
Enable the lightnvm integration to use the nvme_get_log_ext() function. Signed-off-by: Matias Bjørling --- drivers/nvme/host/core.c | 2 +- drivers/nvme/host/nvme.h | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/drivers/nvme/host/core.c b/drivers/nvme/host/core.c index

Re: [PATCH 08/12] lightnvm: implement get log report chunk helpers

2018-03-21 Thread Matias Bjørling
On 03/21/2018 03:36 PM, Keith Busch wrote: On Wed, Mar 21, 2018 at 03:06:05AM -0700, Matias Bjørling wrote: outside of nvme core so that we can use it form lightnvm. Signed-off-by: Javier González --- drivers/lightnvm/core.c | 11 +++ drivers/nvme/host/core.c | 6

Re: problem with bio handling on raid5 and pblk

2018-03-22 Thread Matias Bjørling
On 03/22/2018 03:34 PM, Javier González wrote: Hi, I have been looking into a bug report when using pblk and raid5 on top and I am having problems understanding if the problem is in pblk's bio handling or on raid5's bio assumptions on the completion path. The problem occurs on the read path. In

[PATCH] lightnvm: remove function name in strings

2018-03-23 Thread Matias Bjørling
For the sysfs functions, the function names are embedded into their error strings. If the function name later changes, the string may not be updated accordingly. Update the strings to use __func__ to avoid this. Signed-off-by: Matias Bjørling --- drivers/nvme/host/lightnvm.c | 12

Re: [PATCH 4/4] nvme: lightnvm: add late setup of block size and metadata

2018-03-23 Thread Matias Bjørling
On 02/05/2018 01:15 PM, Matias Bjørling wrote: The nvme driver sets up the size of the nvme namespace in two steps. First it initializes the device with standard logical block and metadata sizes, and then sets the correct logical block and metadata size. Due to the OCSSD 2.0 specification relies

Re: [PATCH] ia64: export node_distance function

2018-11-20 Thread Matias Bjørling
On 11/03/2018 07:37 PM, Matias Bjørling wrote: The numa_slit variable used by node_distance is available to a module as long as it is linked at compile-time. However, it is not available to loadable modules. Leading to errors such as: ERROR: "numa_slit" [drivers/nvme/host/nv

[GIT PULL 00/20] lightnvm updates for 4.18

2018-05-28 Thread Matias Bjørling
Hi Jens, Please pick up the following patches. - Hans reworked the write error recovery path in pblk. - Igor added extra error handling for lines, and fixed a bug in the pblk ringbuffer during GC. - Javier refactored the pblk code a bit, added extra error handling, and added checks to ve

[GIT PULL 01/20] lightnvm: pblk: fail gracefully on line alloc. failure

2018-05-28 Thread Matias Bjørling
From: Javier González In the event of a line failing to allocate, fail gracefully and stop the pipeline to avoid more write failing in the same place. Signed-off-by: Javier González Signed-off-by: Matias Bjørling --- drivers/lightnvm/pblk-init.c | 5 + drivers/lightnvm/pblk-map.c | 33

[GIT PULL 02/20] lightnvm: pblk: recheck for bad lines at runtime

2018-05-28 Thread Matias Bjørling
From: Javier González Bad blocks can grow at runtime. Check that the number of valid blocks in a line are within the sanity threshold before allocating the line for new writes. Signed-off-by: Javier González Signed-off-by: Matias Bjørling --- drivers/lightnvm/pblk-core.c | 38

[GIT PULL 12/20] lightnvm: pblk: rework write error recovery path

2018-05-28 Thread Matias Bjørling
. The writer thread checks if there are any requests to resubmit, scans and invalidates any lbas that have been overwritten by later writes and resubmits the failed entries. Signed-off-by: Hans Holmberg Reviewed-by: Javier González Signed-off-by: Matias Bjørling --- drivers/lightnvm/pblk-init.c

[GIT PULL 14/20] lightnvm: pblk: fix smeta write error path

2018-05-28 Thread Matias Bjørling
From: Hans Holmberg Smeta write errors were previously ignored. Skip these lines instead and throw them back on the free list, so the chunks will go through a reset cycle before we attempt to use the line again. Signed-off-by: Hans Holmberg Reviewed-by: Javier González Signed-off-by: Matias

[GIT PULL 13/20] lightnvm: pblk: garbage collect lines with failed writes

2018-05-28 Thread Matias Bjørling
: Hans Holmberg Reviewed-by: Javier González Signed-off-by: Matias Bjørling --- drivers/lightnvm/pblk-core.c | 45 ++- drivers/lightnvm/pblk-gc.c| 102 +++--- drivers/lightnvm/pblk-init.c | 46 --- drivers/lightnvm/pblk

[GIT PULL 20/20] lightnvm: pblk: sync RB and RL states during GC

2018-05-28 Thread Matias Bjørling
-off-by: Matias Bjørling --- drivers/lightnvm/pblk-init.c | 2 ++ drivers/lightnvm/pblk-rb.c | 7 +++ 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/drivers/lightnvm/pblk-init.c b/drivers/lightnvm/pblk-init.c index 25aa1e73984f..9d7d9e3b8506 100644 --- a/drivers/lightnvm/pblk

[GIT PULL 10/20] lightnvm: pass flag on graceful teardown to targets

2018-05-28 Thread Matias Bjørling
target to let it know when this happens. In the case of pblk, we pad the open line (close all open chunks) to improve data retention. In the event of an ungraceful shutdown, avoid this part and just clean up. Signed-off-by: Javier González Signed-off-by: Matias Bjørling --- drivers/light

[GIT PULL 11/20] lightnvm: pblk: remove dead function

2018-05-28 Thread Matias Bjørling
From: Javier González Remove dead function for manual sync. I/O Signed-off-by: Javier González Signed-off-by: Matias Bjørling --- drivers/lightnvm/pblk-core.c | 7 --- drivers/lightnvm/pblk.h | 1 - 2 files changed, 8 deletions(-) diff --git a/drivers/lightnvm/pblk-core.c b/drivers

[GIT PULL 15/20] lightnvm: proper error handling for pblk_bio_add_pages

2018-05-28 Thread Matias Bjørling
, that we are trying to free NULL pointer dma. This commit fix both issues. Signed-off-by: Igor Konopko Signed-off-by: Marcin Dziegielewski Signed-off-by: Matias Bjørling --- drivers/lightnvm/pblk-core.c | 6 -- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/drivers/lightnvm

[GIT PULL 16/20] lightnvm: error handling when whole line is bad

2018-05-28 Thread Matias Bjørling
Igor Konopko Signed-off-by: Marcin Dziegielewski Updated title. Signed-off-by: Matias Bjørling --- drivers/lightnvm/pblk-core.c | 5 + 1 file changed, 5 insertions(+) diff --git a/drivers/lightnvm/pblk-core.c b/drivers/lightnvm/pblk-core.c index a20b41c355c5..e3e883547198 100644 --- a/dr

[GIT PULL 17/20] lightnvm: fix partial read error path

2018-05-28 Thread Matias Bjørling
From: Igor Konopko When error occurs during bio_add_page on partial read path, pblk tries to free pages twice. Signed-off-by: Igor Konopko Signed-off-by: Marcin Dziegielewski Signed-off-by: Matias Bjørling --- drivers/lightnvm/pblk-read.c | 8 1 file changed, 4 insertions(+), 4

[GIT PULL 18/20] lightnvm: pblk: handle case when mw_cunits equals to 0

2018-05-28 Thread Matias Bjørling
mw_cunits in nvme_nvm_setup_12 function isn't longer necessary. Signed-off-by: Marcin Dziegielewski Signed-off-by: Igor Konopko Signed-off-by: Matias Bjørling --- drivers/lightnvm/pblk-init.c | 10 +- drivers/nvme/host/lightnvm.c | 1 - 2 files changed, 9 insertions(+), 2 deletions(-)

[GIT PULL 03/20] lightnvm: pblk: check read lba on gc path

2018-05-28 Thread Matias Bjørling
From: Javier González Check that the lba stored in the LBA metadata is correct in the GC path too. This requires a new helper function to check random reads in the vector read. Signed-off-by: Javier González Signed-off-by: Matias Bjørling --- drivers/lightnvm/pblk-read.c | 39

[GIT PULL 19/20] lightnvm: pblk: add possibility to set write buffer size manually

2018-05-28 Thread Matias Bjørling
-off-by: Matias Bjørling --- drivers/lightnvm/pblk-init.c | 14 -- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/drivers/lightnvm/pblk-init.c b/drivers/lightnvm/pblk-init.c index 0f277744266b..25aa1e73984f 100644 --- a/drivers/lightnvm/pblk-init.c +++ b/drivers/lightnvm

[GIT PULL 09/20] lightnvm: pblk: check for chunk size before allocating it

2018-05-28 Thread Matias Bjørling
From: Javier González Do the check for the chunk state after making sure that the chunk type is supported. Fixes: 32ef9412c114 ("lightnvm: pblk: implement get log report chunk") Signed-off-by: Javier González Signed-off-by: Matias Bjørling --- drivers/lightnvm/pblk-init.c | 6 +++-

[GIT PULL 08/20] lightnvm: pblk: remove unnecessary argument

2018-05-28 Thread Matias Bjørling
From: Javier González Remove unnecessary argument on pblk_line_free() Signed-off-by: Javier González Signed-off-by: Matias Bjørling --- drivers/lightnvm/pblk-core.c | 6 +++--- drivers/lightnvm/pblk-init.c | 2 +- drivers/lightnvm/pblk.h | 2 +- 3 files changed, 5 insertions(+), 5

[GIT PULL 07/20] lightnvm: pblk: remove unnecessary indirection

2018-05-28 Thread Matias Bjørling
From: Javier González Call nvm_submit_io directly and remove an unnecessary indirection on the read path. Signed-off-by: Javier González Signed-off-by: Matias Bjørling --- drivers/lightnvm/pblk-read.c | 14 ++ 1 file changed, 2 insertions(+), 12 deletions(-) diff --git a/drivers

[GIT PULL 05/20] lightnvm: pblk: warn in case of corrupted write buffer

2018-05-28 Thread Matias Bjørling
lly be updated, thus hiding the issue. Signed-off-by: Javier González Signed-off-by: Matias Bjørling --- drivers/lightnvm/pblk-rb.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/drivers/lightnvm/pblk-rb.c b/drivers/lightnvm/pblk-rb.c index 52fdd85dbc97..58946ffebe81

[GIT PULL 06/20] lightnvm: pblk: return NVM_ error on failed submission

2018-05-28 Thread Matias Bjørling
From: Javier González Return a meaningful error when the sanity vector I/O check fails. Signed-off-by: Javier González Signed-off-by: Matias Bjørling --- drivers/lightnvm/pblk-core.c | 22 -- 1 file changed, 8 insertions(+), 14 deletions(-) diff --git a/drivers/lightnvm

[GIT PULL 04/20] lightnvm: pblk: improve error msg on corrupted LBAs

2018-05-28 Thread Matias Bjørling
From: Javier González In the event of a mismatch between the read LBA and the metadata pointer reported by the device, improve the error message to be able to detect the offending physical address (PPA) mapped to the corrupted LBA. Signed-off-by: Javier González Signed-off-by: Matias Bjørling

  1   2   3   4   5   6   7   8   9   10   >