On Thu, Apr 06, 2017 at 05:06:08PM +0200, Pino Toscano wrote:
On Thursday, 6 April 2017 12:04:21 CEST Richard W.M. Jones wrote:
> Previously the kernel_info field 'ki_supports_virtio' really meant
> that the kernel supports virtio-net. That was used as a proxy to mean
> the kernel supports virtio in general.
>
> This change splits the field so we explicitly test for both virtio-blk
> and virtio-net drivers, and store the results as separate fields.
>
> The patch is straightforward, except for the change to the
> 'rebuild_initrd' function. Instead of making the module list
> conditional on whether virtio-net is available and using the old
> (probably wrong) fallback if it happens to be unavailable, this now
> tries to enable the common virtio kernel modules (just the ones needed
> for virtio-blk and virtio-net to work). The fallback is only used if
> none of the common virtio modules can be found.
> ---
> [...]
> let best_kernel =
> let compare_best_kernels k1 k2 =
> - let i = compare k1.ki_supports_virtio k2.ki_supports_virtio in
> + let i = compare k1.ki_supports_virtio_net k2.ki_supports_virtio_net in
Should this consider both virtio-net+virtio-blk to determine that a
kernel "supports virtio"?
TBH "supports virtio" is not really a thing. Supports the virtio bus?
That's not useful unless it also supports specific virtio devices.
In any case it turns out we don't need to know if a kernel supports
virtio except in one place: sorting the kernels. Arguably that would
be better if it weighted kernels by how many virtio devices they
support or something like that. I might just add that in fact.
> -let string_of_kernel_info ki =
> - sprintf "(%s, %s, %s, %s, %s, %s, virtio=%b, xen=%b, debug=%b)"
> - ki.ki_name ki.ki_version ki.ki_arch ki.ki_vmlinuz
> - (match ki.ki_initrd with None -> "None" | Some f -> f)
> - (match ki.ki_config_file with None -> "None" | Some f -> f)
> - ki.ki_supports_virtio ki.ki_is_xen_pv_only_kernel ki.ki_is_debug
> +let print_kernel_info chan prefix ki =
Can you please expose this function (as interface in linux_kernels.mli)
in this patch already (instead of patch #9)?
Will do, thanks for the review.
Rich.
--
Richard Jones, Virtualization Group, Red Hat
http://people.redhat.com/~rjones
Read my programming and virtualization blog:
http://rwmj.wordpress.com
libguestfs lets you edit virtual machines. Supports shell scripting,
bindings from many languages.
http://libguestfs.org