Let the host differentiate between a read error and a CRC check error on
the device side.
Signed-off-by: Javier González <jav...@cnexlabs.com>
---
include/linux/lightnvm.h | 1 +
1 file changed, 1 insertion(+)
diff --git a/include/linux/lightnvm.h b/include/linux/lightnvm.h
index 1
Fix a memory leak when target creation fails. More specifically, free
the entire device structure given to the target (tgt_dev).
Signed-off-by: Javier González <jav...@cnexlabs.com>
---
drivers/lightnvm/core.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/li
. Also, adapt rrpc to use the new erase path.
Signed-off-by: Javier González <jav...@cnexlabs.com>
---
drivers/lightnvm/core.c | 29
drivers/lightnvm/rrpc.c | 64 ++--
drivers/nvme/host/lightnvm.
According to the OCSSD 1.2 specification, the 0x200 hint enables the
media scrambler for the read/write opcode, providing that the controller
has been correctly configured by the firmware. Rename the macro to
represent this meaning.
Signed-off-by: Javier González <jav...@cnexlabs.com>
Sign
it internally. Also, adapt rrpc to use the new erase path.
Signed-off-by: Javier González <jav...@cnexlabs.com>
Signed-off-by: Matias Bjørling <mat...@cnexlabs.com>
---
drivers/lightnvm/core.c | 54 +++-
drivers/lightnvm/rrpc.c | 3 +--
drive
Free the reverse mapping table correctly on target tear down
Signed-off-by: Javier González <jav...@cnexlabs.com>
---
drivers/lightnvm/core.c | 14 +-
1 file changed, 13 insertions(+), 1 deletion(-)
diff --git a/drivers/lightnvm/core.c b/drivers/lightnvm/core.c
index c
interface to query pblk's operation and statistics.
* Implement a user - GC I/O rate-limiter
* Various bug fixes
Javier González (1):
lightnvm: physical block device (pblk) target
Documentation/lightnvm/pblk.txt | 21 +
drivers/lightnvm/Kconfig | 18 +
drivers/lightnvm/Makefile
Add ECC error codes to enable the appropriate handling in the target.
Signed-off-by: Javier González <jav...@cnexlabs.com>
---
include/linux/lightnvm.h | 2 ++
1 file changed, 2 insertions(+)
diff --git a/include/linux/lightnvm.h b/include/linux/lightnvm.h
index e3ccaff..33643ae
Device blocks should be marked by the device and considered as bad
blocks by the media manager. Thus, do not make assumptions on which
blocks are going to be used by the device. In doing so we might lose
valid blocks from the free list.
Signed-off-by: Javier González <jav...@cnexlabs.
block management to rrpc.
Signed-off-by: Javier González <jav...@cnexlabs.com>
---
drivers/lightnvm/core.c | 27 +++
drivers/lightnvm/gennvm.c | 25 +
drivers/lightnvm/rrpc.c | 34 +-
drivers/lightnvm/sysblk.
which target exclusively owns each target and can
therefore allocate and free all the necessary structures before
initializing the target. Not exclusively owned LUNs belong to the media
manager in any case.
Adapt rrpc to not use the reserve_lun/release_lun callback functions.
Signed-off-by: Javier
rrpc cannot handle bios of size > 256kb due to NVME's 64 bit completion
bitmap. If a larger bio comes, split it explicitly.
Signed-off-by: Javier González <jav...@cnexlabs.com>
---
drivers/lightnvm/rrpc.c | 6 ++
1 file changed, 6 insertions(+)
diff --git a/drivers/lightnvm/rrpc.c
Erases might be subject to host hints. An example is multi-plane
programming to erase blocks in parallel. Enable targets to specify this
hints.
Signed-off-by: Javier González <jav...@cnexlabs.com>
---
drivers/lightnvm/core.c | 9 ++---
drivers/lightnvm/gennvm.c| 5 ++---
d
, since LUNs are managed
strictly by the target, there is no need for the media manager to
reserve GC blocks.
As a FTL, rrpc owns exclusively its LUNs. Therefore, adapt rrpc to use
the new management interface.
Signed-off-by: Javier González <jav...@cnexlabs.com>
---
drivers/lightnvm/core.c
Device blocks should be marked by the device and considered as bad
blocks by the media manager. Thus, do not make assumptions on which
blocks are going to be used by the device. In doing so we might lose
valid blocks from the free list.
Signed-off-by: Javier González <jav...@cnexlabs.
V2: Rebase patches on Matias' for-next
Javier González (7):
lightnvm: enable to send hint to erase command
lightnvm: do not decide on device blocks
lightnvm: manage block list on LUN owner
lightnvm: drop reserve and release LUN callbacks
lightnvm: export set bad block table
lightnvm
rrpc cannot handle bios of size > 256kb due to NVMe using a 64 bit
bitmap to signal I/O completion. If a larger bio comes, split it
explicitly.
Signed-off-by: Javier González <jav...@cnexlabs.com>
---
drivers/lightnvm/rrpc.c | 6 ++
1 file changed, 6 insertions(+)
diff --git
Add ECC error codes to enable the appropriate handling in the target.
Signed-off-by: Javier González <jav...@cnexlabs.com>
---
include/linux/lightnvm.h | 2 ++
1 file changed, 2 insertions(+)
diff --git a/include/linux/lightnvm.h b/include/linux/lightnvm.h
index e3ccaff..33643ae
From: Javier González <jav...@javigon.com>
LUNs can be exclusively owned by a target through the media manager's
reserve_lun function. In this case, the target should implement its own
provisioning and manage internally the free/used/bad block list.
This patch introduces a LUN mana
From: Javier González <jav...@javigon.com>
On target initialization, targets use callbacks to the media manager to
configure the LUNs they use. In order to simplify the flow, drop this
callbacks and manage everything internally on the media manager.
By making use of the newly introdu
Erases might be subject to host hints. An example is multi-plane
programming to erase blocks in parallel. Enable targets to specify this
hints.
Signed-off-by: Javier González <jav...@cnexlabs.com>
---
drivers/lightnvm/core.c | 9 ++---
drivers/lightnvm/gennvm.c| 5 ++---
d
> On 23 Nov 2016, at 13.06, Matias Bjørling <m...@lightnvm.io> wrote:
>
> On 11/21/2016 01:10 PM, Javier González wrote:
>> V2:
>> - Fix 2 bad memory free on error rrpc init error handling. Reported by
>>kbuild.
>>
>> This patchset simplifies
On target-specific operations pass on nvm_tgt_dev instead of the generic
nvm device.
Signed-off-by: Javier González <jav...@cnexlabs.com>
---
drivers/lightnvm/core.c | 15 ++-
drivers/lightnvm/rrpc.c | 14 +++---
drivers/lightnvm/rrpc.h | 2 +-
include/linux/ligh
Before vectored I/Os were supported on rrpc, the physical address was
stored as part of the nvm_rqd request. This variable become obsolete
when the ppa_list was introduced. Cleanup this variable.
Signed-off-by: Javier González <jav...@cnexlabs.com>
---
drivers/lightnvm/rrpc.c | 6 --
d
. Patches apply to you
for-4.10/core
Javier González (20):
lightnvm: enable to send hint to erase command
lightnvm: do not protect block 0
lightnvm: export set bad block table
lightnvm: add ECC error codes
lightnvm: rrpc: split bios of size > 256kb
lightnvm: remove sysfs configurat
From: Javier González <j...@lightnvm.io>
Bad blocks should be managed by block owners. This would be either
targets for data blocks or sysblk for system blocks.
In order to support this, export two functions: One to mark a block as
an specific type (e.g., bad block) and another to update t
Cleanup definition leftovers from old gennvm interface
Signed-off-by: Javier González <jav...@cnexlabs.com>
---
include/linux/lightnvm.h | 6 --
1 file changed, 6 deletions(-)
diff --git a/include/linux/lightnvm.h b/include/linux/lightnvm.h
index 6b26a32..e598308 100644
--- a/include
LightNVM used to be managed and configured through sysfs. Since the
introduction of management ioctls this interface is redundant and
outdated. Get rid of it.
Signed-off-by: Javier González <jav...@cnexlabs.com>
---
drivers/lightnvm/core.c
Target devices do not have access to the device driver operations.
Introduce a helper function that exposes the max. number of physical
sectors supported by the underlying device.
Signed-off-by: Javier González <jav...@cnexlabs.com>
---
drivers/lightnvm/core.c | 8
include
From: Javier González <j...@lightnvm.io>
Erases might be subject to host hints. An example is multi-plane
programming to erase blocks in parallel. Enable targets to specify this
hints.
Signed-off-by: Javier González <jav...@cnexlabs.com>
Signed-off-by: Matias Bjørling <m
From: Javier González <j...@lightnvm.io>
rrpc cannot handle bios of size > 256kb due to NVMe using a 64 bit
bitmap to signal I/O completion. If a larger bio comes, split it
explicitly.
Signed-off-by: Javier González <jav...@cnexlabs.com>
Signed-off-by: Matias Bjørling &l
from the media manager.
Signed-off-by: Javier González <jav...@cnexlabs.com>
---
drivers/lightnvm/core.c | 95 ++---
drivers/lightnvm/gennvm.c| 145 +++-
drivers/lightnvm/rrpc.c | 196 ---
d
There is a constant to refer to free blocks. Use it when marking bad
blocks instead of using a constant value
Signed-off-by: Javier González <jav...@cnexlabs.com>
---
drivers/lightnvm/gennvm.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/lightnvm/gennvm.c b/d
manager in order to do target
mapping translations when targets are divided on different physical
partitions.
Signed-off-by: Javier González <jav...@cnexlabs.com>
---
drivers/lightnvm/rrpc.c | 30 --
include/linux/lightnvm.h | 30 ++
2
on the
merge patch. General information on the Open-Channel SSD project can be
seen in [3].
[1] https://github.com/OpenChannelSSD/linux
[2] http://openchannelssd.readthedocs.io/en/latest/
[3] http://lightnvm.io
Thanks,
Javier
> On 18 Nov 2016, at 16.03, Javier González <j...@lightnvm.io&
the path for a
partition manager to sit directly underneath LightNVM targets.
Signed-off-by: Javier González <jav...@cnexlabs.com>
---
drivers/lightnvm/core.c | 14 +-
drivers/lightnvm/gennvm.c| 336 ++-
drivers/lightnvm/gennvm.h
Since LUNs are managed internally on the target, there is no need for
the media manager to implement a get_lun operation.
Signed-off-by: Javier González <jav...@cnexlabs.com>
---
drivers/lightnvm/gennvm.c | 13 +
drivers/lightnvm/rrpc.c | 23 +++
include
from the media manager.
Signed-off-by: Javier González <jav...@cnexlabs.com>
---
drivers/lightnvm/core.c | 95 ++---
drivers/lightnvm/gennvm.c| 145 +++-
drivers/lightnvm/rrpc.c | 196 ---
d
. This is
done in preparation for the pblk target.
Javier González (8):
lightnvm: move block provisioning to targets
lightnvm: remove get_lun operation on gennvm
lightnvm: remove debug lun statistics from gennvm
lightnvm: eliminate nvm_block abstraction on mm
lightnvm: eliminate nvm_lun
Since LUNs are managed internally on targets, the media manager has no
access to the free LUN lists. Thus, debug functions that show LUN
information on the device should not be implemented on the media
manager, but rather on the target in itself.
Signed-off-by: Javier González <
On target-specific operations pass on nvm_tgt_dev instead of the generic
nvm device.
Signed-off-by: Javier González <jav...@cnexlabs.com>
---
drivers/lightnvm/core.c | 15 ++-
drivers/lightnvm/rrpc.c | 14 +++---
drivers/lightnvm/rrpc.h | 2 +-
include/linux/ligh
Target devices do not have access to the device driver operations.
Introduce a helper function that exposes the max. number of physical
sectors supported by the underlying device.
Signed-off-by: Javier González <jav...@cnexlabs.com>
---
drivers/lightnvm/core.c | 8
include
Hi Bart,
Thanks for reviewing the code.
> On 8 Apr 2017, at 22.56, Bart Van Assche <bart.vanass...@sandisk.com> wrote:
>
> On 04/07/17 11:50, Javier González wrote:
>> Documentation/lightnvm/pblk.txt | 21 +
>> drivers/lightnvm/Kconfig | 19 +
&
Prefix the nvm_free static function with a missing static keyword.
Signed-off-by: Javier González <jav...@cnexlabs.com>
---
drivers/lightnvm/core.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/lightnvm/core.c b/drivers/lightnvm/core.c
index bdbb333..3e51a05
nts on GC workqueue management and victim selection.
* Implement sysfs interface to query pblk's operation and statistics.
* Implement a user - GC I/O rate-limiter
* Various bug fixes
Javier González (1):
lightnvm: physical block device (pblk) target
Documentation/lightnvm/pblk.txt | 21 +
driv
Convert sprintf calls to snprintf in order to make possible buffer
overflow more obvious.
Signed-off-by: Javier González <jav...@cnexlabs.com>
---
drivers/lightnvm/core.c | 7 ---
1 file changed, 4 insertions(+), 3 deletions(-)
diff --git a/drivers/lightnvm/core.c b/drivers/lightnvm/
ine
instead of per LUN. This allows for space optimizations.
* Improvements on GC workqueue management and victim selection.
* Implement sysfs interface to query pblk's operation and statistics.
* Implement a user - GC I/O rate-limiter
* Various bug fixes
Javier González (1):
lightnvm: physi
Convert sprintf calls to strlcpy in order to make possible buffer
overflow more obvious.
Signed-off-by: Javier González <jav...@cnexlabs.com>
---
drivers/lightnvm/core.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/drivers/lightnvm/core.c b/drivers/lightnvm/
Last small lightnvm fixes for lightnvm core. These are motivated by
Bart's comments on pblk's patch.
Javier González (3):
lightnvm: clean unused variable
lightnvm: fix type checks on rrpc
lightnvm: convert sprintf into strlcpy
drivers/lightnvm/core.c | 9 +++--
drivers/lightnvm
Convert sprintf calls to strlcpy in order to make possible buffer
overflow more obvious.
Signed-off-by: Javier González <jav...@cnexlabs.com>
---
drivers/lightnvm/core.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/drivers/lightnvm/core.c b/drivers/lightnvm/
Clean unused variable on lightnvm core.
Signed-off-by: Javier González <jav...@cnexlabs.com>
---
drivers/lightnvm/core.c | 3 ---
1 file changed, 3 deletions(-)
diff --git a/drivers/lightnvm/core.c b/drivers/lightnvm/core.c
index eb9ab1a..258007a 100644
--- a/drivers/lightnvm/core.c
sector_t is always unsigned, therefore avoid < 0 checks on it.
Signed-off-by: Javier González <jav...@cnexlabs.com>
---
drivers/lightnvm/rrpc.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/lightnvm/rrpc.c b/drivers/lightnvm/rrpc.c
index 5dba544..cf0e2
> On 12 Apr 2017, at 00.23, Bart Van Assche <bart.vanass...@sandisk.com> wrote:
>
> On Wed, 2017-04-12 at 00:13 +0200, Javier González wrote:
>> please point out to any other tools/concerns you may have.
>
> Hello Javier,
>
> Do you already have an account a
ent and victim selection.
* Implement sysfs interface to query pblk's operation and statistics.
* Implement a user - GC I/O rate-limiter
* Various bug fixes
Javier González (1):
lightnvm: physical block device (pblk) target
Documentation/lightnvm/pblk.txt | 21 +
drivers/lightnvm/Kcon
Hi Bart,
> On 11 Apr 2017, at 17.19, Bart Van Assche <bart.vanass...@sandisk.com> wrote:
>
> On Tue, 2017-04-11 at 16:31 +0200, Javier González wrote:
>> Changes since v4:
>> * Rebase on top of Matias' for-4.12/core
>> * Fix type implicit conversions reporte
> On 10 Apr 2017, at 20.56, Bart Van Assche <bart.vanass...@sandisk.com> wrote:
>
> On Mon, 2017-04-10 at 20:51 +0200, Javier González wrote:
>> Convert sprintf calls to snprintf in order to make possible buffer
>> overflow more obvious.
>>
>> Signed-off-b
> On 23 Apr 2017, at 19.59, Matias Bjørling <m...@lightnvm.io> wrote:
>
> On 04/22/2017 11:31 AM, Javier González wrote:
>>> On 22 Apr 2017, at 11.22, Matias Bjørling <m...@lightnvm.io> wrote:
>>>
>>> On 04/22/2017 01:32 AM, Javier González
> On 20 Apr 2017, at 07.38, NeilBrown wrote:
>
> blk_queue_split() is always called with the last arg being q->bio_split,
> where 'q' is the first arg.
>
> Also blk_queue_split() sometimes uses the passed-in 'bs' and sometimes uses
> q->bio_split.
>
> This is inconsistent and
> On 22 Apr 2017, at 11.22, Matias Bjørling <m...@lightnvm.io> wrote:
>
> On 04/22/2017 01:32 AM, Javier González wrote:
>> When block erases fail, these blocks are marked bad. The number of valid
>> blocks in the line was not updated, which could cause an infinit
Reorder disk allocation such that the disk structure can be put
safely.
Signed-off-by: Javier González <jav...@cnexlabs.com>
---
drivers/lightnvm/core.c | 14 +++---
1 file changed, 7 insertions(+), 7 deletions(-)
diff --git a/drivers/lightnvm/core.c b/drivers/lightnvm/core.c
The NVMe I/O command control bits are 16 bytes, but is interpreted as
32 bytes in the lightnvm user I/O data path.
Signed-off-by: Javier González <jav...@cnexlabs.com>
---
drivers/nvme/host/lightnvm.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/nvm
hen cleaning up a successful initialized target.
Signed-off-by: Javier González <jav...@cnexlabs.com>
Signed-off-by: Matias Bjørling <mat...@cnexlabs.com>
---
drivers/lightnvm/core.c | 16 +---
1 file changed, 9 insertions(+), 7 deletions(-)
diff --git a/drivers/lightnvm/c
at any moment in time without requiring a full-device
erase.
Signed-off-by: Javier González <jav...@cnexlabs.com>
---
drivers/lightnvm/core.c | 14 +++---
drivers/lightnvm/rrpc.c | 3 ++-
include/linux/lightnvm.h | 3 ++-
include/uapi/linux/lightnvm.h | 4
4
.
* Improvements on GC workqueue management and victim selection.
* Implement sysfs interface to query pblk's operation and statistics.
* Implement a user - GC I/O rate-limiter
* Various bug fixes
Javier González (1):
lightnvm: physical block device (pblk) target
Documentation/lightnvm/pblk.txt
make a backport when Greg makes 4.12 stable?
Changes since V1:
- Make advanced_bio a bool to improve readability, as suggested by Jens
Thanks,
Javier
Javier González (1):
lightnvm: pblk: advance bio according to lba index
drivers/lightnvm/pblk-rb.c | 4 ++--
rivers/lightnvm/pblk-read.c
bio. In the
cases when the same I/O also contains a cache hit, data corresponding
to this lba will be copied to the wrong bv_page. Fix this by advancing
the bio as we do in the case of a cache hit.
Fixes: a4bd217b4326 lightnvm: physical block device (pblk) target
Signed-off-by: Javier González &
> On 28 Jul 2017, at 16.06, Jens Axboe <ax...@kernel.dk> wrote:
>
> On 07/28/2017 07:13 AM, Javier González wrote:
>> Hi Jens,
>>
>> Can you pick up this fix for 4.13? It is a fix to a read corruption in
>> pblk that has been there form the beginning.
When removing a pblk instance, control the write I/O flow to the
controller as we do in the fast path.
Signed-off-by: Javier González <jav...@cnexlabs.com>
Signed-off-by: Matias Bjørling <mat...@cnexlabs.com>
---
drivers/lightnvm/pblk-cor
and can be found at:
https://github.com/OpenChannelSSD/linux pblk.for-4.13
Thanks,
Javier
Javier González (2):
lightnvm: pblk: control I/O flow also on tear down
lightnvm: pblk: remove unnecessary checks
drivers/lightnvm/pblk-core.c | 69 ++--
drivers
Remove unnecessary checks when freeing dma memory in the completion
path.
Signed-off-by: Javier González <jav...@cnexlabs.com>
Signed-off-by: Matias Bjørling <mat...@cnexlabs.com>
---
drivers/lightnvm/pblk-write.c | 7 +--
1 file changed, 1 insertion(+), 6 deletions(-)
diff --g
bio. In the
cases when the same I/O also contains a cache hit, data corresponding
to this lba will be copied to the wrong bv_page. Fix this by advancing
the bio as we do in the case of a cache hit.
Fixes: a4bd217b4326 lightnvm: physical block device (pblk) target
Signed-off-by: Javier González &
> On 27 Jul 2017, at 18.31, Jens Axboe <ax...@kernel.dk> wrote:
>
> On 07/27/2017 08:49 AM, Javier González wrote:
>> When a lba either hits the cache or corresponds to an empty entry in the
>> L2P table, we need to advance the bio according to the position in
Remove unused variable.
Signed-off-by: Javier González <jav...@cnexlabs.com>
Signed-off-by: Matias Bjørling <mat...@cnexlabs.com>
---
drivers/lightnvm/pblk-sysfs.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/lightnvm/pblk-sysfs.c b/drivers/l
Prevent pblk->lines being double freed in case of an error during pblk
initialization.
Fixes: dd2a43437337: "lightnvm: pblk: sched. metadata on write thread"
Reported-by: Dan Carpenter <dan.carpen...@oracle.com>
Signed-off-by: Javier González <jav...@cnexlabs.com>
Signe
the L2P
map right before reading the cache.
Signed-off-by: Javier González <jav...@cnexlabs.com>
Signed-off-by: Matias Bjørling <mat...@cnexlabs.com>
---
drivers/lightnvm/pblk-rb.c | 15 ---
drivers/lightnvm/pblk-read.c | 3 +--
drivers/lightnvm/pblk.h | 10 +++
Fix bad metadata buffer assignations introduced when refactoring the
medatada write path.
Fixes: dd2a43437337 lightnvm: pblk: sched. metadata on write thread
Signed-off-by: Javier González <jav...@cnexlabs.com>
Signed-off-by: Matias Bjørling <mat...@cnexlabs.com>
---
drivers/l
Do bitmap checks only when debug mode is enable. The line bitmap used
for mapping to physical addresses is fairly large (~512KB) and it is
expensive to do this checks on the fast path.
Signed-off-by: Javier González <jav...@cnexlabs.com>
Signed-off-by: Matias Bjørling <mat...@cne
-by: Javier González <jav...@cnexlabs.com>
Signed-off-by: Matias Bjørling <mat...@cnexlabs.com>
---
drivers/lightnvm/pblk-rb.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/drivers/lightnvm/pblk-rb.c b/drivers/lightnvm/pblk-rb.c
index 665a4ccfe7f5..2dda874af890 100644
-
When removing a pblk instance, pad the current line using asynchronous
I/O. This reduces the removal time from ~1 minute in the worst case to a
couple of seconds.
Signed-off-by: Javier González <jav...@cnexlabs.com>
Signed-off-by: Matias Bjørling <mat...@cnexlabs.com>
---
drivers/l
Use the right types and conversions on le64 variables. Reported by
sparse.
Signed-off-by: Javier González <jav...@cnexlabs.com>
Signed-off-by: Matias Bjørling <mat...@cnexlabs.com>
---
drivers/lightnvm/pblk-core.c | 2 +-
drivers/lightnvm/pblk-gc.c | 5 -
drivers/l
Add a sanity check to the pblk initialization sequence in order to
ensure that enough LUNs have been allocated to store the line metadata.
Signed-off-by: Javier González <jav...@cnexlabs.com>
Signed-off-by: Matias Bjørling <mat...@cnexlabs.com>
---
drivers/lightnvm/pblk-init.c | 6 ++
For now, we allocate a per I/O buffer for GC data. Since the potential
size of the buffer is 256KB and GC is not in the fast path, do this
allocation with vmalloc. This puts lets pressure on the memory
allocator at no performance cost.
Signed-off-by: Javier González <jav...@cnexlabs.com>
that we can make in pblk.
The patches apply on top of your for-4.13/block and can be found at:
https://github.com/OpenChannelSSD pblk.for-4.13
Please pull.
Thanks,
Javier
Javier González (10):
lightnvm: pblk: fix bad le64 assignations
lightnvm: pblk: fix double-free on pblk init
> On 28 Jun 2017, at 16.26, Dan Carpenter <dan.carpen...@oracle.com> wrote:
>
> Hello Javier González,
>
> The patch dd2a43437337: "lightnvm: pblk: sched. metadata on write
> thread" from Jun 26, 2017, leads to the following static checker
> warning:
>
> On 28 Jun 2017, at 17.03, Dan Carpenter <dan.carpen...@oracle.com> wrote:
>
> On Wed, Jun 28, 2017 at 04:46:02PM +0200, Javier González wrote:
>>> On 28 Jun 2017, at 16.26, Dan Carpenter <dan.carpen...@oracle.com> wrote:
>>>
>>> Hello Javier Gonz
htnvm: physical block device (pblk) target"
Signed-off-by: Javier González <jav...@cnexlabs.com>
---
drivers/lightnvm/pblk-core.c | 28 +++-
drivers/lightnvm/pblk-gc.c| 2 +-
drivers/lightnvm/pblk-init.c | 9 ++---
drivers/lightnvm/pblk-map.c | 4 ++--
Fix bad error check
Fixes: a4bd217b4326 "lightnvm: physical block device (pblk) target"
Signed-off-by: Javier González <jav...@cnexlabs.com>
---
drivers/lightnvm/pblk-core.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/lightnvm/pblk-core.c b/drive
When write recovery fails, Free memory for the recovery structure.
Fixes: a4bd217b4326 "lightnvm: physical block device (pblk) target"
Signed-off-by: Javier González <jav...@cnexlabs.com>
---
drivers/lightnvm/pblk-write.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/
bio_init_idx;
Thanks Dan. While you are at it, can you also modify the type on the
other 2 calls to pblk_get_secs in pblk-cache and pblk-core?
Otherwise, it is a good catch.
Reviewed-by: Javier González <jav...@cnexlabs.com>
Javier
signature.asc
Description: Message signed with OpenPGP
oto out;
> }
>
> - if (lba == ADDR_EMPTY)
> - goto out;
> -
> spin_lock(>trans_lock);
> ppa = pblk_trans_map_get(pblk, lba);
> spin_unlock(>trans_lock);
Thanks Dan.
Reviewed-by: Javier González <jav...@cnexlabs.com>
signature.asc
Description: Message signed with OpenPGP
When a pblk line fails (or is recovered), make sure to take the line
management lock.
Fixes: a4bd217b4326 "lightnvm: physical block device (pblk) target"
Signed-off-by: Javier González <jav...@cnexlabs.com>
---
drivers/lightnvm/pblk-core.c | 6 +++---
1 file changed, 3
When a line allocation fails, for example, due to having too many bad
blocks, free its metadata correctly.
Fixes: a4bd217b4326 "lightnvm: physical block device (pblk) target"
Signed-off-by: Javier González <jav...@cnexlabs.com>
---
drivers/lightnvm/pblk-core.c | 16
> On 24 Apr 2017, at 12.24, Dan Carpenter <dan.carpen...@oracle.com> wrote:
>
> On Sat, Apr 22, 2017 at 12:24:50AM +0200, Javier González wrote:
>>> On 21 Apr 2017, at 22.53, Dan Carpenter <dan.carpen...@oracle.com> wrote:
>>>
>>> This is
e it will cause memory leak. Also skip assign blks to
> rlun->bb_list when error.
>
> Fixes: a4bd217b4326 ("lightnvm: physical block device (pblk) target")
> Signed-off-by: Wei Yongjun <weiyongj...@huawei.com>
> ---
>
Thanks Wei. Looks good.
Reviewed-by: Javie
> On 2 May 2017, at 23.51, NeilBrown wrote:
>
>>
>> Hi Neil,
>>
>> Looks good. Thanks for fixing this. I did not know that bio_clone_bioset
>> was not supposed to be used on drivers.
>
> Prior to my patchset, using bio_clone_bioset() wasn't wrong in drivers,
> though it was a
Braces around the error patch for metadata pre-allocation are wrongly
placed. This causes a memory leak in case of a memory allocation
failure. Fix it
Signed-off-by: Javier González <jav...@cnexlabs.com>
---
drivers/lightnvm/pblk-init.c | 30 +++---
1 file chang
> On 8 May 2017, at 18.39, Javier González <j...@lightnvm.io> wrote:
>
>> On 8 May 2017, at 18.06, Jens Axboe <ax...@kernel.dk> wrote:
>>
>> On 05/08/2017 09:49 AM, Javier González wrote:
>>>> On 8 May 2017, at 17.40, Jens Axboe <ax...@kernel.d
> On 9 May 2017, at 12.58, Ming Lei <ming@redhat.com> wrote:
>
> On Tue, May 09, 2017 at 12:34:42PM +0200, Javier González wrote:
>>> On 8 May 2017, at 18.39, Javier González <j...@lightnvm.io> wrote:
>>>
>>>> On 8 May 2017, at 18.06, Jens
> On 9 May 2017, at 13.21, Javier González <j...@lightnvm.io> wrote:
>
>> On 9 May 2017, at 12.58, Ming Lei <ming@redhat.com> wrote:
>>
>> On Tue, May 09, 2017 at 12:34:42PM +0200, Javier González wrote:
>>>> On 8 May 2017, at 18.39, Javier Gon
Read requests allocate some extra memory to store its per I/O context.
Instead of requiring yet another memory pool for other type of requests,
generalize this context allocation (and change naming accordingly).
Signed-off-by: Javier González <jav...@cnexlabs.com>
Signed-off-by: Matias Bj
1 - 100 of 371 matches
Mail list logo