> On 22 Feb 2018, at 08.34, Matias Bjørling wrote:
>
> On 02/21/2018 10:26 AM, Javier González wrote:
>> Separate the version between major and minor on the generic geometry.
>> Also, add a "subversion" entry to sysfs to expose the minor version
>> without breaking user space.
>> Signed-off-by: J
> On 22 Feb 2018, at 08.47, Matias Bjørling wrote:
>
> On 02/21/2018 10:26 AM, Javier González wrote:
>> Create a generic identify structure to collect the identify information
>> before knowing the spec. version. This forces different version paths to
>> cast the structure to their spec structur
On 02/21/2018 10:26 AM, Javier González wrote:
At this point, only 1.2 spec is supported, thus check for it. Also,
since device-side L2P is only supported in the 1.2 spec, make sure to
only check its value under 1.2.
Signed-off-by: Javier González
---
drivers/lightnvm/pblk-init.c | 10 +++
On 02/21/2018 10:26 AM, Javier González wrote:
In preparation for 2.0 support in pblk, rename variables referring to
the address format to addrf and reserve ppaf for the 1.2 path.
Signed-off-by: Javier González
---
drivers/lightnvm/pblk-init.c | 8
drivers/lightnvm/pblk-sysfs.c |
> On 22 Feb 2018, at 08.28, Matias Bjørling wrote:
>
> On 02/21/2018 10:26 AM, Javier González wrote:
>> Both 1.2 and 2.0 specs define a field for media and controller
>> capabilities. Also, 1.2 defines a separate field dedicated to device
>> capabilities.
>> In 2.0 sysfs, this values have been m
On 02/21/2018 10:26 AM, Javier González wrote:
Create a generic identify structure to collect the identify information
before knowing the spec. version. This forces different version paths to
cast the structure to their spec structure, thus making the code less
error prone and more maintainable.
On 02/21/2018 10:26 AM, Javier González wrote:
Complete the generic geometry structure with the maxoc and maxocpu
felds, present in the 2.0 spec.
Signed-off-by: Javier González
---
drivers/nvme/host/lightnvm.c | 4
include/linux/lightnvm.h | 2 ++
2 files changed, 6 insertions(+)
On 02/21/2018 10:26 AM, Javier González wrote:
Rename abbreviations for sector from sect_* to sec_* as most of the code
uses this format and it is confusing when using the different
structures.
Signed-off-by: Javier González
---
drivers/lightnvm/pblk-init.c | 8
drivers/lightnvm/pb
> On 22 Feb 2018, at 08.25, Matias Bjørling wrote:
>
> On 02/21/2018 10:26 AM, Javier González wrote:
>> Currently, the device geometry is stored redundantly in the nvm_id and
>> nvm_geo structures at a device level. Moreover, when instantiating
>> targets on a specific number of LUNs, these str
On 21/02/18 22:50, Dmitry Osipenko wrote:
> On 29.11.2017 16:41, Adrian Hunter wrote:
>> Define and use a blk-mq queue. Discards and flushes are processed
>> synchronously, but reads and writes asynchronously. In order to support
>> slow DMA unmapping, DMA unmapping is not done until after the next
On 02/21/2018 10:26 AM, Javier González wrote:
Separate the version between major and minor on the generic geometry.
Also, add a "subversion" entry to sysfs to expose the minor version
without breaking user space.
Signed-off-by: Javier González
---
drivers/lightnvm/core.c | 4 ++--
dri
On 02/21/2018 10:26 AM, Javier González wrote:
Both 1.2 and 2.0 specs define a field for media and controller
capabilities. Also, 1.2 defines a separate field dedicated to device
capabilities.
In 2.0 sysfs, this values have been mixed. Revert them to the right
value.
Signed-off-by: Javier Gonzá
On 02/21/2018 10:26 AM, Javier González wrote:
Assign missing mccap value on 2.0 path
Signed-off-by: Javier González
---
drivers/nvme/host/lightnvm.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/drivers/nvme/host/lightnvm.c b/drivers/nvme/host/lightnvm.c
index c81e64cc20d7..969bb874
On 02/21/2018 10:26 AM, Javier González wrote:
Currently, the device geometry is stored redundantly in the nvm_id and
nvm_geo structures at a device level. Moreover, when instantiating
targets on a specific number of LUNs, these structures are replicated
and manually modified to fit the instance
Hi Tejun,
Sorry for the delayed reply.
On 18/2/13 01:11, Tejun Heo wrote:
> Hello, Joseph.
>
> On Fri, Feb 09, 2018 at 10:15:19AM +0800, Joseph Qi wrote:
>> IIUC, we have to identify it is in blkcg_css_offline now which will
>> blkg_put. Since percpu_ref_kill_and_confirm in kill_css will set fla
On Thu, Feb 22, 2018 at 10:25:28AM +0800, Joseph Qi wrote:
> Hi Bart,
>
> Sorry for the delayed response since I was on holiday.
>
> On 18/2/10 02:44, Bart Van Assche wrote:
> > Avoid that the following race can occur:
> >
> > blk_cleanup_queue() blkcg_print_blkgs()
> > spin_lock
On Sat, Feb 10, 2018 at 8:46 AM, Ming Lei wrote:
> The 'lend' parameter of truncate_inode_pages_range is required to be
> inclusive, so follow the rule.
>
> This patch fixes one memory corruption triggered by discard.
>
> Cc:
> Cc: Dmitry Monakhov
> Fixes: 351499a172c0 ("block: Invalidate cache
Bart,
> It happens often while I'm preparing a patch for a block driver that
> I'm wondering: is a definition of SECTOR_SIZE and/or SECTOR_SHIFT
> available for this driver? Do I have to introduce definitions of these
> constants before I can use these constants? To avoid this confusion,
> move t
Hi Max,
On Tue, Feb 20, 2018 at 11:56:07AM +0200, Max Gurtovoy wrote:
> hi all,
> is there a way to drain a blk-mq based request queue (similar to
> blk_drain_queue for non MQ) ?
Generally speaking, blk_mq_freeze_queue() should be fine to drain blk-mq
based request queue, but it may not work well
Hi Bart,
Sorry for the delayed response since I was on holiday.
On 18/2/10 02:44, Bart Van Assche wrote:
> Avoid that the following race can occur:
>
> blk_cleanup_queue() blkcg_print_blkgs()
> spin_lock_irq(lock) (1) spin_lock_irq(blkg->q->queue_lock) (2,5)
> q->qu
On Wed, Feb 14, 2018 at 11:22:10AM +0800, xuejiufei wrote:
> If a bio is split after counted to the stat_bytes and stat_ios in
> blkcg_bio_issue_check(), the bio could be resubmitted and enters the
> block throttle layer again. This will cause the part of the bio is
> counted twice.
>
> The flag B
On Wed, 2018-02-21 at 11:21 -0800, t...@kernel.org wrote:
> Hello, Bart.
>
> On Wed, Feb 21, 2018 at 06:53:05PM +, Bart Van Assche wrote:
> > On Sun, 2018-02-18 at 05:11 -0800, t...@kernel.org wrote:
> > > On Wed, Feb 14, 2018 at 04:58:56PM +, Bart Van Assche wrote:
> > > > With this patch
On 02/09/18 10:44, Bart Van Assche wrote:
Recently Joseph Qi identified races between the block cgroup code and request
queue initialization and cleanup. This patch series address these races. Please
consider these patches for kernel v4.17.
Hello Joseph,
Can you add your Tested-by or Reviewed-
On 29.11.2017 16:41, Adrian Hunter wrote:
> Define and use a blk-mq queue. Discards and flushes are processed
> synchronously, but reads and writes asynchronously. In order to support
> slow DMA unmapping, DMA unmapping is not done until after the next request
> is started. That means the request i
On Sun, 2018-02-18 at 05:11 -0800, t...@kernel.org wrote:
> On Wed, Feb 14, 2018 at 04:58:56PM +, Bart Van Assche wrote:
> > With this patch applied the tests I ran so far pass.
>
> Ah, great to hear. Thanks a lot for testing. Can you please verify
> the following? It's the same approach bu
Hello, Bart.
On Wed, Feb 21, 2018 at 06:53:05PM +, Bart Van Assche wrote:
> On Sun, 2018-02-18 at 05:11 -0800, t...@kernel.org wrote:
> > On Wed, Feb 14, 2018 at 04:58:56PM +, Bart Van Assche wrote:
> > > With this patch applied the tests I ran so far pass.
> >
> > Ah, great to hear. Tha
It happens often while I'm preparing a patch for a block driver that
I'm wondering: is a definition of SECTOR_SIZE and/or SECTOR_SHIFT
available for this driver? Do I have to introduce definitions of these
constants before I can use these constants? To avoid this confusion,
move the existing defini
On Fri, 2018-02-16 at 08:39 +0100, Paolo Valente wrote:
> after enabling the listing options in your list, and a few other
> related options, such iblock support, I get this:
>
> $ sudo ./run_tests -c -d -r 10 -t 02-mq -e bfq
> Unloaded the ib_srpt kernel module
> Unloaded the rdma_rxe kernel modu
On 21/02/18 18:20, Boaz Harrosh wrote:
<>
> again not followed closely but if it is about the free of the bounce buffers
> then I would just disable bouncing for osd all together. There are only a very
> few (2) drivers that support bidi for osd. iscsi and iser so we know those are
> totally cool a
On 20/02/18 17:21, Jiri Palecek wrote:
> Hello,
>
> I had a look at the callers of blk_rq_append_bio and checked the
> callers. Some changes may need to be done there and I'd like the input
> of their maintainers as well before finalising the patch.
>
> Ming Lei writes:
>
>> On Tue, Jan 30, 201
BTW, there is a V3 for this patch at least, adding holes in the mapping
bitmap to avoid the multiplications and divisions on the fast path, when
the media format is not a power of two. I'll send it this week; just
wanted to get this out for revision.
Javier
> On 21 Feb 2018, at 10.26, Javier Gonz
> On 15 Feb 2018, at 14.11, Matias Bjørling wrote:
>
> A couple of patches for 2.0 support for the lightnvm subsystem. They
> form the foundation for the integration.
>
> The first two patches is preparation for the 2.0 work. The third patch
> implements the 2.0 data structures, the geometry com
Assign missing mccap value on 2.0 path
Signed-off-by: Javier González
---
drivers/nvme/host/lightnvm.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/drivers/nvme/host/lightnvm.c b/drivers/nvme/host/lightnvm.c
index c81e64cc20d7..969bb874850c 100644
--- a/drivers/nvme/host/lightnvm.c
+++
Rename abbreviations for sector from sect_* to sec_* as most of the code
uses this format and it is confusing when using the different
structures.
Signed-off-by: Javier González
---
drivers/lightnvm/pblk-init.c | 8
drivers/lightnvm/pblk-sysfs.c | 4 ++--
drivers/lightnvm/pblk.h
Separate the version between major and minor on the generic geometry.
Also, add a "subversion" entry to sysfs to expose the minor version
without breaking user space.
Signed-off-by: Javier González
---
drivers/lightnvm/core.c | 4 ++--
drivers/nvme/host/lightnvm.c | 25
Create a shorten version to use in the generic geometry.
Signed-off-by: Javier González
---
drivers/nvme/host/lightnvm.c | 6 ++
include/linux/lightnvm.h | 8
2 files changed, 14 insertions(+)
diff --git a/drivers/nvme/host/lightnvm.c b/drivers/nvme/host/lightnvm.c
index f22331
Complete the generic geometry structure with the maxoc and maxocpu
felds, present in the 2.0 spec.
Signed-off-by: Javier González
---
drivers/nvme/host/lightnvm.c | 4
include/linux/lightnvm.h | 2 ++
2 files changed, 6 insertions(+)
diff --git a/drivers/nvme/host/lightnvm.c b/drivers/
Normalize nomenclature for naming number of channels and number of luns
in order to improve readability. Use num_ch and num_lun.
Signed-off-by: Javier González
---
drivers/lightnvm/core.c | 69 ++--
drivers/lightnvm/pblk-core.c | 4 +--
drivers/light
Currently, the device geometry is stored redundantly in the nvm_id and
nvm_geo structures at a device level. Moreover, when instantiating
targets on a specific number of LUNs, these structures are replicated
and manually modified to fit the instance channel and LUN partitioning.
Instead, create a
Create a generic identify structure to collect the identify information
before knowing the spec. version. This forces different version paths to
cast the structure to their spec structure, thus making the code less
error prone and more maintainable.
Signed-off-by: Javier González
---
drivers/nvm
In preparation for 2.0 support in pblk, rename variables referring to
the address format to addrf and reserve ppaf for the 1.2 path.
Signed-off-by: Javier González
---
drivers/lightnvm/pblk-init.c | 8
drivers/lightnvm/pblk-sysfs.c | 4 ++--
drivers/lightnvm/pblk.h | 16 +++
Both 1.2 and 2.0 specs define a field for media and controller
capabilities. Also, 1.2 defines a separate field dedicated to device
capabilities.
In 2.0 sysfs, this values have been mixed. Revert them to the right
value.
Signed-off-by: Javier González
---
drivers/nvme/host/lightnvm.c | 18 +
At this point, only 1.2 spec is supported, thus check for it. Also,
since device-side L2P is only supported in the 1.2 spec, make sure to
only check its value under 1.2.
Signed-off-by: Javier González
---
drivers/lightnvm/pblk-init.c | 10 --
1 file changed, 8 insertions(+), 2 deletions(
On address conversions, use the generic device, instead of the target
device. This allows to use conversions outside of the target's realm.
Signed-off-by: Javier González
---
drivers/lightnvm/core.c | 4 ++--
include/linux/lightnvm.h | 8
2 files changed, 6 insertions(+), 6 deletions(-
Add missing geometry values to sysfs. Namely, maxoc and maxocpu.
Signed-off-by: Javier González
---
drivers/nvme/host/lightnvm.c | 8
1 file changed, 8 insertions(+)
diff --git a/drivers/nvme/host/lightnvm.c b/drivers/nvme/host/lightnvm.c
index 70dc4740f0d3..88c71d0d0d8c 100644
--- a/d
Define chunk states as given in the 2.0 spec. Also, add an extra chunk
state that signals that the chunk is in use by the host. This allows for
the chunk metadata to be "owned" by a target when active, thus
completing the chunk state machine from the host perspective and
facilitating sanity checks.
Add support for 2.0 address format. Also, align address bits for 1.2 and
2.0 to be able to operate on channel and luns without requiring a format
conversion. Use a generic address format for this purpose.
Signed-off-by: Javier González
---
drivers/lightnvm/core.c | 20 -
include/linux/
Make nvme_get_log_ext available outside of core.c.
This is in preparation for using it in lightnvm.c
Signed-off-by: Javier González
---
drivers/nvme/host/nvme.h | 3 +++
1 file changed, 3 insertions(+)
diff --git a/drivers/nvme/host/nvme.h b/drivers/nvme/host/nvme.h
index 1ca08f4993ba..505f797
From: Javier González
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 metadata using get log page
From: Javier González
In preparation of pblk supporting 2.0, implement the get log report
chunk in pblk.
This patch only replicates de bad block functionality as the rest of the
metadata requires new pblk functionality (e.g., wear-index to implement
wear-leveling). This functionality will come i
Implement 2.0 support in pblk. This includes the address formatting and
mapping paths, as well as the sysfs entries for them.
Signed-off-by: Javier González
---
drivers/lightnvm/pblk-init.c | 57 ++--
drivers/lightnvm/pblk-sysfs.c | 36 ++--
drivers/lightnvm/pblk.h | 198 +++
Refactor init and exit sequences to improve readability. In the way, fix
bad free ordering on the init error path.
Signed-off-by: Javier González
---
drivers/lightnvm/pblk-init.c | 503 ++-
1 file changed, 254 insertions(+), 249 deletions(-)
diff --git a/
Changes since V1:
Apply Matias' feedback:
- Rebase on top of Matias' latest patches.
- Use nvme_get_log_ext to submit report chunk and export it.
- Re-write report chunk based on Matias' suggestions. Here, I
maintained the lba interface, but it was necessary to redo the
address forma
On Tue, Feb 20, 2018 at 12:37:07PM -1000, Jens Axboe wrote:
> On 2/20/18 3:21 AM, Peter Zijlstra wrote:
> > On Sun, May 30, 2083 at 09:51:06AM +0530, Nitesh Shetty wrote:
> >> This removes the dependency on interrupts to wake up task. Set task
> >> state as TASK_RUNNING, if need_resched() returns t
From: Hans Holmberg
If the line has not been written to, we should not
try to recover any data from it, so check the state of the
chunks in the line before attempting to read smeta.
Signed-off-by: Hans Holmberg
Signed-off-by: Javier González
---
NOTE: This patch applies on top of the 2.0 patc
> On 21 Feb 2018, at 09.09, Matias Bjørling wrote:
>
> On 02/21/2018 09:02 AM, hans.ml.holmb...@owltronix.com wrote:
>> From: Hans Holmberg
>> This is a slew of generic bugfixes to pblk
>> The patches apply on top of:
>> https://github.com/OpenChannelSSD/linux branch for-4.17/core
>> Hans Holmbe
On 02/21/2018 09:02 AM, hans.ml.holmb...@owltronix.com wrote:
From: Hans Holmberg
This is a slew of generic bugfixes to pblk
The patches apply on top of:
https://github.com/OpenChannelSSD/linux branch for-4.17/core
Hans Holmberg (3):
lightnvm: pblk: delete writer kick timer before stopping
From: Hans Holmberg
Unless we delete the timer that wakes up the write thread
before we stop the thread we risk re-starting the thread, so
delete the timer first.
Signed-off-by: Hans Holmberg
---
drivers/lightnvm/pblk-init.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/d
From: Hans Holmberg
When shutting down pblk the write buffer is flushed and if the
current line can't fit the data in the write buffer we need
to allocate a new line, so remove the check that prevents this.
Signed-off-by: Hans Holmberg
---
drivers/lightnvm/pblk-core.c | 7 ---
1 file chang
From: Hans Holmberg
Make sure that we are not advancing the sync pointer while
we're adding bios to the write buffer entry completion list.
This race condition results in bios not completing and was identified
by a hang when running xfstest generic/113.
Signed-off-by: Hans Holmberg
---
driver
From: Hans Holmberg
This is a slew of generic bugfixes to pblk
The patches apply on top of:
https://github.com/OpenChannelSSD/linux branch for-4.17/core
Hans Holmberg (3):
lightnvm: pblk: delete writer kick timer before stopping thread
lightnvm: pblk: allow allocation of new lines during sh
61 matches
Mail list logo