Received: by 10.223.185.116 with SMTP id b49csp3737716wrg; Mon, 26 Feb 2018 05:20:21 -0800 (PST) X-Google-Smtp-Source: AH8x224/k7JWrqYiN2CEIeCQWXL3qiiOXqIqYLPRdNqpWFYtOkvi49NRIefdhDw2vQ49Se1zatu4 X-Received: by 2002:a17:902:8e86:: with SMTP id bg6-v6mr10806063plb.113.1519651221582; Mon, 26 Feb 2018 05:20:21 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1519651221; cv=none; d=google.com; s=arc-20160816; b=mlS9Ue1WdFA7o8mKnTr3yjE1DVq08vula9mVL7U4kQosy2NUiWTa2GNFE+hKE6zBni WaHRahqjvRn0W9xj3t31POVGtZkj62PPS+vkGBixEBnhWdFE577TTw9fhVrQN6sxVyRI 8JC/9NpEHbO4GvZU/MYfgvrLRKbhDjS5rbFl1l+1Uxhb8TeNlgafPoia8P219L6ORgri IqumPE1Vd3cPTPAq3Mru/pj1NIdG6FHSZgtTLY0qApqmXFFZx/Kf8C0McTNfNiS1bbJp La/V4udsGVklRQI0ZihjbfcAhQpKcFn1XNmTh0C3+3oCYgTWQTs2u7D9lXBv+gVhkLpa voNQ== 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 :message-id:date:subject:cc:to:from:dkim-signature :arc-authentication-results; bh=NGsGFYp79zZEgdTqW3iaSfKqQFeZyWu7YdKruPiPczM=; b=XhBTXYd+IDcHgoZcYofCSZFtOKnltSYpC+89wko0nxEjBZxMdnObOF4MhrPU0Enz+d Np7fYNUSaRH9+xb8kC8xtmDcXjelATzsLuk5jbIW/MINCawhDh38TSgbbnSn7hJrmdw9 2kfkTuDjinUMLh8Pl/ljqbtjGrQC0en7NZVlcfDgPZ1z4SGNmUHBKesVWGA4hdPvsfMH oMCz/1EHQLzqsTYyCTxVNM9KWotmjKFrtyPYeJDIXz69lLKC+scXdU74kpEd7PShHSEf A0zeA7ZFhXaGjq+pG555n4bdvxtoqLZgrHP0hlEMIBxFkKn12fFzLsxF3BIw0bq9vrwO ta6Q== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@lightnvm-io.20150623.gappssmtp.com header.s=20150623 header.b=rbrNYKNd; 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 2-v6si6773032plc.205.2018.02.26.05.20.06; Mon, 26 Feb 2018 05:20:21 -0800 (PST) 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=rbrNYKNd; 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 S1753331AbeBZNT3 (ORCPT + 99 others); Mon, 26 Feb 2018 08:19:29 -0500 Received: from mail-wm0-f52.google.com ([74.125.82.52]:38731 "EHLO mail-wm0-f52.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753026AbeBZNR1 (ORCPT ); Mon, 26 Feb 2018 08:17:27 -0500 Received: by mail-wm0-f52.google.com with SMTP id z9so17091597wmb.3 for ; Mon, 26 Feb 2018 05:17:27 -0800 (PST) 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=NGsGFYp79zZEgdTqW3iaSfKqQFeZyWu7YdKruPiPczM=; b=rbrNYKNdFUZZCSEXn0mFFbAunA0CTdmnkt+o1jiG8AU/TRxvT1EKjXrn+xW8JP7zHi gfT8ExgtNfoOZB0GaQGu6gYwUDw8eBWvoOymiXbwvWWxmj5xmX8ELMGwMmBYjI/ppOtj ESoRCVYWMkm4vUz0iNKb9lZyORq/pHD/eWK9MUixQWOukbsIWEYeDjnjRp7P7Mrg/R4v nCr34IPTtODyWv1KQw0gD6elKiA0CSczMdPnunsOORpiVxmBAK+OdujcA+lB80nA7gZE tGsl/NCaFIANTZJbOSRWiJGv3P3JvQM/KKAIkrq20uNw/sVXQnjRslNwPahc+OOpQo0f tCBw== 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:mime-version :content-transfer-encoding; bh=NGsGFYp79zZEgdTqW3iaSfKqQFeZyWu7YdKruPiPczM=; b=EWFC/kGtCFwo2F9Y2F2f/hLSFNKT+svqOR+qTmPqMHM6FWx3WbkajOAWKcSX8lKe7z xlkxbS9yef3rIIGrSpcR/7etvt/OxyEw/bX0xLtPPSQwiY658E5MqzqGxp7qOrylhnRN p6YrS8n1vQbFZTVduiT9WkHaXFvYCJ20UtsYhtizQ43akn+9MVeuZnKASGPBEI5NWxpb JtYsLThDUuCpMZrx8auM+khtcmFx3jiS94LJjl/8mJgeX3ke5iNCL6okrfEQY4ZFQMDr qzWkRel2gq5WGMcXEJjsZdYY9u6AkO0BFCUF6NzC8CIbT3qTVKieXyDE9aqcAxU83qGs g0Iw== X-Gm-Message-State: APf1xPDsseWe8idz5VyFFAO6pmmmokvvujKCwThBeI1Iz733GKC/4Oy2 kr/RkGzEawJ7nkDFi/4XdnuW4Q== X-Received: by 10.80.152.105 with SMTP id h38mr14544626edb.150.1519651046346; Mon, 26 Feb 2018 05:17:26 -0800 (PST) Received: from uHalley.cnexlabs.com (6164211-cl69.boa.fiberby.dk. [193.106.164.211]) by smtp.gmail.com with ESMTPSA id g59sm7097451ede.19.2018.02.26.05.17.25 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Mon, 26 Feb 2018 05:17:25 -0800 (PST) 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-block@vger.kernel.org, linux-kernel@vger.kernel.org, linux-nvme@lists.infradead.org, =?UTF-8?q?Javier=20Gonz=C3=A1lez?= Subject: [PATCH V3 00/19] lightnvm: pblk: implement 2.0 support Date: Mon, 26 Feb 2018 14:16:59 +0100 Message-Id: <1519651038-16845-1-git-send-email-javier@cnexlabs.com> X-Mailer: git-send-email 2.7.4 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 # Changes since V2: Apply Matias' feedback: - Remove generic nvm_id identify structure. - Do not remap capabilities (cap) to media and controlled capabilities (mccap). Instead, add a comment to prevent confusion when crosschecking with 2.0 spec. - Change maxoc and maxocpu defaults from 1 block to the max number of blocks. - Re-implement the generic geometry to use nvm_geo on both device and targets. Maintain nvm_common_geo to make it easier to copy the common part of the geometry (without having to overwrite target-specific fields, which is ugly and error prone). Matias, if you still want to get rid of this, we can do it. - Re-order patches with renaming to make them more meaningful. These belong to the series, since the name changes are motivated by 2.0 inclusions. The only exception would be 36d10bfd3234, but I hope it is OK I include it here. Also, - Eliminate a dependency between luns and lines in the init/exit refactoring. - Use the global address format when possible to avoid defaulting on the 1.2 path. This will safe headaches if the address format changes at some point. I took out the patch allowing to do bit shifts on non power-of-2 media formats on pblk's mapping since it requires touching many places that are not 2.0 related. I'll submit this separately. # Changes since V1: Apply Matias' feedback: - Rebase on top of Matias' latest patches. - Use nvme_get_log_ext to submit report chunk and export it. - Re-write report chunk based on Matias' suggestions. Here, I maintained the lba interface, but it was necessary to redo the address formatting to match the chunk log page format. For pblk, this means a double address transformation, but it enables the standard path to use lbas, plus, this is not in the fast path. - Fold address format together with address transformations. - Split the generic geometry patch in different patches. - Remove refactoring of ligthnvm's core sysfs. Feedback not applied: - Not letting pblk know about 1.2 and 2.0 bad block paths. Since the interfaces for get/set bad block and report chunk are so different, moving this logic to core adds assumptions on how the targets would want to get the data back. A way of doing this is creating a logical report chunk on the 1.2 path, but this would mean that values like the wear-index are invalid, which requires the target knowledge. I'm open to suggestions here. Also: - Do some further renamings - Create a generic address format to make it explicit where we share 1.2 and 2.0 fields to avoid address formatting in the fast path. - Add new fields to sysfs to complete spec and show major/minor versions (version and subversion to respect current interface). Implement 2.0 support in pblk. This includes the address formatting and mapping paths, as well as the sysfs entries for them. Javier Javier González (19): lightnvm: simplify geometry structure. lightnvm: add controller capabilities to 2.0 lightnvm: add minor version to generic geometry lightnvm: add shorten OCSSD version in geo lightnvm: complete geo structure with maxoc* lightnvm: pblk: check for supported version lightnvm: complete 2.0 values in sysfs lightnvm: rename number of channels and luns lightnvm: rename sect_* to sec_* lightnvm: add support for 2.0 address format lightnvm: pblk: rename ppaf* to addrf* lightnvn: pblk: use generic address format lightnvm: make address conversions depend on generic device nvme: make nvme_get_log_ext available lightnvm: implement get log report chunk helpers lightnvm: define chunk states lightnvm: pblk: implement get log report chunk lightnvm: pblk: refactor init/exit sequences lightnvm: pblk: implement 2.0 support drivers/lightnvm/core.c | 199 +++++----- drivers/lightnvm/pblk-core.c | 151 +++++-- drivers/lightnvm/pblk-gc.c | 2 +- drivers/lightnvm/pblk-init.c | 833 +++++++++++++++++++++++---------------- drivers/lightnvm/pblk-map.c | 4 +- drivers/lightnvm/pblk-read.c | 2 +- drivers/lightnvm/pblk-recovery.c | 14 +- drivers/lightnvm/pblk-rl.c | 2 +- drivers/lightnvm/pblk-sysfs.c | 134 ++++++- drivers/lightnvm/pblk-write.c | 2 +- drivers/lightnvm/pblk.h | 255 ++++++++---- drivers/nvme/host/lightnvm.c | 458 ++++++++++++++------- drivers/nvme/host/nvme.h | 3 + include/linux/lightnvm.h | 338 ++++++++++------ 14 files changed, 1559 insertions(+), 838 deletions(-) -- 2.7.4