All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Matias Bjørling" <m@bjorling.me>
To: linux-block@vger.kernel.org, linux-kernel@vger.kernel.org
Cc: "Matias Bjørling" <m@bjorling.me>
Subject: [PATCH RFC 0/5] lightnvm: Introduce System Blocks
Date: Mon, 14 Dec 2015 14:17:02 +0100	[thread overview]
Message-ID: <1450099027-24745-1-git-send-email-m@bjorling.me> (raw)

Hi,

Currently a device is brought up via the media manager, which detects if
a device supports it. We like to allow a drive to be intialized to a
specific media manager and therefore introduce new functionality in the
core to scan a specific set of flash blocks, that maintains what we call
system blocks.

With this patchset, the disk should first be initialized to a given
media manager, which then takes control over the device. The core and
media managers are free to update the system block for the device. In
the case of the initialization PPA for the media manager is changed or
for other reasons.

A system block is duplicated in three places to prevent the system block
data to be unreachable. We currently allocate blocks on three different
luns, the first lun from the first channel, the first lun from the
middle channel, and from the first lun in the last channel. If a device
only have a single or two channels, only one or two system blocks are
maintained.

The three luns each have two blocks reserved during initialization,
which amounts to approximately 1.5M updates in total, which is much more
updates that we expect with current workloads.

The first four patches prepares the core to directlt interact with the
device, and the last patch introduces the recovery scheme.

Later patches will add the management functionality and integrate with
the gennvm media manager.

Thanks,
Matias

Matias Bjørling (5):
  lightnvm: move ppa erase logic to core
  lightnvm: refactor rqd ppa list into set/free
  lightnvm: add sync support for submit_io
  lightnvm: introduce nvm_submit_ppa
  lightnvm: core on-disk initialization

 drivers/lightnvm/Makefile    |   2 +-
 drivers/lightnvm/core.c      | 128 +++++++++++
 drivers/lightnvm/gennvm.c    |  68 +-----
 drivers/lightnvm/sysblk.c    | 524 +++++++++++++++++++++++++++++++++++++++++++
 drivers/nvme/host/lightnvm.c |   7 +
 include/linux/lightnvm.h     |  39 ++++
 6 files changed, 703 insertions(+), 65 deletions(-)
 create mode 100644 drivers/lightnvm/sysblk.c

-- 
2.1.4


             reply	other threads:[~2015-12-14 13:17 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-12-14 13:17 Matias Bjørling [this message]
2015-12-14 13:17 ` [PATCH RFC 1/5] lightnvm: move ppa erase logic to core Matias Bjørling
2015-12-14 13:17 ` [PATCH RFC 2/5] lightnvm: refactor rqd ppa list into set/free Matias Bjørling
2015-12-14 13:17 ` [PATCH RFC 3/5] lightnvm: add sync support for submit_io Matias Bjørling
2015-12-15 12:34   ` Christoph Hellwig
2015-12-15 14:10     ` Matias Bjørling
2015-12-14 13:17 ` [PATCH RFC 4/5] lightnvm: introduce nvm_submit_ppa Matias Bjørling
2015-12-14 13:17 ` [PATCH RFC 5/5] lightnvm: core on-disk initialization Matias Bjørling

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1450099027-24745-1-git-send-email-m@bjorling.me \
    --to=m@bjorling.me \
    --cc=linux-block@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.