From patchwork Mon Sep 17 05:29:34 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Heiner Litz X-Patchwork-Id: 10602077 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 76BA0112B for ; Mon, 17 Sep 2018 05:29:54 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 6558429585 for ; Mon, 17 Sep 2018 05:29:54 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 59B2D2958D; Mon, 17 Sep 2018 05:29:54 +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=-8.0 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,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 D90B229585 for ; Mon, 17 Sep 2018 05:29:53 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727456AbeIQKzi (ORCPT ); Mon, 17 Sep 2018 06:55:38 -0400 Received: from mail-pl1-f196.google.com ([209.85.214.196]:35178 "EHLO mail-pl1-f196.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726073AbeIQKzi (ORCPT ); Mon, 17 Sep 2018 06:55:38 -0400 Received: by mail-pl1-f196.google.com with SMTP id g2-v6so6853681plo.2 for ; Sun, 16 Sep 2018 22:29:53 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ucsc.edu; s=ucsc-google; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=PjzKlMAPQlWSj1cqXFEQrvy/8NUScWJcuVih85m6ffw=; b=hSSUjKxrkzgqEMfKgDPucc+Wwf0utkm/s8Uq/jXvNN/maOv9g7g25+MCmf0EziGM/S gBSSkQw9U+M+0h8T3/ybEXMUEvoSnY71x+2Jh4pEb1wbDVkRUkAhGnqnQHT5x54UWUVL herTMtuvEg9xg1nX4MrrQnFaSUYSPoyahszHA= 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; bh=PjzKlMAPQlWSj1cqXFEQrvy/8NUScWJcuVih85m6ffw=; b=R30O1jmH72MPMqlLmM8l6N4m/fRAd04i703TTkQdyzkDRqELS3sLw8hH1GCQCr+rP5 MRcKgNe8z2GaDnmvQAZDV6eqsV0CVgKhQ5tRXalv8wyS5q/tWHdl7cUPf5IeOxwMYzO2 Dehhi4EWhp6sS8EXsIM+SM8gbZYFRPt5zLktkjs0o1zNv4JxmxnNFQx0iJULLW2gkY5B Lb9bCleso9AyHfYoAMdLh984+VRHEF8KEXGtNHE1PA3Rd6i9AFEf4HaAnXWr45wgyOJI sADzM0FsysxF1C8Yw7oupdgqpO6AEegCGrbWdGi5BGh6eZFrNRacMA94U9o3/j0WcQ7g e5pA== X-Gm-Message-State: APzg51BjSYW9/MzcCM9yVYicRjme5gBxqF4DFm2jOhRRYExafbk2IBid Kye4ZHJiC+bFIKmbYa7yXNjq/uO1w28Lwg== X-Google-Smtp-Source: ANB0VdZsvlhsWO1XJKN5lvGZwrisfYgIrVuzz+weYeSF9tvdzywqAL3poIL9Io0RvXH5eMMcg7L4fQ== X-Received: by 2002:a17:902:a504:: with SMTP id s4-v6mr23769413plq.101.1537162192108; Sun, 16 Sep 2018 22:29:52 -0700 (PDT) Received: from bohr1.soe.ucsc.edu (bohr1.soe.ucsc.edu. [128.114.52.184]) by smtp.gmail.com with ESMTPSA id u11-v6sm22197795pfd.117.2018.09.16.22.29.50 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 16 Sep 2018 22:29:51 -0700 (PDT) From: Heiner Litz To: linux-block@vger.kernel.org, hlitz@ucsc.edu Cc: javier@cnexlabs.com, mb@lightnvm.io, igor.j.konopko@intel.com, marcin.dziegielewski@intel.com Subject: [RFC PATCH 1/6] lightnvm: pblk: refactor read and write APIs Date: Sun, 16 Sep 2018 22:29:34 -0700 Message-Id: <20180917052939.4776-2-hlitz@ucsc.edu> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20180917052939.4776-1-hlitz@ucsc.edu> References: <20180917052939.4776-1-hlitz@ucsc.edu> 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 In prepartion of supporting RAIL, expose read and write APIs so their functionality can be leveraged by RAIL. Signed-off-by: Heiner Litz --- drivers/lightnvm/pblk-read.c | 8 +++----- drivers/lightnvm/pblk-write.c | 4 ++-- drivers/lightnvm/pblk.h | 7 +++++++ 3 files changed, 12 insertions(+), 7 deletions(-) diff --git a/drivers/lightnvm/pblk-read.c b/drivers/lightnvm/pblk-read.c index 6d13763f2f6a..67d44caefff4 100644 --- a/drivers/lightnvm/pblk-read.c +++ b/drivers/lightnvm/pblk-read.c @@ -170,8 +170,7 @@ static void pblk_end_user_read(struct bio *bio) bio_endio(bio); } -static void __pblk_end_io_read(struct pblk *pblk, struct nvm_rq *rqd, - bool put_line) +void __pblk_end_io_read(struct pblk *pblk, struct nvm_rq *rqd, bool put_line) { struct nvm_tgt_dev *dev = pblk->dev; struct pblk_g_ctx *r_ctx = nvm_rq_to_pdu(rqd); @@ -285,10 +284,9 @@ static void pblk_end_partial_read(struct nvm_rq *rqd) __pblk_end_io_read(pblk, rqd, false); } -static int pblk_setup_partial_read(struct pblk *pblk, struct nvm_rq *rqd, +int pblk_setup_partial_read(struct pblk *pblk, struct nvm_rq *rqd, unsigned int bio_init_idx, - unsigned long *read_bitmap, - int nr_holes) + unsigned long *read_bitmap, int nr_holes) { struct pblk_sec_meta *meta_list = rqd->meta_list; struct pblk_g_ctx *r_ctx = nvm_rq_to_pdu(rqd); diff --git a/drivers/lightnvm/pblk-write.c b/drivers/lightnvm/pblk-write.c index 9554febee480..1ce03d7c873b 100644 --- a/drivers/lightnvm/pblk-write.c +++ b/drivers/lightnvm/pblk-write.c @@ -217,7 +217,7 @@ static void pblk_submit_rec(struct work_struct *work) } -static void pblk_end_w_fail(struct pblk *pblk, struct nvm_rq *rqd) +void pblk_end_w_fail(struct pblk *pblk, struct nvm_rq *rqd) { struct pblk_rec_ctx *recovery; @@ -500,7 +500,7 @@ static struct pblk_line *pblk_should_submit_meta_io(struct pblk *pblk, return meta_line; } -static int pblk_submit_io_set(struct pblk *pblk, struct nvm_rq *rqd) +int pblk_submit_io_set(struct pblk *pblk, struct nvm_rq *rqd) { struct ppa_addr erase_ppa; struct pblk_line *meta_line; diff --git a/drivers/lightnvm/pblk.h b/drivers/lightnvm/pblk.h index 3596043332f2..eab50df70ae6 100644 --- a/drivers/lightnvm/pblk.h +++ b/drivers/lightnvm/pblk.h @@ -861,6 +861,8 @@ void pblk_lookup_l2p_seq(struct pblk *pblk, struct ppa_addr *ppas, int pblk_write_to_cache(struct pblk *pblk, struct bio *bio, unsigned long flags); int pblk_write_gc_to_cache(struct pblk *pblk, struct pblk_gc_rq *gc_rq); +void pblk_end_w_fail(struct pblk *pblk, struct nvm_rq *rqd); +int pblk_submit_io_set(struct pblk *pblk, struct nvm_rq *rqd); /* * pblk map @@ -886,6 +888,11 @@ void pblk_write_kick(struct pblk *pblk); extern struct bio_set pblk_bio_set; int pblk_submit_read(struct pblk *pblk, struct bio *bio); int pblk_submit_read_gc(struct pblk *pblk, struct pblk_gc_rq *gc_rq); +void __pblk_end_io_read(struct pblk *pblk, struct nvm_rq *rqd, bool put_line); +int pblk_setup_partial_read(struct pblk *pblk, struct nvm_rq *rqd, + unsigned int bio_init_idx, + unsigned long *read_bitmap, int nr_holes); + /* * pblk recovery */