lkml.org 
[lkml]   [2016]   [May]   [6]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 22/28] lightnvm: do not assume sequential lun alloc.
    Date
    From: Javier González <jg@lightnvm.io>

    When doing GC, rrpc calculates the physical LUN to which the rrpc block
    belongs too. This calculation is based on the assumption that LUNs are
    assigned sequentially to the LUN list. Use the reference to the LUN
    instead. This saves us the calculation and allows us to align LUNs in a
    different manner to, for example, take advantage of devide parallelism.

    Signed-off-by: Javier González <javier@cnexlabs.com>
    Signed-off-by: Matias Bjørling <m@bjorling.me>
    ---
    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 100644
    --- a/drivers/lightnvm/rrpc.c
    +++ b/drivers/lightnvm/rrpc.c
    @@ -405,9 +405,8 @@ static void rrpc_block_gc(struct work_struct *work)
    ws_gc);
    struct rrpc *rrpc = gcb->rrpc;
    struct rrpc_block *rblk = gcb->rblk;
    + struct rrpc_lun *rlun = rblk->rlun;
    struct nvm_dev *dev = rrpc->dev;
    - struct nvm_lun *lun = rblk->parent->lun;
    - struct rrpc_lun *rlun = &rrpc->luns[lun->id - rrpc->lun_offset];

    mempool_free(gcb, rrpc->gcb_pool);
    pr_debug("nvm: block '%lu' being reclaimed\n", rblk->parent->id);
    @@ -508,9 +507,9 @@ static void rrpc_gc_queue(struct work_struct *work)
    ws_gc);
    struct rrpc *rrpc = gcb->rrpc;
    struct rrpc_block *rblk = gcb->rblk;
    + struct rrpc_lun *rlun = rblk->rlun;
    struct nvm_lun *lun = rblk->parent->lun;
    struct nvm_block *blk = rblk->parent;
    - struct rrpc_lun *rlun = &rrpc->luns[lun->id - rrpc->lun_offset];

    spin_lock(&rlun->lock);
    list_add_tail(&rblk->prio, &rlun->prio_list);
    --
    2.1.4
    \
     
     \ /
      Last update: 2016-05-06 20:21    [W:2.701 / U:1.472 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site