From patchwork Fri Mar 22 14:48:27 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Igor Konopko X-Patchwork-Id: 10865969 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id AE5B9139A for ; Fri, 22 Mar 2019 14:51:25 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 94F8A2A86F for ; Fri, 22 Mar 2019 14:51:25 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 88F202A877; Fri, 22 Mar 2019 14:51:25 +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,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 306EC2A871 for ; Fri, 22 Mar 2019 14:51:25 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728320AbfCVOvY (ORCPT ); Fri, 22 Mar 2019 10:51:24 -0400 Received: from mga06.intel.com ([134.134.136.31]:54147 "EHLO mga06.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728072AbfCVOvY (ORCPT ); Fri, 22 Mar 2019 10:51:24 -0400 X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga001.jf.intel.com ([10.7.209.18]) by orsmga104.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 22 Mar 2019 07:51:23 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.60,256,1549958400"; d="scan'208";a="216593122" Received: from gklab-107-059.igk.intel.com ([10.102.107.59]) by orsmga001.jf.intel.com with ESMTP; 22 Mar 2019 07:51:21 -0700 From: Igor Konopko To: mb@lightnvm.io, javier@javigon.com, hans.holmberg@cnexlabs.com Cc: linux-block@vger.kernel.org, igor.j.konopko@intel.com Subject: [PATCH v2 00/16] lightnvm: next set of improvements for 5.2 Date: Fri, 22 Mar 2019 15:48:27 +0100 Message-Id: <20190322144843.9602-1-igor.j.konopko@intel.com> X-Mailer: git-send-email 2.9.5 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 This is another set of fixes and improvements to both pblk and lightnvm core. First patch is the leftover from previous patchset, since we decided to reorganize it a little. Second & third patches are the most crutial, since they changes the approach to partial read path, so detailed review is needed especially here. Other patches are my other findings related to some bugs or potential improvements, mostly related to some corner cases. Changes v1 -> v2: -dropped some not needed patches -review feedback incorporated for some of the patches -partial read path changes patch splitted into two patches Igor Konopko (16): lightnvm: pblk: warn when there are opened chunks lightnvm: pblk: IO path reorganization lightnvm: pblk: simplify partial read path lightnvm: pblk: OOB recovery for closed chunks fix lightnvm: pblk: propagate errors when reading meta lightnvm: pblk: recover only written metadata lightnvm: pblk: wait for inflight IOs in recovery lightnvm: pblk: remove internal IO timeout lightnvm: pblk: fix spin_unlock order lightnvm: pblk: kick writer on write recovery path lightnvm: pblk: fix update line wp in OOB recovery lightnvm: pblk: do not read OOB from emeta region lightnvm: pblk: store multiple copies of smeta lightnvm: pblk: GC error handling lightnvm: pblk: use nvm_rq_to_ppa_list() lightnvm: track inflight target creations drivers/lightnvm/core.c | 19 ++- drivers/lightnvm/pblk-cache.c | 7 +- drivers/lightnvm/pblk-core.c | 179 +++++++++++++++++---- drivers/lightnvm/pblk-gc.c | 5 +- drivers/lightnvm/pblk-init.c | 59 ++++--- drivers/lightnvm/pblk-rb.c | 2 +- drivers/lightnvm/pblk-read.c | 336 +++++++++++---------------------------- drivers/lightnvm/pblk-recovery.c | 103 ++++++++---- drivers/lightnvm/pblk-rl.c | 3 +- drivers/lightnvm/pblk-write.c | 1 + drivers/lightnvm/pblk.h | 31 ++-- include/linux/lightnvm.h | 2 + 12 files changed, 391 insertions(+), 356 deletions(-)