qemu-devel
[Top][All Lists]
Advanced

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

Re: VFIO/vfio-user: specify NVMe namespace to boot from


From: Philippe Mathieu-Daudé
Subject: Re: VFIO/vfio-user: specify NVMe namespace to boot from
Date: Tue, 20 Jul 2021 21:42:17 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.11.0

On 7/20/21 9:10 PM, Thanos Makatos wrote:
>> On Mon, Jul 12, 2021 at 01:24:07PM +0000, Thanos Makatos wrote:
>>> We're working on implementing a virtual NVMe controller based on SPDK
>> and a multiprocess-qemu branch that uses the vfio-user. We're facing a
>> problem where the existing API doesn't allow us to tell QEMU from which
>> NVMe namespace we'd like SeaBIOS to boot from.
>>>
>>> How can we solve this problem? Can we add a parameter to the '-boot'
>> option, e.g. '-boot path=/devices/pciblah/...@namespace0'? AFAIK VFIO
>> should have the same problem.
>>>
>>> The corresponding SeaBIOS patch can be found in
>> https://mail.coreboot.org/hyperkitty/list/seabios@seabios.org/thread/2Q7
>> NPH7TJNHK6JGPHQL7755HILO23ISN/
>>
>> Hi,
>> I have CCed Gerd Hoffmann on a hunch that he may have ideas.
>>
>> Yes, I think the path needs to include the Namespace ID similar to how
>> SCSI boot paths include the target/channel/LUN.
> 
> Just to make sure I've explained the problem correctly, what we need to fix 
> is not specific to NVMe: we want to be able to boot from any PCI device, so 
> we'd need something like '-boot /devices/pciblah'. Specifically, for NVMe we 
> might want to specify the namespace (as we can't necessarily assume that the 
> first one must be used), therefore we'd have to add the '/namespace0' bit. 
> For other kinds of PCI devices, we'd have to append something different.
> 
> Would such a change be acceptable?

FWIW -boot path= sounds a good way to solve this problem,
as long as you succeed at not breaking the legacy bootdevice.c :)

> 
>>
>> When the SeaBIOS NVMe driver probes the controller is should discover
>> the available Namespaces and set up individual drives for each
>> Namespace. That would be analogous to virtio_scsi_add_lun().
> 
> Setting up an individual drive can easily exhaust SeaBIOS's limited memory, 
> so it's better to either probe the specified namespace or probe the first 
> active one. I've sent a patch here: 
> https://mail.coreboot.org/hyperkitty/list/seabios@seabios.org/message/TKKUCH5PYZPXZG3NA2F5SALUFUVUYDZG/
> 
> 




reply via email to

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