From patchwork Fri Apr 29 14:46:49 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?UTF-8?q?Javier=20Gonz=C3=A1lez?= X-Patchwork-Id: 8983531 Return-Path: X-Original-To: patchwork-linux-block@patchwork.kernel.org Delivered-To: patchwork-parsemail@patchwork2.web.kernel.org Received: from mail.kernel.org (mail.kernel.org [198.145.29.136]) by patchwork2.web.kernel.org (Postfix) with ESMTP id 98868BF29F for ; Fri, 29 Apr 2016 14:49:26 +0000 (UTC) Received: from mail.kernel.org (localhost [127.0.0.1]) by mail.kernel.org (Postfix) with ESMTP id C0E9A201CD for ; Fri, 29 Apr 2016 14:49:25 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id BC35820117 for ; Fri, 29 Apr 2016 14:49:24 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753694AbcD2Oq5 (ORCPT ); Fri, 29 Apr 2016 10:46:57 -0400 Received: from mail-wm0-f44.google.com ([74.125.82.44]:35826 "EHLO mail-wm0-f44.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753676AbcD2Oqz (ORCPT ); Fri, 29 Apr 2016 10:46:55 -0400 Received: by mail-wm0-f44.google.com with SMTP id e201so30640901wme.0 for ; Fri, 29 Apr 2016 07:46:55 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=lightnvm-io.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=21oqiP4Mgvv2rCN3OxiA+7nRIrixl/+WKJZZy09p+c8=; b=TMSrPcNszYQ5pjxcnFQJhApjXibkqEkAcTy4t9OVMf5Q7WAtQwy67g/0u4kyZJynci 9NkampRQgimL2NsbmZyxFFrU3nzlvUL8BBBFzoZqhPCyNoiur5GKZrBGit6R1cpM65+T /vdeAmudgr1JXv3PhzZ6jG/qI6i5/IuhTZSso4Tj9HqPvStZveL6Ln8BJwZai2jLSakB JOnTbtOJo7QLv7v2qEqSnb62OG63vq3mCRVAY1jhpp8HY/r7DGSOzALm6NkEM9cecW42 tlO9u4CWEa2sy4sNWVCLSfTnKYD641Sluo8ywGDkncrGTAJ0oYBU6CWLoKcWmBRzbChx 4rcA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=21oqiP4Mgvv2rCN3OxiA+7nRIrixl/+WKJZZy09p+c8=; b=lYd2U25K2nZzK7OOb7A/ZSh+TuXTSlsjUZQowvMP+pi7RH9fPiwm5AZj63wQsgRtn/ Ssjj0eNRe8aWo9aMSTUjRgUZ6uZXkVz9gOz1BProa1aJ3IS4dbQnmk+oYCHwho9sSIsu EAcJka2MDqL+j2Qc1Xv1MyPJmHuCnZywI2EfaqG7DjAOQgDDg7/DFSNlwT5p1PwlC+R8 ononwRPHGF81mz2wJVohI2G/OOjQLee77GRThwWzOkmjAumMuJEEx7F8W46246+3kPVC 71gNpR2KGrP9t+7CU/qtyAfzUBgQiWRZPxExbG5HlA72lF4FyVuIZuyMKj0/k0Q9RtSn bLXw== X-Gm-Message-State: AOPr4FXRE+AsIAp88HflV5ay3ZN8cP0oWFc8DDerQow+cfTpKoOD9UOWez2dlVSKIU0NGw== X-Received: by 10.28.218.21 with SMTP id r21mr4708480wmg.100.1461941214313; Fri, 29 Apr 2016 07:46:54 -0700 (PDT) Received: from uHalley.cnexlabs.com (6164211-cl69.boa.fiberby.dk. [193.106.164.211]) by smtp.gmail.com with ESMTPSA id k133sm3649065wmg.7.2016.04.29.07.46.53 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Fri, 29 Apr 2016 07:46:53 -0700 (PDT) From: "=?UTF-8?q?Javier=20Gonz=C3=A1lez?=" X-Google-Original-From: =?UTF-8?q?Javier=20Gonz=C3=A1lez?= To: mb@lightnvm.io Cc: linux-kernel@vger.kernel.org, linux-block@vger.kernel.org, =?UTF-8?q?Javier=20Gonz=C3=A1lez?= Subject: [PATCH] lightnvm: do not assume sequential lun alloc. Date: Fri, 29 Apr 2016 16:46:49 +0200 Message-Id: <1461941209-6657-1-git-send-email-javier@cnexlabs.com> X-Mailer: git-send-email 2.5.0 MIME-Version: 1.0 Sender: linux-block-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-block@vger.kernel.org X-Spam-Status: No, score=-7.8 required=5.0 tests=BAYES_00,DKIM_SIGNED, RCVD_IN_DNSWL_HI,RP_MATCHES_RCVD,T_DKIM_INVALID,UNPARSEABLE_RELAY autolearn=ham version=3.3.1 X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on mail.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP 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 --- 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);