Received: by 2002:ac0:a5b6:0:0:0:0:0 with SMTP id m51-v6csp2126119imm; Mon, 28 May 2018 02:05:04 -0700 (PDT) X-Google-Smtp-Source: AB8JxZqsG1QPH7swOC8yGXNxSuNxHDRwUxzMP6KkqwsYR4imOIxOVg2aP63PY7kcVd6KGMtkaLqt X-Received: by 2002:a17:902:7841:: with SMTP id e1-v6mr13072330pln.197.1527498304562; Mon, 28 May 2018 02:05:04 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1527498304; cv=none; d=google.com; s=arc-20160816; b=qiWCSy29k2px0xkSSSMJ2xH3UkJWoIHNyVdgSBBo5xQe7QNmqmrQUSRBSEHotj8VGZ IMk8uoA6sMwpxz2jlIHHCtnxmWJpFAxsyYenfWsnKKsYk2uLkOtBbXleGU9Nm9qe4m3k DmpO58KL+FWJ9RKfj1fnJItd7jaWDw1oN7pNZJwgrLrPwzIyZorBzP6Nky+iX3xg/6t/ aOqwmrm/SX9alaFrJ89Xx27rder6mHM1Kpcpv/hcL5fs1JuZ4Dv4kzkUqAV9tOtcgwdg excrSOpMbm8dW4HjhxCcLtWGhkYbPCDBACeDQGkcdkUnXWa9pe5XYno5iOayOBoICfgM nb4Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature:arc-authentication-results; bh=oLXyiKmnvCXPgcR6ZNZmguwTEWJzD34m0GtNXtnCbq8=; b=KNFyAe6pxPqpUQAlvaNlPEG3Tkzq2SHoKZplODLVi/e3j0WHaVSkCTNQ/fCoN4A28L H08Pb9ET8iShvdBYIrD6w0YiDNEwcX0tGi6IdhVayAVDBR2JZ43MwKGAoCn0N2jUWVDH zRpDmj/rO7Np9Mh2540vlYIBKtxBbfQoqvom0arPbREh9fpqIdrGnI4ta5dd9KsRbLGM e9KJhGSukJOlE9aJaM0WF/WNQEJ3UEyVfveRONUVD3N/KreZVijcUn56PXBZl/iGbmsH QBBg+pPBICbBOufT3yGpFZVMg+JLt2x9Y2OdsMcdFr4qKsiVWHdep5aLcB/gasUwqCLo 1U+w== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@lightnvm-io.20150623.gappssmtp.com header.s=20150623 header.b=k737ZBjz; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id k72-v6si30923714pfa.53.2018.05.28.02.04.49; Mon, 28 May 2018 02:05:04 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@lightnvm-io.20150623.gappssmtp.com header.s=20150623 header.b=k737ZBjz; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932110AbeE1JCz (ORCPT + 99 others); Mon, 28 May 2018 05:02:55 -0400 Received: from mail-wm0-f68.google.com ([74.125.82.68]:38872 "EHLO mail-wm0-f68.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754207AbeE1I7O (ORCPT ); Mon, 28 May 2018 04:59:14 -0400 Received: by mail-wm0-f68.google.com with SMTP id m129-v6so30003799wmb.3 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=jrhEmdmZkavknKxQLWa4U5v9o0BDXSiYyq4zma4Gav5pZn/aQEppmgFmd3aHYA2Sy9 bAMR4Wi4icXSF0jiz93vABFP1IqgusvTgjiiiO38UBeyYdhgmnziL+UJhhPQb/mOoZQg KyIOEZV2OIWenvtOsXf9vWWeaouz8byelfUhWwWnN26sJaJZ9098rWqgT78diNfkWapm vKLMKoHSWeL5f8Ts64aY8YPCd1AZUSc3pr8CopsfxrcZq5j1aCH1TLXRmGwPEKqWo0zN o5aEu/9YxFb8LztUyL/vh4WZVmADWHnMM2duYfXjJi6tft/WGTprwqvIQn2Tb0b0UJeu XS8w== X-Gm-Message-State: ALKqPwfYiCPI1fJ6vuAW2SWf8wH8a8vpjJSUYCCtxfh+ImgJr2k0cLoi 1fVgwuQOCXv1NcgCkfwcV+vWsA== 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 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 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 -- 2.11.0