[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PULL 32/56] hw/block/nvme: split setup and register for namespace

From: Alexander Graf
Subject: Re: [PULL 32/56] hw/block/nvme: split setup and register for namespace
Date: Thu, 11 Feb 2021 10:53:53 +0100
User-agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.16; rv:86.0) Gecko/20100101 Thunderbird/86.0

Hi Klaus,

On 09.02.21 08:30, Klaus Jensen wrote:
From: Minwoo Im <minwoo.im.dev@gmail.com>

In NVMe, namespace is being attached to process I/O.  We register NVMe
namespace to a controller via nvme_register_namespace() during
nvme_ns_setup().  This is main reason of receiving NvmeCtrl object
instance to this function to map the namespace to a controller.

To make namespace instance more independent, it should be split into two
parts: setup and register.  This patch split them into two differnt
parts, and finally nvme_ns_setup() does not have nothing to do with
NvmeCtrl instance at all.

This patch is a former patch to introduce NVMe subsystem scheme to the
existing design especially for multi-path.  In that case, it should be
split into two to make namespace independent from a controller.

Signed-off-by: Minwoo Im <minwoo.im.dev@gmail.com>
Signed-off-by: Klaus Jensen <k.jensen@samsung.com>

In latest master, I can no longer access NVMe devices from edk2. Git bisect pointed me to this commit.

To reproduce:

  $ ./build/qemu-system-x86_64 -enable-kvm -pflash build/pc-bios/edk2-x86_64-code.fd -drive file=image.raw,if=none,id=d,snapshot=on -device nvme,serial=1234,drive=d -nographic -net none

You will see that before this commit, edk2 is able to enumerate the block device, while after this commit it does not find it.


Mapping table
      FS0: Alias(s):HD1b:;BLK2:
     BLK0: Alias(s):
     BLK1: Alias(s):
     BLK3: Alias(s):
     BLK4: Alias(s):


Mapping table
     BLK0: Alias(s):



reply via email to

[Prev in Thread] Current Thread [Next in Thread]