linux-nvme.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
From: mlin@kernel.org (Ming Lin)
Subject: RFC: nvme driver split, the main part
Date: Tue, 13 Oct 2015 16:23:18 -0700	[thread overview]
Message-ID: <1444778598.20969.11.camel@ssi> (raw)
In-Reply-To: <1444633811-28319-1-git-send-email-hch@lst.de>


On Mon, 2015-10-12@09:10 +0200, Christoph Hellwig wrote:
> And this is where the real work starts.  This moves all the block device,
> char device and sysfs interface code as well as the controller identification
> and namespaces scanning into the common code.  I've ported both my nvme-loop
> and the fabrics driver over to this scheme to validate that it works fine.
> 
> The main complication here is patch two which uses the block layer PI
> infrastructure for metdata passthrough.  I can't test it because I don't
> have access to a metadata capable device so I'll have to rely on testers.
> 
> Once this this series is done there are a few more items remaining:
> 
>  - remove a few library-like functions to core.c (trivial)
>  - abort rewrite to sit on top of the struct request infrastructure (in progress)
>  - AEN rewrite, including making a small part of it common
>  - a proper state machine for probing, scanning and resets (will take a while)
> 
> To make testing easier I've pushed out a git tree with this and all dependencies:
> 
>     git://git.infradead.org/users/hch/block.git nvme-split.4

I ported virtio-nvme to nvme-split. It works.
https://git.kernel.org/cgit/linux/kernel/git/mlin/linux.git/log/?h=nvme-split/virtio

root at wheezy:/sys/class/nvme# ll
lrwxrwxrwx  1 root root 0 Oct 13 16:06 nvme0 -> ../../devices/pci0000:00/0000:00:04.0/nvme/nvme0/
lrwxrwxrwx  1 root root 0 Oct 13 16:06 nvme1 -> ../../devices/pci0000:00/0000:00:05.0/virtio1/nvme/nvme1/

root at wheezy:/sys/block# ll nvme*
lrwxrwxrwx 1 root root 0 Oct 13 16:07 nvme0n1 -> ../devices/pci0000:00/0000:00:04.0/nvme/nvme0/nvme0n1/
lrwxrwxrwx 1 root root 0 Oct 13 16:07 nvme1n1 -> ../devices/pci0000:00/0000:00:05.0/virtio1/nvme/nvme1/nvme1n1/

For the core part, I only moved the call of nvme_core_{init,exit} from
pci.c to core.c.

For the naming, how about:
- for core data structures/functions, prefixed all with nvme_core_*
- for pci data structures/functions, prefixed all with nvme_pci_*

I did this naming in drivers/nvme/host/virtio.c.

I can send a patch if you agree.

Thanks.

  parent reply	other threads:[~2015-10-13 23:23 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-10-12  7:10 RFC: nvme driver split, the main part Christoph Hellwig
2015-10-12  7:10 ` [PATCH 1/8] nvme: split __nvme_submit_sync_cmd Christoph Hellwig
2015-10-12  7:10 ` [PATCH 2/8] nvme: use the block layer for userspace passthrough metadata Christoph Hellwig
2015-10-14 21:19   ` Keith Busch
2015-10-14 21:23     ` Busch, Keith
2015-10-15  5:27     ` Christoph Hellwig
2015-10-15 14:44       ` Keith Busch
2015-10-15 14:58         ` Christoph Hellwig
2015-10-12  7:10 ` [PATCH 3/8] nvme: move block_device_operations and ns/ctrl freeing to common code Christoph Hellwig
2015-10-12  7:10 ` [PATCH 4/8] nvme: add explicit quirk handling Christoph Hellwig
2015-10-12  7:10 ` [PATCH 5/8] nvme: add a common helper to read Identify Controller data Christoph Hellwig
2015-10-12  7:10 ` [PATCH 6/8] nvme: move the call to nvme_init_identify earlier Christoph Hellwig
2015-10-12  7:10 ` [PATCH 7/8] nvme: move namespace scanning to common code Christoph Hellwig
2015-10-13 19:31   ` Keith Busch
2015-10-14 12:53     ` Christoph Hellwig
2015-10-12  7:10 ` [PATCH 8/8] nvme: move chardev and sysfs interface " Christoph Hellwig
2015-10-14 16:03   ` Keith Busch
2015-10-13 23:23 ` Ming Lin [this message]
2015-10-14 12:58   ` RFC: nvme driver split, the main part Christoph Hellwig

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=1444778598.20969.11.camel@ssi \
    --to=mlin@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).