[libvirt] [PATCH] util: vhost user: support for bootindex
Michal Privoznik
mprivozn at redhat.com
Wed Mar 18 18:01:32 UTC 2015
On 13.03.2015 10:17, zhang bo wrote:
> Problem Description:
> When we set boot order for a vhost-user network interface, we found the boot index
> doesn't work.
>
> Cause of the Problem:
> In the function qemuBuildVhostuserCommandLine(), it forcely set the arg bootindex of
> function qemuBuildNicDevStr() to 0. Thus, the bootindex parameter got missing.
>
> Solution:
> Trans the arg bootindex down.
>
> Signed-off-by: Gao Haifeng <gaohaifeng.gao at huawei.com>
> Signed-off-by: Zhang Bo <oscar.zhangbo at huawei.com>
> ---
> src/qemu/qemu_command.c | 14 ++++++++------
> 1 file changed, 8 insertions(+), 6 deletions(-)
>
> diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c
> index 5303de5..2f37812 100644
> --- a/src/qemu/qemu_command.c
> +++ b/src/qemu/qemu_command.c
> @@ -7767,7 +7767,8 @@ static int
> qemuBuildVhostuserCommandLine(virCommandPtr cmd,
> virDomainDefPtr def,
> virDomainNetDefPtr net,
> - virQEMUCapsPtr qemuCaps)
> + virQEMUCapsPtr qemuCaps,
> + int bootindex)
> {
> virBuffer chardev_buf = VIR_BUFFER_INITIALIZER;
> virBuffer netdev_buf = VIR_BUFFER_INITIALIZER;
> @@ -7814,7 +7815,7 @@ qemuBuildVhostuserCommandLine(virCommandPtr cmd,
> virCommandAddArg(cmd, "-netdev");
> virCommandAddArgBuffer(cmd, &netdev_buf);
>
> - if (!(nic = qemuBuildNicDevStr(def, net, -1, 0, 0, qemuCaps))) {
> + if (!(nic = qemuBuildNicDevStr(def, net, -1, bootindex, 0, qemuCaps))) {
> virReportError(VIR_ERR_INTERNAL_ERROR,
> "%s", _("Error generating NIC -device string"));
> goto error;
> @@ -7859,8 +7860,12 @@ qemuBuildInterfaceCommandLine(virCommandPtr cmd,
> virNetDevBandwidthPtr actualBandwidth;
> size_t i;
>
> +
> + if (!bootindex)
> + bootindex = net->info.bootIndex;
> +
> if (actualType == VIR_DOMAIN_NET_TYPE_VHOSTUSER)
> - return qemuBuildVhostuserCommandLine(cmd, def, net, qemuCaps);
> + return qemuBuildVhostuserCommandLine(cmd, def, net, qemuCaps, bootindex);
>
> if (actualType == VIR_DOMAIN_NET_TYPE_HOSTDEV) {
> /* NET_TYPE_HOSTDEV devices are really hostdev devices, so
> @@ -7869,9 +7874,6 @@ qemuBuildInterfaceCommandLine(virCommandPtr cmd,
> return 0;
> }
>
> - if (!bootindex)
> - bootindex = net->info.bootIndex;
> -
> /* Currently nothing besides TAP devices supports multiqueue. */
> if (net->driver.virtio.queues > 0 &&
> !(actualType == VIR_DOMAIN_NET_TYPE_NETWORK ||
>
ACKed and pushed.
Michal
More information about the libvir-list
mailing list