Daniel P. Berrangé wrote:

> > I imagine that this is a valid configuration for qemu and probably other
> > drivers, but not for bhyve, because it doesn't support direct kernel
> > boot (neither for Linux nor FreeBSD). However, I wasn't able to find
> > anything similar in the driver's capabilities. If I'm not missing
> > anything, should drivers be able to advertise whether they support
> > direct kernel boot?
> 
> Yeah, we ought to come up with a way to express whether a driver
> can do direct kernel boot or not. Only virt tech that originated
> in a Linux context can typically do this (Xen, UserModeLinux, QEMU).
> 
> At the same time though, for the TCK we could fudge it via
> the configuration file. We currently list the kernel+initrd
> in that config file, but we could make it accept an ISO
> image instead perhaps ?

I'll play around with the idea of using the TCK configuration file for
that. I image it'll require some fiddling with the fullos argument inside TCK,
will see how it turns out.

> > 
> > Second example is pretty similar, but without the direct kernel bits:
> > 
> > <domain type="bhyve">                                                       
> >                                                                             
> >                                                                             
> >                                     
> >   <name>tck</name>           
> >   <memory>1048576</memory>                                                  
> >                                                                             
> >                                                                             
> >                                     
> >   <currentMemory>1048576</currentMemory>
> >   <os>                                  
> >     <type arch="x86_64">hvm</type>                                          
> >                                                         
> >     <boot dev="hd" />                                                       
> >                                                         
> >   </os>                                                                     
> >                                                         
> >   <features>                                                   
> >     <acpi />                                                   
> >     <apic />                                                                
> >                                                         
> >   </features>                                                               
> >                                                         
> >   <devices>                                                                 
> >                                                         
> >     <disk type="file">                                                      
> >                                                         
> >       <driver />                      
> >       <source 
> > file="/var/lib/libvirt-tck/libvirt-tck/os-x86_64-hvm/disk-fedora-40.img" />
> >       <target dev="vda" />                              
> >     </disk>                      
> >     <rng model="virtio">                                          
> >       <backend model="random" />                     
> >     </rng>                                                                  
> >                                                         
> >   </devices>                                             
> > </domain>
> > 
> > I imagine a config like is valid for qemu and many other drivers, but
> > it's valid for bhyve iff disk-fedora-40.img is a FreeBSD image. I think
> > in this should not be solved on the driver's capabilities reporting
> > level, because adding os_name details is probably way to specific.
> 
> I'm not sure I understand what the problem is in this example ? Are
> you saying that bhyve can only run FreeBSD guests, not Linux guests,
> or am I mis-interpreting ?

Not exactly. You're right that bhyveload(8) is somewhat a replacement
for grub2 or similar, with a limitation that it only supports FreeBSD
guests.

Currently, there are two main scenarios for bhyve:

 * No loader/firmware configured -> defaults to bhyveload(8) and, thus,
   to FreeBSD guests only (just like in the example above)
 * <os firmware='efi'> specified -> any reasonable guest supported by
   the firmware is supported

The problem I see here is that currently the bhyve driver defaults to a
less flexible configuration with bhyveload rather than to the efi
firmware.

I can of course configure TCK to test against FreeBSD guests, but I was
wondering whether it makes sense to switch defaults, that is, default to
the efi firmware instead of bhyveload(8) when no specific loader
configuration was provided?

Thanks,
Roman

Reply via email to