From patchwork Mon May 28 08:58:39 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Matias Bjorling X-Patchwork-Id: 10430127 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id 7D02B60249 for ; Mon, 28 May 2018 09:02:48 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 6F36128AD9 for ; Mon, 28 May 2018 09:02:48 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 640EC28BDC; Mon, 28 May 2018 09:02:48 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-7.9 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID, MAILING_LIST_MULTI, RCVD_IN_DNSWL_HI autolearn=ham version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id F3D0E28AD9 for ; Mon, 28 May 2018 09:02:47 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754208AbeE1JCp (ORCPT ); Mon, 28 May 2018 05:02:45 -0400 Received: from mail-wm0-f68.google.com ([74.125.82.68]:39181 "EHLO mail-wm0-f68.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754206AbeE1I7O (ORCPT ); Mon, 28 May 2018 04:59:14 -0400 Received: by mail-wm0-f68.google.com with SMTP id f8-v6so30123111wmc.4 for ; Mon, 28 May 2018 01:59:13 -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:in-reply-to:references :mime-version:content-transfer-encoding; bh=oLXyiKmnvCXPgcR6ZNZmguwTEWJzD34m0GtNXtnCbq8=; b=k737ZBjzV75W4gCGwFE6OU0qGuBq0u9SSv3yQdaePc24ireYYLugrnAxJD6Q+iLAUr ThEndgvE0/aB/5yUWSgUsHRI2F6fbNjEqijupi3syLYlK625q9iLQTZTy1T12D6EP+9S tdP6gJlzDlGYX7T8gMMkYxK3guVXeYoPswLEceYhFCyYZkfaOobClPs9bhGV2G2/eJP+ +dP/KHxv4bwu0/biGmc5CBfVs5GWvGlP8Rde2JKLaECNTAN9QFRkTdJ3vHNU3tjq6tMf yJd4fZeaW8DFKuFl3CqykB1/pRLbErN0rE4tTvBMgkT06hbvaACyXK9QMezqFANHu1C0 Ihbw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=oLXyiKmnvCXPgcR6ZNZmguwTEWJzD34m0GtNXtnCbq8=; b=kwCz6GuKA8lVJ9TFW53975OC6bAr4WcW+PS4UibK7yyeR8tmEDG6EDsJpfoMC8XBTT LKixbSO/61IjTldKtHtogKXFDK2Ak31bluOp9AN4eLaSKJjVEdrHWqAouJruUV2tJEGe l2ckuXDPBVArca4fBGrzAhkqBGI8NY2Qie47v6a7ofCZj24ISOwPcxICUrNytLV4JJjR EPe8mrLSHX1iOXu+ICiq+ead8iIjwNIpGB3NMMthDkKsf08bgIgfWZSaqojPYb6dx0g7 3sdpoybgvuAbG7jzQmHFj5EUNA36q8QDn9PsJEupBjtM0tu0SMZAJ9wUn1W7UGXgPgTK XjLQ== X-Gm-Message-State: ALKqPwfErDs6uUF8jDBP6i8bJ+pxTnkxQ8msR5VvJ8gpEJq84f0aB5Rr eEhlWyTCmnwaap7nNw96ne16mg== X-Google-Smtp-Source: ADUXVKIvMFGNL9EV0dudj81kJH2Z0L1z3g7fBvCCRFep34sj+50XQ2xae8cv588wvTTe8uiq4WdUJw== X-Received: by 2002:a2e:28b:: with SMTP id y11-v6mr1566272lje.27.1527497952943; Mon, 28 May 2018 01:59:12 -0700 (PDT) Received: from Macroninja.cnexlabs.com (95-166-82-66-cable.dk.customer.tdc.net. [95.166.82.66]) by smtp.gmail.com with ESMTPSA id u2-v6sm5777848lji.4.2018.05.28.01.59.11 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 28 May 2018 01:59:12 -0700 (PDT) From: =?UTF-8?q?Matias=20Bj=C3=B8rling?= To: axboe@fb.com Cc: linux-block@vger.kernel.org, linux-kernel@vger.kernel.org, Marcin Dziegielewski , Igor Konopko , =?UTF-8?q?Matias=20Bj=C3=B8rling?= Subject: [GIT PULL 18/20] lightnvm: pblk: handle case when mw_cunits equals to 0 Date: Mon, 28 May 2018 10:58:39 +0200 Message-Id: <20180528085841.26684-19-mb@lightnvm.io> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20180528085841.26684-1-mb@lightnvm.io> References: <20180528085841.26684-1-mb@lightnvm.io> MIME-Version: 1.0 Sender: linux-block-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-block@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP From: Marcin Dziegielewski Some devices can expose mw_cunits equal to 0, it can cause creation of too small write buffer and cause performance to drop on write workloads. To handle that, we use the default value for MLC and beacause it covers both 1.2 and 2.0 OC specification, setting up mw_cunits in nvme_nvm_setup_12 function isn't longer necessary. Signed-off-by: Marcin Dziegielewski Signed-off-by: Igor Konopko Signed-off-by: Matias Bjørling --- drivers/lightnvm/pblk-init.c | 10 +++++++++- drivers/nvme/host/lightnvm.c | 1 - 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/drivers/lightnvm/pblk-init.c b/drivers/lightnvm/pblk-init.c index d65d2f972ccf..0f277744266b 100644 --- a/drivers/lightnvm/pblk-init.c +++ b/drivers/lightnvm/pblk-init.c @@ -356,7 +356,15 @@ static int pblk_core_init(struct pblk *pblk) atomic64_set(&pblk->nr_flush, 0); pblk->nr_flush_rst = 0; - pblk->pgs_in_buffer = geo->mw_cunits * geo->all_luns; + if (geo->mw_cunits) { + pblk->pgs_in_buffer = geo->mw_cunits * geo->all_luns; + } else { + pblk->pgs_in_buffer = (geo->ws_opt << 3) * geo->all_luns; + /* + * Some devices can expose mw_cunits equal to 0, so let's use + * here default safe value for MLC. + */ + } pblk->min_write_pgs = geo->ws_opt * (geo->csecs / PAGE_SIZE); max_write_ppas = pblk->min_write_pgs * geo->all_luns; diff --git a/drivers/nvme/host/lightnvm.c b/drivers/nvme/host/lightnvm.c index 41279da799ed..c747792da915 100644 --- a/drivers/nvme/host/lightnvm.c +++ b/drivers/nvme/host/lightnvm.c @@ -338,7 +338,6 @@ static int nvme_nvm_setup_12(struct nvme_nvm_id12 *id, geo->ws_min = sec_per_pg; geo->ws_opt = sec_per_pg; - geo->mw_cunits = geo->ws_opt << 3; /* default to MLC safe values */ /* Do not impose values for maximum number of open blocks as it is * unspecified in 1.2. Users of 1.2 must be aware of this and eventually