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
: 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
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
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
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
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
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
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/
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
-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
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
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
-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
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
, 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
-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
, 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
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
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
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
-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
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
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
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
: 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
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
-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
, 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
+
+/* 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
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
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
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
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
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
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
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
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
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
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 +++
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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:
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
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
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
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
: 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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
.
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
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
: 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
-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
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
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
, 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
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
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
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(-)
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
-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
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 +++-
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
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
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
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
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 - 100 of 983 matches
Mail list logo