From patchwork Mon Sep 17 05:29:33 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Heiner Litz X-Patchwork-Id: 10602075 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 788A514DA for ; Mon, 17 Sep 2018 05:29:51 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 65F2429585 for ; Mon, 17 Sep 2018 05:29:51 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 598E02958D; Mon, 17 Sep 2018 05:29:51 +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 E403729585 for ; Mon, 17 Sep 2018 05:29:50 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727236AbeIQKzf (ORCPT ); Mon, 17 Sep 2018 06:55:35 -0400 Received: from mail-pg1-f195.google.com ([209.85.215.195]:35433 "EHLO mail-pg1-f195.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726073AbeIQKzf (ORCPT ); Mon, 17 Sep 2018 06:55:35 -0400 Received: by mail-pg1-f195.google.com with SMTP id 7-v6so7097042pgf.2 for ; Sun, 16 Sep 2018 22:29:49 -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; bh=b/8A0hoXHcW2asjbgFZrjXgpvPijoRWhpAxq30OK+/I=; b=EhSWJWHqG2j9zvE1Os1sJyYpnGO6g0HcBxzFtPsgEV9+xU7nd1iAd0BX+JO0OEh737 fe9LIBv2gBHx3h6dzXIKg40otGl4iEcz2TbUBk8XYkkVfER+8NtHAEiqLvv7n3f7/dy0 S/Le1iMKxK6MaQxBj8NFgAzyu0LLWrnpKqFao= 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; bh=b/8A0hoXHcW2asjbgFZrjXgpvPijoRWhpAxq30OK+/I=; b=FMeOkbwL0aqQWlo68qx/MvCDMOzAY7ODsObVsr3uKMUfq+4airda+je6hedSgsmBsM aBoIs/6UAOSGQW9OUDYst8HpUKvHTtKcTvm4ad5elJCaL8dqY2dmR1c34sHwCFJip9uH dodLwSWY0j7pTzaI8xwYg+M6pSP/ef0oA7FqExMiid/NvLO/sFPaBKcK+hXASCkHHhhb egmgVedvgE1ybKmsC4EV24qgaX1weu6EJ+M5saGWIEaOzww/PD/M7Addx+dACAaHFULu TD4TGVHkDUii+BilGSdSMAvF/CZiBwfVcAze1tBtx/6WD+Ha0DRKj7ol+FsnhyEosLhP 3szw== X-Gm-Message-State: APzg51BgRm5a3FyR4SiWSxjaTXjY+LOctIMdmia9CNW2yx1MViZdwwsx ACHbG29VjApLIEKMkGEYY+ZzNNkBzSluhw== X-Google-Smtp-Source: ANB0VdaWxeHCAsl/Aq0BOTvmteIfoHA4G0PBOvVTkpyl6v1WNpuRv9m6TIoQoVTgf4AxSQB40ITiLA== X-Received: by 2002:a65:5144:: with SMTP id g4-v6mr21497043pgq.21.1537162189148; Sun, 16 Sep 2018 22:29:49 -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.47 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 16 Sep 2018 22:29:47 -0700 (PDT) From: Heiner Litz To: linux-block@vger.kernel.org Cc: javier@cnexlabs.com, mb@lightnvm.io, igor.j.konopko@intel.com, marcin.dziegielewski@intel.com Subject: [RFC PATCH 0/6] lightnvm: pblk: Introduce RAIL to enforce low tail read latency Date: Sun, 16 Sep 2018 22:29:33 -0700 Message-Id: <20180917052939.4776-1-hlitz@ucsc.edu> X-Mailer: git-send-email 2.17.1 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 Hi All, this patchset introduces RAIL, a mechanism to enforce low tail read latency for lightnvm OCSSD devices. RAIL leverages redundancy to guarantee that reads are always served from LUNs that do not serve a high latency operation such as a write or erase. This avoids that reads become serialized behind these operations reducing tail latency by ~10x. In particular, in the absence of ECC read errors, it provides 99.99 percentile read latencies of below 500us. RAIL introduces capacity overheads (7%-25%) due to RAID-5 like striping (providing fault tolerance) and reduces the maximum write bandwidth to 110K IOPS on CNEX SSD. This patch is based on pblk/core and requires two additional patches from Javier to be applicable (let me know if you want me to rebase): The 1st patch exposes some existing APIs so they can be used by RAIL The 2nd patch introduces a configurable sector mapping function The 3rd patch refactors the write path so the end_io_fn can be specified when setting up the request The 4th patch adds a new submit io function that acquires the write semaphore The 5th patch introduces the RAIL feature and its API The 6th patch integrates RAIL into pblk's read and write path