running some performance tests to
calculate the overhead of attacking an operation here, so I don’t have data
yet.
Best,
-/--
Javier González
IT University of Copenhagen
Rued Langgaards Vej 7, 2300
København S, Danmark
Office: 4D23
http
From: Javier Gonzalez jav...@javigon.com
This commit introduces a generic TrustZone driver to the Linux Kernel. Since
there is no place to add drivers related to secure processors, a new subsystem
for secure hardware in general (drivers/sechw) is also introduced.
Today, TrustZone solutions are
Hi all,
This set of patches is a first iteration to introduce a generic
TrustZone driver to the Linux Kernel. Since there is no place to add
drivers related to secure processors, a new subsystem for secure
hardware in general (drivers/sechw) is also introduced. TPM is a good
candidate to me moved
From: Javier Gonzalez jav...@javigon.com
Sierraware's Open Virtualization driver. It allows to communicate to Open
Virtualization's TEE to execute sensitive tasks in the secure world.
This patch is based on SierraWare's Open Virtualization kernel driver and header
files. This code is not
Hi,
On 28 Nov 2014, at 20:15, Greg KH gre...@linuxfoundation.org wrote:
On Fri, Nov 28, 2014 at 04:03:34PM +0100, Javier González wrote:
From: Javier Gonzalez jav...@javigon.com
Any reason you sent this twice?
My mistake, sorry.
And your code is full of FIXMEs, which implies that you
Hi,
On 28 Nov 2014, at 23:16, Greg KH gre...@linuxfoundation.org wrote:
On Fri, Nov 28, 2014 at 10:09:55PM +0100, Javier González wrote:
Thanks for your comments. I hope that you find the time to look deeper
in the code.
With my workload, I don't have time to look at anything that people
Jason,
On 29 Nov 2014, at 19:18, Jason Cooper ja...@lakedaemon.net wrote:
Javier,
On Fri, Nov 28, 2014 at 04:03:33PM +0100, Javier González wrote:
Hi all,
This set of patches is a first iteration to introduce a generic
TrustZone driver to the Linux Kernel. Since there is no place to add
On 18 Apr 2015, at 21:01, Arnd Bergmann a...@arndb.de wrote:
On Saturday 18 April 2015 20:49:03 Greg Kroah-Hartman wrote:
On Sat, Apr 18, 2015 at 11:36:53AM +0200, Javier González wrote:
Hi,
A: No.
Q: Should I include quotations after my reply?
http://daringfireball.net/2007/07/on_top
On 19 Apr 2015, at 21:47, Arnd Bergmann a...@arndb.de wrote:
On Sunday 19 April 2015 13:17:20 Javier González wrote:
Only providing user space support would defeat one of the main purposes
of the driver. We could better organize the patches and divide them into user
space support
Hi,
On 16 Apr 2015, at 16:55, Keith Busch keith.bu...@intel.com wrote:
On Wed, 15 Apr 2015, Matias Bjørling wrote:
@@ -2316,7 +2686,9 @@ static int nvme_dev_add(struct nvme_dev *dev)
struct nvme_id_ctrl *ctrl;
void *mem;
dma_addr_t dma_addr;
-int shift =
Hi,
We have discussed and implemented an in-kernel interface for the driver.
However, we need to agree on that interface with the kernel submodules that
can be interested in using it (e.g., IMA, keyring). We though it was easier
to have a framework in place before taking this space. This makes
Hi,
Just for completeness,
On 20 May 2015, at 14:16, Jens Wiklander jens.wiklan...@linaro.org wrote:
Hi,
On Mon, May 18, 2015 at 02:18:50PM +0100, Mark Rutland wrote:
Hi,
On Fri, May 15, 2015 at 07:34:27AM +0100, Jens Wiklander wrote:
[…]
I'm also very concerned that the
) consecutively,
we introduce lockless get_/put_block primitives so that the open and
close list locks and future common logic is handled within the nvm_lun lock.
Signed-off-by: Javier González <jav...@cnexlabs.com>
---
drivers/lightnvm/core.c | 14 +++
drivers/lightnvm/gennvm.
Currently a rrpc block only points to the nvm_lun it belongs to.
Maintaining a reference to the rrpc lun allows to manage rrpc specific
behavior between an rrpc block and rrpc lun.
Signed-off-by: Javier González <jav...@cnexlabs.com>
---
drivers/lightnvm/rrpc.c | 1 +
drivers/lightnvm/rrpc
) consecutively,
we introduce lockless get_/put_block primitives so that the open and
close list locks and future common logic is handled within the nvm_lun lock.
Signed-off-by: Javier González <jav...@cnexlabs.com>
---
drivers/lightnvm/core.c | 14 +++
drivers/lightnvm/gennvm.
Hi,
> On 01 Jun 2016, at 14:41, Jens Wiklander wrote:
>
> [TL;DR; This patch set needs more review, if you're using OP-TEE please
> help reviewing.]
>
> This patch set introduces a generic TEE subsystem. The TEE subsystem will
> contain drivers for various TEE
iver" by among others
> Jean-michel DELORME<jean-michel.delo...@st.com> and
> Emmanuel MICHEL <emmanuel.mic...@st.com>
> * "Generic TrustZone Driver" by Javier González <jav...@javigon.com>
>
> Acked-by: Andreas Dannenberg <dannenb...@ti.com>
&
iver" by among others
> Jean-michel DELORME<jean-michel.delo...@st.com> and
> Emmanuel MICHEL <emmanuel.mic...@st.com>
> * "Generic TrustZone Driver" by Javier González <jav...@javigon.com>
>
> Acked-by: Andreas Dannenberg <dannenb...@ti.com>
&
iver" by among others
> Jean-michel DELORME<jean-michel.delo...@st.com> and
> Emmanuel MICHEL <emmanuel.mic...@st.com>
> * "Generic TrustZone Driver" by Javier González <jav...@javigon.com>
>
> Acked-by: Andreas Dannenberg <dannenb...@ti.com>
&
>
> On 01 Jun 2016, at 14:41, Jens Wiklander wrote:
>
> Adds a OP-TEE driver which also can be compiled as a loadable module.
>
> * Targets ARM and ARM64
> * Supports using reserved memory from OP-TEE as shared memory
> * Probes OP-TEE version using SMCs
> * Accepts
Hi Matias,
Thanks for the quick reply and revision. I’ll add the changes and merge
the other patches for the next version. I have a couple of remarks
inline.
> On 05 Feb 2016, at 15:52, Matias Bjørling <m...@lightnvm.io> wrote:
>
> On 02/04/2016 02:08 PM, Javier González
When getting a new block from the media manager, calculate the right
rblk, considering that the pool of flash blocks has been divided among
the different luns exposed by the underlying device.
Signed-off-by: Javier González <jav...@cnexlabs.com>
---
drivers/lightnvm/rrpc.c | 2 +-
d
to simplify calculations, and avoid repeating them in a per-I/O
basis, this patch pre-calculates write granurality values as part of the
device characteristics in the bring up.
Signed-off-by: Javier González <jav...@cnexlabs.com>
---
drivers/lightnvm/rrpc.c | 4
drivers/lightnvm/rrpc
feedback on the architecture, design and implementation are more
than welcome.
Thanks,
Javier
[1] https://github.com/OpenChannelSSD/qemu-nvme
Javier González (4):
lightnvm: precalculate controller write boundaries
lightnvm: add write buffering for rrpc
lightnvm: read from rrpc write buffer
Add a target to print its debug information when lightnvm debug
information is printed trough configure_debug.
In rrpc, we add statistics on inflight reads and writes, as well as
submitted and synced writes.
Signed-off-by: Javier González <jav...@cnexlabs.com>
---
drivers/lightnvm/core.c
to, for example, only
flush at the maximum supported (64 pages in nvme). Apart from enabling
the use of rrpc in real hardware, this buffering strategy will be used
for recovery; if a block becomes bad, a new block can be allocated to
persist valid data.
Signed-off-by: Javier González <
in the bio, a new bio is submitted to the media to retrieve
the necessary pages. The original bio is updated accordingly.
Signed-off-by: Javier González <jav...@cnexlabs.com>
---
drivers/lightnvm/rrpc.c | 451 ---
include/linux/lightnvm.h | 1 +
2 fi
In rrpc, some calculations using block ids assume only one LUN being
used. This is a problem when an Open-Channel SSD with multiple LUNs is
used. This patch modifies this calculations.
Signed-off-by: Javier González <jav...@cnexlabs.com>
---
drivers/lightnvm/rrpc.c | 5 +++--
drivers/li
Add a warning if irqs are disabled when locking a new address in rrpc.
The typical path to a new request does not disable irqs, but this is not
guaranteed in the future.
Signed-off-by: Javier González <jav...@cnexlabs.com>
---
drivers/lightnvm/rrpc.h | 2 ++
1 file changed, 2 insertions(+)
one address at the time - is running.
Signed-off-by: Javier González <jav...@cnexlabs.com>
---
drivers/lightnvm/rrpc.h | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/drivers/lightnvm/rrpc.h b/drivers/lightnvm/rrpc.h
index c27283a..3989d65 100644
--- a/drivers/li
because when a mapping fails something bad has
happened already. Still, invalidating pages in the failed bio will help
GC.
Signed-off-by: Javier González <jav...@cnexlabs.com>
---
drivers/lightnvm/rrpc.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/drivers/lightnvm/rrpc.c b/drivers/li
>
> On 03 Feb 2016, at 09:10, Matias Bjørling <m...@lightnvm.io> wrote:
>
> On 02/01/2016 02:10 PM, Javier González wrote:
>> If a page mapping fails when mapping several pages in a single write bio
>> request, make sure that already mapped pages are invalidated.
context.
Signed-off-by: Javier González <jav...@cnexlabs.com>
---
drivers/lightnvm/rrpc.c | 23 ++-
1 file changed, 10 insertions(+), 13 deletions(-)
diff --git a/drivers/lightnvm/rrpc.c b/drivers/lightnvm/rrpc.c
index d8c7595..e2710da 100644
--- a/drivers/lightnvm/rrpc.c
/qemu-nvme
Signed-off-by: Javier González <jav...@cnexlabs.com>
---
drivers/lightnvm/rrpc.c | 45 -
drivers/lightnvm/rrpc.h | 9 +
2 files changed, 37 insertions(+), 17 deletions(-)
diff --git a/drivers/lightnvm/rrpc.c b/drivers/lightnvm/
c87ea75
Signed-off-by: Javier González <jav...@cnexlabs.com>
---
drivers/lightnvm/gennvm.c | 3 ---
1 file changed, 3 deletions(-)
diff --git a/drivers/lightnvm/gennvm.c b/drivers/lightnvm/gennvm.c
index b97801c..42c1c2a 100644
--- a/drivers/lightnvm/gennvm.c
+++ b/drivers/lightnvm/ge
> On 16 Feb 2016, at 12:28, Wenwei Tao wrote:
>
> When create a target, we specify the begin lunid and
> the end lunid, and get the corresponding continuous
> luns from media manager, if one of the luns is not free,
> we failed to create the target, even if the device's
>
From: Javier González <j...@lightnvm.io>
In rrpc, some calculations assume a certain configuration (e.g., 1 LUN,
1 sector per page). The reason behind this was that we have used a simple
configuration in QEMU to test core features generally in LightNVM, and
concretely in rrpc. This patch r
Hi Wenwei,
> On 19 Mar 2016, at 13:52, Wenwei Tao wrote:
>
> Hi Javier
>
> Thanks for the comment.
> I've been busy recently, so this letter is kind of late, hope you don't mind.
> I use the qemu-nvme you mentioned and configure the nvme device driver
> follow the
implementing the full host-based mode, do
not assume that the L2P table must be loaded on the generic media
manager; check device properties loaded on the identify command instead.
Signed-off-by: Javier González <jav...@cnexlabs.com>
---
drivers/lightnvm/gennvm.c | 3 +++
1 file changed, 3 inse
manner to, for example, take advantage of devide parallelism.
Signed-off-by: Javier González <jav...@cnexlabs.com>
---
drivers/lightnvm/rrpc.c | 5 ++---
1 file changed, 2 insertions(+), 3 deletions(-)
diff --git a/drivers/lightnvm/rrpc.c b/drivers/lightnvm/rrpc.c
index ffcfee6..48862ead
rrpc does not save any metadata on a given request. Thus, do not attempt
to free the metadata dma region.
Signed-off-by: Javier González <jav...@cnexlabs.com>
---
drivers/lightnvm/rrpc.c | 2 --
1 file changed, 2 deletions(-)
diff --git a/drivers/lightnvm/rrpc.c b/drivers/lightnvm/rrpc.c
-by: Javier González <jav...@cnexlabs.com>
---
drivers/nvme/host/lightnvm.c | 1 +
include/linux/lightnvm.h | 4 ++--
2 files changed, 3 insertions(+), 2 deletions(-)
diff --git a/drivers/nvme/host/lightnvm.c b/drivers/nvme/host/lightnvm.c
index b1a0d8b..92da28d 100644
--- a/drivers/nvm
Until now, the dma pool have been exclusively used to allocate the ppa
list being sent to the device. In pblk (upcoming), we use these pools to
allocate metadata too. Thus, we generalize the names of some variables
on the dma helper functions to make the code more readable.
Signed-off-by: Javier
>> if (dev->ops->max_phys_sect > 1) {
>> -dev->ppalist_pool = dev->ops->create_dma_pool(dev, "ppalist");
>> -if (!dev->ppalist_pool) {
>> +dev->dma_page_pool = dev->ops->create_dma_pool(dev, "ppalist");
>
> rename to dmapool or something similar?
>
>> +if
-by: Javier González <jav...@cnexlabs.com>
---
drivers/nvme/host/lightnvm.c | 1 +
include/linux/lightnvm.h | 8 ++--
2 files changed, 7 insertions(+), 2 deletions(-)
diff --git a/drivers/nvme/host/lightnvm.c b/drivers/nvme/host/lightnvm.c
index 4956de3..7886c2c 100644
--- a/driver
When REQ_FUA or REQ_FLUSH are sent from the block layer, a target might
need to pad some sectors in order to meet device constrains. ADDR_PADDED
allows to signal that such sector has been padded. It can be used to
mark both lbas and ppas.
Signed-off-by: Javier González <jav...@cnexlabs.
rrpc has assumed that medatada is always sent as a dma buffer to the
device. When this is not true, do not attempt to free a non-allocated
dma region.
Signed-off-by: Javier González <jav...@cnexlabs.com>
---
drivers/lightnvm/rrpc.c | 8 +---
1 file changed, 5 insertions(+), 3 del
Until now, the dma pool have been exclusively used to allocate the ppa
list being sent to the device. In pblk (upcoming), we use these pools to
allocate metadata too. Thus, we generalize the names of some variables
on the dma helper functions to make the code more readable.
Signed-off-by: Javier
When an address is converted from device to generic mode, the reserved
bit needs to be cleared in order to signal that the address points to a
flash block, not to a cacheline on the write buffer.
Signed-off-by: Javier González <jav...@cnexlabs.com>
---
include/linux/lightnvm.h | 3 +++
> On 05 May 2016, at 11:21, Matias Bjørling <m...@lightnvm.io> wrote:
>
> On 05/04/2016 05:31 PM, Javier González wrote:
>> Within a target, I/O requests stem from different paths, which might vary
>> in terms of the data structures being allocated, context, et
> On 05 May 2016, at 11:54, Matias Bjørling <m...@lightnvm.io> wrote:
>
>> On 05/04/2016 05:31 PM, Javier González wrote:
>> Add two precalculated values to nvm_rq: (i) maximum number of sectors
>> per general request; and (ii) minimum number of sectors per write
Eliminate redundant variable that has been superseded by the new
variables emerging from the Open-Channel SSD spec.
Signed-off-by: Javier González <jav...@cnexlabs.com>
---
drivers/lightnvm/rrpc.c | 2 +-
include/linux/lightnvm.h | 1 -
2 files changed, 1 insertion(+), 2 deletions(-)
Add two precalculated values to nvm_rq: (i) maximum number of sectors
per general request; and (ii) minimum number of sectors per write
request.
Signed-off-by: Javier González <jav...@cnexlabs.com>
---
drivers/lightnvm/core.c | 3 +++
include/linux/lightnvm.h | 4 +++-
2 files chan
The number of ppas contained on a request is not necessarily the number
of pages that it maps to neither on the target nor on the device side.
In order to avoid confusion, rename nr_pages to nr_ppas since it is what
the variable actually contains.
Signed-off-by: Javier González <
indicates
that the I/O is synchronous; and (ii) NVM_IOTYPE_CLOSE_BLK, which
indicates that the I/O closes the block to which all the ppas on the
request belong to.
Signed-off-by: Javier González <jav...@cnexlabs.com>
---
include/linux/lightnvm.h | 2 ++
1 file changed, 2 insertions(+)
diff
Expose mark_blk through the core LightNVM operations to hid the media
manager, as we do for the rest of the block operations. This is
necessary for targets to mark a growing bad block as bad before
returning it to the media manager.
Signed-off-by: Javier González <jav...@cnexlabs.
>
> On 03 May 2016, at 17:22, Arnd Bergmann wrote:
>
> A recent change to lightnvm added code to pass a kernel pointer
> to the hardware, which gcc complained about:
>
> drivers/nvme/host/lightnvm.c: In function 'nvme_nvm_rqtocmd':
> drivers/nvme/host/lightnvm.c:472:32: error:
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
, the kboject has not been created yet.
This patch adds a target function to let targets initialize their own
kboject as a child of the disk kobject.
Signed-off-by: Javier González <jav...@cnexlabs.com>
---
drivers/lightnvm/core.c | 9 +
include/linux/lightnvm.h | 5 +
2 files chang
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.
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
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
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
, 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.
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
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
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
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.
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.
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
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
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
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
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
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.
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
> 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
the nvm_block abstraction and moves
block management to the target logic. The rrpc target is transformed.
Signed-off-by: Javier González <jav...@cnexlabs.com>
---
drivers/lightnvm/core.c | 10 +-
drivers/lightnvm/gennvm.c | 205 +---
drivers/lightnvm/
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
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
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 <
Avoid calling media manager and device-specific operations directly from
rrpc. Create helper functions on lightnvm's core instead.
Signed-off-by: Javier González <jav...@cnexlabs.com>
---
drivers/lightnvm/core.c | 22 ++
drivers/lightnvm/gennvm.c | 2 --
drivers/li
From: Javier González <j...@lightnvm.io>
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.
Sign
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>
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
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
. 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>
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
and operations.
Signed-off-by: Javier González <jav...@cnexlabs.com>
---
drivers/lightnvm/gennvm.c | 85 +++
drivers/lightnvm/gennvm.h | 16 +
include/linux/lightnvm.h | 10 ++
3 files changed, 53 insertions(+), 58 deletions(-)
diff
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
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
From: Javier González <j...@lightnvm.io>
Add ECC error codes to enable the appropriate handling in the target.
Signed-off-by: Javier González <jav...@cnexlabs.com>
Signed-off-by: Matias Bjørling <m...@bjorling.me>
---
include/linux/lightnvm.h | 2 ++
1 file changed, 2 inserti
1 - 100 of 1003 matches
Mail list logo