
On 03/13/2014 01:13 PM, Cole Robinson wrote:
Just skip the vhost command line generation, since this won't work if attempting to run manually. --- src/qemu/qemu_command.c | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-)
diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c index 755a72a..bf7fb12 100644 --- a/src/qemu/qemu_command.c +++ b/src/qemu/qemu_command.c @@ -7521,7 +7521,8 @@ qemuBuildInterfaceCommandLine(virCommandPtr cmd, virQEMUCapsPtr qemuCaps, int vlan, int bootindex, - enum virNetDevVPortProfileOp vmop) + enum virNetDevVPortProfileOp vmop, + bool forXMLToArgv)
Ah, *now* I understand why you used that name - you're using it to indicate multiple behavior changes that coincidentally are needed when calling for XMLtoNative. Thinking... thinking... So a more generic way of describing this is that you want a commandline that will be runnable standalone, not requiring/supporting all the setup done by libvirt when it will be running the command itself. So maybe name it "standalone"? Beyond that, now I'm wondering, *is* the purpose of xml-to-native to generate something the user can run standalone? Or is it to give them a simple way to see the exact command that libvirt would have run to start this domain? If the former, then ACK to both this and 1/3 (but maybe give another thought to the name for the bool). If the latter, then maybe we shouldn't be doing this series anyway...
{ int ret = -1; char *nic = NULL, *host = NULL; @@ -7579,10 +7580,11 @@ qemuBuildInterfaceCommandLine(virCommandPtr cmd, goto cleanup; }
- if (actualType == VIR_DOMAIN_NET_TYPE_NETWORK || - actualType == VIR_DOMAIN_NET_TYPE_BRIDGE || - actualType == VIR_DOMAIN_NET_TYPE_ETHERNET || - actualType == VIR_DOMAIN_NET_TYPE_DIRECT) { + if ((actualType == VIR_DOMAIN_NET_TYPE_NETWORK || + actualType == VIR_DOMAIN_NET_TYPE_BRIDGE || + actualType == VIR_DOMAIN_NET_TYPE_ETHERNET || + actualType == VIR_DOMAIN_NET_TYPE_DIRECT) && + !forXMLToArgv) { /* Attempt to use vhost-net mode for these types of network device */ vhostfdSize = net->driver.virtio.queues; @@ -8759,7 +8761,8 @@ qemuBuildCommandLine(virConnectPtr conn, vlan = i;
if (qemuBuildInterfaceCommandLine(cmd, driver, conn, def, net, - qemuCaps, vlan, bootNet, vmop) < 0) + qemuCaps, vlan, bootNet, vmop, + forXMLToArgv) < 0) goto error; last_good_net = i; bootNet = 0;