Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1273069 > unrolled thread
| Started by | Matias Bjørling <m@bjorling.me> |
|---|---|
| First post | 2015-11-19 13:00 +0100 |
| Last post | 2015-11-19 21:10 +0100 |
| Articles | 4 — 2 participants |
Back to article view | Back to linux.kernel
[PATCH 0/3] null_blk patches for 4.4-rc2 Matias Bjørling <m@bjorling.me> - 2015-11-19 13:00 +0100
[PATCH 3/3] null_blk: do not del gendisk with lightnvm Matias Bjørling <m@bjorling.me> - 2015-11-19 13:00 +0100
[PATCH 2/3] null_blk: use device addressing mode Matias Bjørling <m@bjorling.me> - 2015-11-19 13:00 +0100
Re: [PATCH 0/3] null_blk patches for 4.4-rc2 Jens Axboe <axboe@fb.com> - 2015-11-19 21:10 +0100
| From | Matias Bjørling <m@bjorling.me> |
|---|---|
| Date | 2015-11-19 13:00 +0100 |
| Subject | [PATCH 0/3] null_blk patches for 4.4-rc2 |
| Message-ID | <qww2C-mU-7@gated-at.bofh.it> |
Hi Jens, Please take a look at these three patches for 4.4-rc2. The first patch uses a slab allocator for ppa list to only allocate the necessary memory. As the linear addressing mode was removed, the second patch changes the driver to use the ppa format adressing mode and at last, the third patch fixes two bugs. One when freeing gendisk on unload and another to pass a null pointer to lightnvm unregister function. Feel free to fold them into the original null_blk patch. Matias Bjørling (3): null_blk: use ppa_cache pool null_blk: use device addressing mode null_blk: do not del gendisk with lightnvm drivers/block/null_blk.c | 62 ++++++++++++++++++++++++++++++++++++++++-------- 1 file changed, 52 insertions(+), 10 deletions(-) -- 2.1.4 -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
[toc] | [next] | [standalone]
| From | Matias Bjørling <m@bjorling.me> |
|---|---|
| Date | 2015-11-19 13:00 +0100 |
| Subject | [PATCH 3/3] null_blk: do not del gendisk with lightnvm |
| Message-ID | <qww2C-mU-11@gated-at.bofh.it> |
| In reply to | #1273069 |
The gendisk structure has not been initialized when using lightnvm. Make sure to not delete it upon exit. Also make sure that we use the appropriate disk_name at unregistration. Signed-off-by: Matias Bjørling <m@bjorling.me> --- drivers/block/null_blk.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/drivers/block/null_blk.c b/drivers/block/null_blk.c index 6184b82..fb70b54 100644 --- a/drivers/block/null_blk.c +++ b/drivers/block/null_blk.c @@ -435,12 +435,14 @@ static void null_del_dev(struct nullb *nullb) list_del_init(&nullb->list); if (use_lightnvm) - nvm_unregister(nullb->disk->disk_name); - del_gendisk(nullb->disk); + nvm_unregister(nullb->disk_name); + else + del_gendisk(nullb->disk); blk_cleanup_queue(nullb->q); if (queue_mode == NULL_Q_MQ) blk_mq_free_tag_set(&nullb->tag_set); - put_disk(nullb->disk); + if (!use_lightnvm) + put_disk(nullb->disk); cleanup_queues(nullb); kfree(nullb); } -- 2.1.4 -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
[toc] | [prev] | [next] | [standalone]
| From | Matias Bjørling <m@bjorling.me> |
|---|---|
| Date | 2015-11-19 13:00 +0100 |
| Subject | [PATCH 2/3] null_blk: use device addressing mode |
| Message-ID | <qww2C-mU-17@gated-at.bofh.it> |
| In reply to | #1273069 |
The linear addressing mode was removed in 7386af2. Make null_blk instead
expose the ppa format geometry and support the generic addressing mode.
Signed-off-by: Matias Bjørling <m@bjorling.me>
---
drivers/block/null_blk.c | 28 +++++++++++++++++++++++-----
1 file changed, 23 insertions(+), 5 deletions(-)
diff --git a/drivers/block/null_blk.c b/drivers/block/null_blk.c
index 173ba24..6184b82 100644
--- a/drivers/block/null_blk.c
+++ b/drivers/block/null_blk.c
@@ -486,6 +486,7 @@ static int null_lnvm_submit_io(struct request_queue *q, struct nvm_rq *rqd)
static int null_lnvm_id(struct request_queue *q, struct nvm_id *id)
{
sector_t size = gb * 1024 * 1024 * 1024ULL;
+ sector_t blksize;
struct nvm_id_group *grp;
id->ver_id = 0x1;
@@ -493,17 +494,34 @@ static int null_lnvm_id(struct request_queue *q, struct nvm_id *id)
id->cgrps = 1;
id->cap = 0x3;
id->dom = 0x1;
- id->ppat = NVM_ADDRMODE_LINEAR;
+
+ id->ppaf.blk_offset = 0;
+ id->ppaf.blk_len = 16;
+ id->ppaf.pg_offset = 16;
+ id->ppaf.pg_len = 16;
+ id->ppaf.sect_offset = 32;
+ id->ppaf.sect_len = 8;
+ id->ppaf.pln_offset = 40;
+ id->ppaf.pln_len = 8;
+ id->ppaf.lun_offset = 48;
+ id->ppaf.lun_len = 8;
+ id->ppaf.ch_offset = 56;
+ id->ppaf.ch_len = 8;
do_div(size, bs); /* convert size to pages */
+ do_div(size, 256); /* concert size to pgs pr blk */
grp = &id->groups[0];
grp->mtype = 0;
- grp->fmtype = 1;
+ grp->fmtype = 0;
grp->num_ch = 1;
- grp->num_lun = 1;
- grp->num_pln = 1;
- grp->num_blk = size / 256;
grp->num_pg = 256;
+ blksize = size;
+ do_div(size, (1 << 16));
+ grp->num_lun = size + 1;
+ do_div(blksize, grp->num_lun);
+ grp->num_blk = blksize;
+ grp->num_pln = 1;
+
grp->fpg_sz = bs;
grp->csecs = bs;
grp->trdt = 25000;
--
2.1.4
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
[toc] | [prev] | [next] | [standalone]
| From | Jens Axboe <axboe@fb.com> |
|---|---|
| Date | 2015-11-19 21:10 +0100 |
| Message-ID | <qwDGN-5Ex-7@gated-at.bofh.it> |
| In reply to | #1273069 |
On 11/19/2015 04:50 AM, Matias Bjørling wrote: > Hi Jens, > > Please take a look at these three patches for 4.4-rc2. > > The first patch uses a slab allocator for ppa list to only allocate the > necessary memory. As the linear addressing mode was removed, the second > patch changes the driver to use the ppa format adressing mode and at > last, the third patch fixes two bugs. One when freeing gendisk on unload > and another to pass a null pointer to lightnvm unregister function. > > Feel free to fold them into the original null_blk patch. I applied them separately for 4.4. -- Jens Axboe -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
[toc] | [prev] | [standalone]
Back to top | Article view | linux.kernel
csiph-web