This patch is a hack at the moment and would need code refactoring to split-out the defaults for x86 and powerpc. Libvirt chooses a set of default options such as disk controller, network specific options, etc which are suitable for a x86 host. These defaults are arch specific and hence libvirt needs a runtime switch to setup defaults based on host architecture. Libvirt should have this routine split per-arch at the right level with minimal code duplication. --- src/qemu/qemu_command.c | 30 +++++++++++++++++++++++++++++- 1 files changed, 29 insertions(+), 1 deletions(-) diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c index 0adc56a..3040f6a 100644 --- a/src/qemu/qemu_command.c +++ b/src/qemu/qemu_command.c @@ -1385,6 +1385,8 @@ qemuBuildDeviceAddressStr(virBufferPtr buf, * When QEMU grows support for > 1 PCI domain, then pci.0 change * to pciNN.0 where NN is the domain number */ +/* Prerna hack : remove PCI reference in command line */ +#if 0 if (qemuCapsGet(qemuCaps, QEMU_CAPS_PCI_MULTIBUS)) virBufferAsprintf(buf, ",bus=pci.0"); else @@ -1394,6 +1396,7 @@ qemuBuildDeviceAddressStr(virBufferPtr buf, info->addr.pci.slot, info->addr.pci.function); else virBufferAsprintf(buf, ",addr=0x%x", info->addr.pci.slot); +#endif } else if (info->type == VIR_DOMAIN_DEVICE_ADDRESS_TYPE_USB) { virBufferAsprintf(buf, ",bus="); qemuUsbId(buf, info->addr.usb.bus); @@ -1565,14 +1568,22 @@ qemuBuildDriveStr(virDomainDiskDefPtr disk, virBufferAsprintf(&opt, "file=%s,", disk->src); } } + +/* Prerna hack : force 'if=scsi' for powerKVM cmd line */ +#if 0 if (qemuCapsGet(qemuCaps, QEMU_CAPS_DEVICE)) virBufferAddLit(&opt, "if=none"); else - virBufferAsprintf(&opt, "if=%s", bus); +#endif + /* force 'if=scsi' for qemu command line output */ + virBufferAsprintf(&opt, "if=%s", bus); + if (disk->device == VIR_DOMAIN_DISK_DEVICE_CDROM) virBufferAddLit(&opt, ",media=cdrom"); +/* Prerna Hack : remove 'id=drive-scsi0-0-0' */ +#if 0 if (qemuCapsGet(qemuCaps, QEMU_CAPS_DEVICE)) { virBufferAsprintf(&opt, ",id=%s%s", QEMU_DRIVE_HOST_PREFIX, disk->info.alias); } else { @@ -1586,6 +1597,8 @@ qemuBuildDriveStr(virDomainDiskDefPtr disk, virBufferAsprintf(&opt, ",unit=%d", unitid); } } +#endif + if (bootable && qemuCapsGet(qemuCaps, QEMU_CAPS_DRIVE_BOOT) && disk->device == VIR_DOMAIN_DISK_DEVICE_DISK && @@ -3380,6 +3393,8 @@ qemuBuildCommandLine(virConnectPtr conn, if (!def->graphics) virCommandAddArg(cmd, "-nographic"); +/* Prerna hack : remove unnecesary options */ +#if 0 if (qemuCapsGet(qemuCaps, QEMU_CAPS_DEVICE)) { if (qemuCapsGet(qemuCaps, QEMU_CAPS_NODEFCONFIG)) virCommandAddArg(cmd, @@ -3387,6 +3402,7 @@ qemuBuildCommandLine(virConnectPtr conn, virCommandAddArg(cmd, "-nodefaults"); /* Disable default guest devices */ } +#endif /* Serial graphics adapter */ if (def->os.bios.useserial == VIR_DOMAIN_BIOS_USESERIAL_YES) { @@ -3692,6 +3708,8 @@ qemuBuildCommandLine(virConnectPtr conn, } usblegacy = true; } else { +/* Prerna hack : remove invocation for -drive lsi */ +#if 0 virCommandAddArg(cmd, "-device"); char *devstr; @@ -3701,6 +3719,7 @@ qemuBuildCommandLine(virConnectPtr conn, virCommandAddArg(cmd, devstr); VIR_FREE(devstr); +#endif } } } @@ -3833,6 +3852,8 @@ qemuBuildCommandLine(virConnectPtr conn, bootindex); } } else { +/* Prerna hack: Remove -device string */ +#if 0 virCommandAddArg(cmd, "-device"); if (!(optstr = qemuBuildDriveDevStr(disk, bootindex, @@ -3840,6 +3861,7 @@ qemuBuildCommandLine(virConnectPtr conn, goto error; virCommandAddArg(cmd, optstr); VIR_FREE(optstr); +#endif } } } @@ -4250,9 +4272,12 @@ qemuBuildCommandLine(virConnectPtr conn, virCommandAddArg(cmd, devstr); VIR_FREE(devstr); +/* Prerna hack : remove 'isa-serial' device */ +#if 0 virCommandAddArg(cmd, "-device"); virCommandAddArgFormat(cmd, "isa-serial,chardev=char%s,id=%s", serial->info.alias, serial->info.alias); +#endif } else { virCommandAddArg(cmd, "-serial"); if (!(devstr = qemuBuildChrArgStr(&serial->source, NULL))) @@ -5089,6 +5114,8 @@ qemuBuildCommandLine(virConnectPtr conn, * NB: Earlier we declared that VirtIO balloon will always be in * slot 0x3 on bus 0x0 */ +/* Prerna Hack : Remove all virtio-balloon devices */ +#if 0 if ((def->memballoon) && (def->memballoon->model != VIR_DOMAIN_MEMBALLOON_MODEL_NONE)) { if (def->memballoon->model != VIR_DOMAIN_MEMBALLOON_MODEL_VIRTIO) { @@ -5110,6 +5137,7 @@ qemuBuildCommandLine(virConnectPtr conn, virCommandAddArgList(cmd, "-balloon", "virtio", NULL); } } +#endif if (snapshot) virCommandAddArgList(cmd, "-loadvm", snapshot->def->name, NULL); -- 1.7.0.4 -- Prerna Saxena Linux Technology Centre, IBM Systems and Technology Lab, Bangalore, India -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list