[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH v5 22/26] nvme: support multiple namespaces
From: |
Klaus Birkelund Jensen |
Subject: |
Re: [PATCH v5 22/26] nvme: support multiple namespaces |
Date: |
Thu, 6 Feb 2020 08:27:16 +0100 |
On Feb 5 01:31, Keith Busch wrote:
> On Tue, Feb 04, 2020 at 10:52:04AM +0100, Klaus Jensen wrote:
> > This adds support for multiple namespaces by introducing a new 'nvme-ns'
> > device model. The nvme device creates a bus named from the device name
> > ('id'). The nvme-ns devices then connect to this and registers
> > themselves with the nvme device.
> >
> > This changes how an nvme device is created. Example with two namespaces:
> >
> > -drive file=nvme0n1.img,if=none,id=disk1
> > -drive file=nvme0n2.img,if=none,id=disk2
> > -device nvme,serial=deadbeef,id=nvme0
> > -device nvme-ns,drive=disk1,bus=nvme0,nsid=1
> > -device nvme-ns,drive=disk2,bus=nvme0,nsid=2
> >
> > The drive property is kept on the nvme device to keep the change
> > backward compatible, but the property is now optional. Specifying a
> > drive for the nvme device will always create the namespace with nsid 1.
> >
> > Signed-off-by: Klaus Jensen <address@hidden>
> > Signed-off-by: Klaus Jensen <address@hidden>
>
> I like this feature a lot, thanks for doing it.
>
> Reviewed-by: Keith Busch <address@hidden>
>
> > @@ -1256,18 +1272,24 @@ static uint16_t nvme_smart_info(NvmeCtrl *n,
> > NvmeCmd *cmd, uint8_t rae,
> > uint64_t units_read = 0, units_written = 0, read_commands = 0,
> > write_commands = 0;
> > NvmeSmartLog smart;
> > - BlockAcctStats *s;
> >
> > if (nsid && nsid != 0xffffffff) {
> > return NVME_INVALID_FIELD | NVME_DNR;
> > }
>
> This is totally optional, but worth mentioning: this patch makes it
> possible to remove this check and allow per-namespace smart logs. The
> ID_CTRL.LPA would need to updated to reflect that if you wanted to
> go that route.
Yeah, I thought about that, but with NVMe v1.4 support arriving in a
later series, there are no longer any namespace specific stuff in the
log page anyway.
The spec isn't really clear on what the preferred behavior for a 1.4
compliant device is. Either
1. LBA bit 0 set and just return the same page for each namespace or,
2. LBA bit 0 unset and fail when NSID is set
- [PATCH v5 25/26] nvme: remove redundant NvmeCmd pointer parameter, (continued)
- Message not available
- Message not available
Message not available
Re: [PATCH v5 22/26] nvme: support multiple namespaces, Maxim Levitsky, 2020/02/12
Re: [PATCH v5 00/26] nvme: support NVMe v1.3d, SGLs and multiple namespaces, no-reply, 2020/02/04
Re: [PATCH v5 00/26] nvme: support NVMe v1.3d, SGLs and multiple namespaces, Keith Busch, 2020/02/04