Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1273069 > unrolled thread

[PATCH 0/3] null_blk patches for 4.4-rc2

Started byMatias Bjørling <m@bjorling.me>
First post2015-11-19 13:00 +0100
Last post2015-11-19 21:10 +0100
Articles 4 — 2 participants

Back to article view | Back to linux.kernel


Contents

  [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

#1273069 — [PATCH 0/3] null_blk patches for 4.4-rc2

FromMatias Bjørling <m@bjorling.me>
Date2015-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]


#1273071 — [PATCH 3/3] null_blk: do not del gendisk with lightnvm

FromMatias Bjørling <m@bjorling.me>
Date2015-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]


#1273073 — [PATCH 2/3] null_blk: use device addressing mode

FromMatias Bjørling <m@bjorling.me>
Date2015-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]


#1273446

FromJens Axboe <axboe@fb.com>
Date2015-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