commit kvm for openSUSE:Factory
Hello community,
here is the log from the commit of package kvm for openSUSE:Factory
checked in at Mon Sep 28 18:25:22 CEST 2009.
--------
--- kvm/kvm.changes 2009-09-25 02:02:12.000000000 +0200
+++ kvm/kvm.changes 2009-09-28 17:59:29.000000000 +0200
@@ -1,0 +2,37 @@
+Mon Sep 28 15:51:58 UTC 2009 - brogers@novell.com
+
+- update to 0.11.0
+ Changes from the qemu-kvm-0.10 series:
+ - merge qemu 0.11.0
+ - qdev device model
+ - qemu-io
+ - i386: multiboot support for -kernel
+ - gdbstub: vCont support
+ - i386: control over boot menu
+ - i386: pc-0.10 compatibility machine type
+ - qcow2: use cache=writethrough by default
+ - i386: MCE emulation
+ - i386: host cpuid support
+ - slirp: host network config
+ - virtio: MSI-x support
+ - pci: allow devices to specify bus address
+ - migration: allow down time based threshold
+ - virtio-net: filtering support
+ - http block device support
+ - i386: expose numa topology to guests
+ - native preadv/pwritev support
+ - kvm: guest debugging support
+ - vnc: support for acls and gssapi
+ - monitor: allow multiple monitors
+ - device assignment: MSI-X support (Sheng Yang)
+ - device assignment: SR/IOV support (Sheng Yang)
+ - irqfd support (Gregory Haskins)
+ - drop libkvm, use some of the upstream kvm support (Glauber Costa)
+ - device assignment: option ROM support (Alex Williamson)
+ - x2apic support (Gleb Natapov)
+ - kvm/msi integration (Michael S. Tsirkin)
+ - hpet/kvm integration (Beth Kon)
+ - mce/kvm ingration (Huang Ying)
+- refresh patch series
+
+-------------------------------------------------------------------
calling whatdependson for head-i586
Old:
----
qemu-kvm-0.11.0-rc2.tar.bz2
New:
----
qemu-kvm-0.11.0.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ kvm.spec ++++++
--- /var/tmp/diff_new_pack.RERmLX/_old 2009-09-28 18:24:47.000000000 +0200
+++ /var/tmp/diff_new_pack.RERmLX/_new 2009-09-28 18:24:47.000000000 +0200
@@ -49,9 +49,8 @@
Summary: Kernel-based Virtual Machine
Url: http://www.linux-kvm.org
Version: 0.11.0
-Release: 2
-%define subversion -rc2
-Source0: qemu-%name-%{version}%{subversion}.tar.bz2
+Release: 3
+Source0: qemu-%name-%{version}.tar.bz2
ExclusiveArch: %ix86 x86_64 ia64
Source1: 60-kvm.rules
Source2: NETKVM-20081229.iso
@@ -122,7 +121,7 @@
%else
%define vanilla 1
%endif
-%setup -q -n qemu-%{name}-%{version}%{subversion}
+%setup -q -n qemu-%{name}-%{version}
%patch01 -p1
%patch02 -p1
%patch03 -p1
++++++ kvm-bios.patch ++++++
--- /var/tmp/diff_new_pack.RERmLX/_old 2009-09-28 18:24:48.000000000 +0200
+++ /var/tmp/diff_new_pack.RERmLX/_new 2009-09-28 18:24:48.000000000 +0200
@@ -4,11 +4,11 @@
- An PBLK which provides the size of the L2 and L3 caches
- If newer hardware like ICH6 IDE is found, init it
Signed-off-by: Alex Graf - http://alex.csgraf.de
-Index: kvm-86/kvm/bios-mac/acpi-dsdt.dsl
+Index: qemu-kvm-0.11.0/kvm/bios-mac/acpi-dsdt.dsl
===================================================================
---- kvm-86.orig/kvm/bios-mac/acpi-dsdt.dsl
-+++ kvm-86/kvm/bios-mac/acpi-dsdt.dsl
-@@ -152,6 +152,47 @@ DefinitionBlock (
+--- qemu-kvm-0.11.0.orig/kvm/bios-mac/acpi-dsdt.dsl
++++ qemu-kvm-0.11.0/kvm/bios-mac/acpi-dsdt.dsl
+@@ -38,6 +38,47 @@ DefinitionBlock (
/* PCI Bus definition */
Scope(\_SB) {
@@ -56,11 +56,11 @@
Device(PCI0) {
Name (_HID, EisaId ("PNP0A03"))
Name (_ADR, 0x00)
-Index: kvm-86/kvm/bios-mac/rombios32.c
+Index: qemu-kvm-0.11.0/kvm/bios-mac/rombios32.c
===================================================================
---- kvm-86.orig/kvm/bios-mac/rombios32.c
-+++ kvm-86/kvm/bios-mac/rombios32.c
-@@ -707,6 +707,9 @@ void smp_probe(void)
+--- qemu-kvm-0.11.0.orig/kvm/bios-mac/rombios32.c
++++ qemu-kvm-0.11.0/kvm/bios-mac/rombios32.c
+@@ -713,6 +713,9 @@ void smp_probe(void)
#define PCI_DEVICE_ID_INTEL_82371AB_0 0x7110
#define PCI_DEVICE_ID_INTEL_82371AB 0x7111
#define PCI_DEVICE_ID_INTEL_82371AB_3 0x7113
@@ -70,7 +70,7 @@
#define PCI_VENDOR_ID_IBM 0x1014
#define PCI_VENDOR_ID_APPLE 0x106b
-@@ -720,7 +723,9 @@ static uint32_t pci_bios_io_addr;
+@@ -726,7 +729,9 @@ static uint32_t pci_bios_io_addr;
static uint32_t pci_bios_mem_addr;
static uint32_t pci_bios_bigmem_addr;
/* host irqs corresponding to PCI irqs A-D */
@@ -81,7 +81,7 @@
static PCIDevice i440_pcidev;
static void pci_config_writel(PCIDevice *d, uint32_t addr, uint32_t val)
-@@ -851,7 +856,9 @@ static void pci_bios_init_bridges(PCIDev
+@@ -857,7 +862,9 @@ static void pci_bios_init_bridges(PCIDev
if (vendor_id == PCI_VENDOR_ID_INTEL &&
(device_id == PCI_DEVICE_ID_INTEL_82371SB_0 ||
@@ -92,7 +92,7 @@
int i, irq;
uint8_t elcr[2];
-@@ -951,8 +958,9 @@ static void pci_bios_init_device(PCIDevi
+@@ -957,8 +964,9 @@ static void pci_bios_init_device(PCIDevi
case 0x0101: /* Mass storage controller - IDE interface */
if (vendor_id == PCI_VENDOR_ID_INTEL &&
(device_id == PCI_DEVICE_ID_INTEL_82371SB_1 ||
@@ -104,7 +104,7 @@
pci_config_writew(d, 0x40, 0x8000); // enable IDE0
pci_config_writew(d, 0x42, 0x8000); // enable IDE1
goto default_map;
-@@ -1057,6 +1065,13 @@ void pci_for_each_device(void (*init_fun
+@@ -1063,6 +1071,13 @@ void pci_for_each_device(void (*init_fun
}
}
}
++++++ kvm-no-pp-directives-in-macros.patch ++++++
--- /var/tmp/diff_new_pack.RERmLX/_old 2009-09-28 18:24:48.000000000 +0200
+++ /var/tmp/diff_new_pack.RERmLX/_new 2009-09-28 18:24:48.000000000 +0200
@@ -1,5 +1,7 @@
---- a/qemu-img.c
-+++ b/qemu-img.c
+Index: qemu-kvm-0.11.0/qemu-img.c
+===================================================================
+--- qemu-kvm-0.11.0.orig/qemu-img.c
++++ qemu-kvm-0.11.0/qemu-img.c
@@ -58,7 +58,7 @@ static void format_print(void *opaque, c
/* Please keep in synch with qemu-img.texi */
static void help(void)
@@ -9,9 +11,11 @@
"usage: qemu-img command [command options]\n"
"QEMU disk image utility\n"
"\n"
---- a/vl.c
-+++ b/vl.c
-@@ -4604,7 +4604,7 @@ static void version(void)
+Index: qemu-kvm-0.11.0/vl.c
+===================================================================
+--- qemu-kvm-0.11.0.orig/vl.c
++++ qemu-kvm-0.11.0/vl.c
+@@ -4447,7 +4447,7 @@ static void version(void)
static void help(int exitcode)
{
version();
++++++ kvm-qemu-applesmc.patch ++++++
--- /var/tmp/diff_new_pack.RERmLX/_old 2009-09-28 18:24:48.000000000 +0200
+++ /var/tmp/diff_new_pack.RERmLX/_new 2009-09-28 18:24:48.000000000 +0200
@@ -1,8 +1,8 @@
#qemu-only -> submit upstream qemu
-Index: qemu-kvm-0.11.0-rc1/Makefile.target
+Index: qemu-kvm-0.11.0/Makefile.target
===================================================================
---- qemu-kvm-0.11.0-rc1.orig/Makefile.target
-+++ qemu-kvm-0.11.0-rc1/Makefile.target
+--- qemu-kvm-0.11.0.orig/Makefile.target
++++ qemu-kvm-0.11.0/Makefile.target
@@ -529,7 +529,7 @@ obj-y += wdt_ib700.o wdt_i6300esb.o
obj-i386-y = ide.o pckbd.o vga.o $(sound-obj-y) dma.o
obj-i386-y += fdc.o mc146818rtc.o serial.o i8259.o i8254.o pcspk.o pc.o
@@ -12,10 +12,10 @@
obj-i386-y += device-hotplug.o pci-hotplug.o smbios.o
obj-i386-y += extboot.o
ifeq ($(USE_KVM_PIT), 1)
-Index: qemu-kvm-0.11.0-rc1/hw/applesmc.c
+Index: qemu-kvm-0.11.0/hw/applesmc.c
===================================================================
--- /dev/null
-+++ qemu-kvm-0.11.0-rc1/hw/applesmc.c
++++ qemu-kvm-0.11.0/hw/applesmc.c
@@ -0,0 +1,171 @@
+/*
+ * Apple SMC controller
@@ -188,10 +188,10 @@
+ register_ioport_write(APPLESMC_CMD_PORT, 4, 1, applesmc_io_cmd_writeb, s);
+}
+
-Index: qemu-kvm-0.11.0-rc1/hw/pc.h
+Index: qemu-kvm-0.11.0/hw/pc.h
===================================================================
---- qemu-kvm-0.11.0-rc1.orig/hw/pc.h
-+++ qemu-kvm-0.11.0-rc1/hw/pc.h
+--- qemu-kvm-0.11.0.orig/hw/pc.h
++++ qemu-kvm-0.11.0/hw/pc.h
@@ -179,6 +179,10 @@ void pci_piix4_ide_init(PCIBus *bus, Blo
void isa_ne2000_init(int base, qemu_irq irq, NICInfo *nd);
@@ -203,11 +203,11 @@
/* lpc.c */
void lpc_init(PCIBus *bus, int devfn, qemu_irq *pic);
-Index: qemu-kvm-0.11.0-rc1/vl.c
+Index: qemu-kvm-0.11.0/vl.c
===================================================================
---- qemu-kvm-0.11.0-rc1.orig/vl.c
-+++ qemu-kvm-0.11.0-rc1/vl.c
-@@ -5251,6 +5251,9 @@ int main(int argc, char **argv, char **e
+--- qemu-kvm-0.11.0.orig/vl.c
++++ qemu-kvm-0.11.0/vl.c
+@@ -5245,6 +5245,9 @@ int main(int argc, char **argv, char **e
case QEMU_OPTION_no_fd_bootchk:
fd_bootchk = 0;
break;
@@ -217,10 +217,10 @@
#endif
case QEMU_OPTION_net:
if (nb_net_clients >= MAX_NET_CLIENTS) {
-Index: qemu-kvm-0.11.0-rc1/qemu-options.hx
+Index: qemu-kvm-0.11.0/qemu-options.hx
===================================================================
---- qemu-kvm-0.11.0-rc1.orig/qemu-options.hx
-+++ qemu-kvm-0.11.0-rc1/qemu-options.hx
+--- qemu-kvm-0.11.0.orig/qemu-options.hx
++++ qemu-kvm-0.11.0/qemu-options.hx
@@ -684,6 +684,15 @@ be needed to boot from old floppy disks.
ETEXI
++++++ kvm-qemu-default-memsize.patch ++++++
--- /var/tmp/diff_new_pack.RERmLX/_old 2009-09-28 18:24:48.000000000 +0200
+++ /var/tmp/diff_new_pack.RERmLX/_new 2009-09-28 18:24:48.000000000 +0200
@@ -1,10 +1,10 @@
-Index: kvm-88/vl.c
+Index: qemu-kvm-0.11.0/vl.c
===================================================================
---- kvm-88.orig/vl.c
-+++ kvm-88/vl.c
-@@ -181,7 +181,7 @@ int main(int argc, char **argv)
- # define LOG_IOPORT(...) do { } while (0)
- #endif
+--- qemu-kvm-0.11.0.orig/vl.c
++++ qemu-kvm-0.11.0/vl.c
+@@ -175,7 +175,7 @@ int main(int argc, char **argv)
+ //#define DEBUG_NET
+ //#define DEBUG_SLIRP
-#define DEFAULT_RAM_SIZE 128
+#define DEFAULT_RAM_SIZE 384
++++++ kvm-qemu-ide-ich6.patch ++++++
--- /var/tmp/diff_new_pack.RERmLX/_old 2009-09-28 18:24:48.000000000 +0200
+++ /var/tmp/diff_new_pack.RERmLX/_new 2009-09-28 18:24:48.000000000 +0200
@@ -1,10 +1,10 @@
#qemu-only -> submit upstream qemu
-Index: qemu-kvm-0.11.0-rc1/hw/ide.c
+Index: qemu-kvm-0.11.0/hw/ide.c
===================================================================
---- qemu-kvm-0.11.0-rc1.orig/hw/ide.c
-+++ qemu-kvm-0.11.0-rc1/hw/ide.c
-@@ -473,6 +473,7 @@ static inline int media_is_cd(IDEState *
+--- qemu-kvm-0.11.0.orig/hw/ide.c
++++ qemu-kvm-0.11.0/hw/ide.c
+@@ -474,6 +474,7 @@ static inline int media_is_cd(IDEState *
#define IDE_TYPE_PIIX3 0
#define IDE_TYPE_CMD646 1
#define IDE_TYPE_PIIX4 2
@@ -12,7 +12,7 @@
/* CMD646 specific */
#define MRDMODE 0x71
-@@ -3385,6 +3386,57 @@ void pci_piix3_ide_init(PCIBus *bus, Blo
+@@ -3411,6 +3412,57 @@ void pci_piix3_ide_init(PCIBus *bus, Blo
qemu_register_reset(piix3_reset, d);
piix3_reset(d);
@@ -70,10 +70,10 @@
pci_register_bar((PCIDevice *)d, 4, 0x10,
PCI_ADDRESS_SPACE_IO, bmdma_map);
-Index: qemu-kvm-0.11.0-rc1/hw/irq.c
+Index: qemu-kvm-0.11.0/hw/irq.c
===================================================================
---- qemu-kvm-0.11.0-rc1.orig/hw/irq.c
-+++ qemu-kvm-0.11.0-rc1/hw/irq.c
+--- qemu-kvm-0.11.0.orig/hw/irq.c
++++ qemu-kvm-0.11.0/hw/irq.c
@@ -35,6 +35,7 @@ void qemu_set_irq(qemu_irq irq, int leve
if (!irq)
return;
@@ -82,10 +82,10 @@
irq->handler(irq->opaque, irq->n, level);
}
-Index: qemu-kvm-0.11.0-rc1/hw/pc.h
+Index: qemu-kvm-0.11.0/hw/pc.h
===================================================================
---- qemu-kvm-0.11.0-rc1.orig/hw/pc.h
-+++ qemu-kvm-0.11.0-rc1/hw/pc.h
+--- qemu-kvm-0.11.0.orig/hw/pc.h
++++ qemu-kvm-0.11.0/hw/pc.h
@@ -174,6 +174,8 @@ void pci_piix3_ide_init(PCIBus *bus, Blo
qemu_irq *pic);
void pci_piix4_ide_init(PCIBus *bus, BlockDriverState **hd_table, int devfn,
++++++ kvm-qemu-macmodel.patch ++++++
--- /var/tmp/diff_new_pack.RERmLX/_old 2009-09-28 18:24:48.000000000 +0200
+++ /var/tmp/diff_new_pack.RERmLX/_new 2009-09-28 18:24:48.000000000 +0200
@@ -7,10 +7,10 @@
# pc_init1(.... , PCI | IOAPIC | PIIX, .....
# pc_init1(.... , PCI | ICH6, LPC, SMC , ...)
-Index: qemu-kvm-0.11.0-rc2/hw/pc.c
+Index: qemu-kvm-0.11.0/hw/pc.c
===================================================================
---- qemu-kvm-0.11.0-rc2.orig/hw/pc.c
-+++ qemu-kvm-0.11.0-rc2/hw/pc.c
+--- qemu-kvm-0.11.0.orig/hw/pc.c
++++ qemu-kvm-0.11.0/hw/pc.c
@@ -92,6 +92,12 @@ static void option_rom_setup_reset(targe
qemu_register_reset(option_rom_reset, rrd);
}
@@ -277,11 +277,11 @@
}
machine_init(pc_machine_init);
-Index: qemu-kvm-0.11.0-rc2/vl.c
+Index: qemu-kvm-0.11.0/vl.c
===================================================================
---- qemu-kvm-0.11.0-rc2.orig/vl.c
-+++ qemu-kvm-0.11.0-rc2/vl.c
-@@ -6008,6 +6008,10 @@ int main(int argc, char **argv, char **e
+--- qemu-kvm-0.11.0.orig/vl.c
++++ qemu-kvm-0.11.0/vl.c
+@@ -5837,6 +5837,10 @@ int main(int argc, char **argv, char **e
if (kvm_enabled()) {
int ret;
++++++ kvm-qemu-no-fallback-if-open-kvm-fails.patch ++++++
--- /var/tmp/diff_new_pack.RERmLX/_old 2009-09-28 18:24:48.000000000 +0200
+++ /var/tmp/diff_new_pack.RERmLX/_new 2009-09-28 18:24:48.000000000 +0200
@@ -1,13 +1,13 @@
-Index: qemu-kvm-0.11.0-rc1/vl.c
+Index: qemu-kvm-0.11.0/vl.c
===================================================================
---- qemu-kvm-0.11.0-rc1.orig/vl.c
-+++ qemu-kvm-0.11.0-rc1/vl.c
-@@ -6017,6 +6017,8 @@ int main(int argc, char **argv, char **e
+--- qemu-kvm-0.11.0.orig/vl.c
++++ qemu-kvm-0.11.0/vl.c
+@@ -5840,6 +5840,8 @@ int main(int argc, char **argv, char **e
fprintf(stderr, "failed to initialize KVM\n");
exit(1);
#endif
+ fprintf(stderr, "Could not initialize KVM. Do you have kvm-amd or kvm-intel modprobe'd?\nIf you want to use CPU emulation, start with -no-kvm.\n");
+ exit(1);
fprintf(stderr, "Could not initialize KVM, will disable KVM support\n");
- kvm_allowed = 0;
+ kvm_allowed = 0;
}
++++++ kvm-qemu-preXX-dictzip1.patch ++++++
--- /var/tmp/diff_new_pack.RERmLX/_old 2009-09-28 18:24:48.000000000 +0200
+++ /var/tmp/diff_new_pack.RERmLX/_new 2009-09-28 18:24:48.000000000 +0200
@@ -24,11 +24,11 @@
2 files changed, 502 insertions(+), 1 deletions(-)
create mode 100644 block/dictzip.c
-Index: qemu-kvm-0.11.0-rc1/Makefile
+Index: qemu-kvm-0.11.0/Makefile
===================================================================
---- qemu-kvm-0.11.0-rc1.orig/Makefile
-+++ qemu-kvm-0.11.0-rc1/Makefile
-@@ -79,7 +79,7 @@ block-obj-y += nbd.o block.o aio.o aes.o
+--- qemu-kvm-0.11.0.orig/Makefile
++++ qemu-kvm-0.11.0/Makefile
+@@ -86,7 +86,7 @@ block-obj-y += nbd.o block.o aio.o aes.o
block-nested-y += cow.o qcow.o vmdk.o cloop.o dmg.o bochs.o vpc.o vvfat.o
block-nested-y += qcow2.o qcow2-refcount.o qcow2-cluster.o qcow2-snapshot.o
@@ -37,10 +37,10 @@
ifdef CONFIG_WIN32
-Index: qemu-kvm-0.11.0-rc1/block/dictzip.c
+Index: qemu-kvm-0.11.0/block/dictzip.c
===================================================================
--- /dev/null
-+++ qemu-kvm-0.11.0-rc1/block/dictzip.c
++++ qemu-kvm-0.11.0/block/dictzip.c
@@ -0,0 +1,567 @@
+/*
+ * DictZip Block driver for dictzip enabled gzip files
++++++ kvm-qemu-preXX-dictzip2.patch ++++++
--- /var/tmp/diff_new_pack.RERmLX/_old 2009-09-28 18:24:48.000000000 +0200
+++ /var/tmp/diff_new_pack.RERmLX/_new 2009-09-28 18:24:48.000000000 +0200
@@ -25,11 +25,11 @@
2 files changed, 334 insertions(+), 1 deletions(-)
create mode 100644 block/tar.c
-Index: qemu-kvm-0.11.0-rc1/Makefile
+Index: qemu-kvm-0.11.0/Makefile
===================================================================
---- qemu-kvm-0.11.0-rc1.orig/Makefile
-+++ qemu-kvm-0.11.0-rc1/Makefile
-@@ -79,7 +79,7 @@ block-obj-y += nbd.o block.o aio.o aes.o
+--- qemu-kvm-0.11.0.orig/Makefile
++++ qemu-kvm-0.11.0/Makefile
+@@ -86,7 +86,7 @@ block-obj-y += nbd.o block.o aio.o aes.o
block-nested-y += cow.o qcow.o vmdk.o cloop.o dmg.o bochs.o vpc.o vvfat.o
block-nested-y += qcow2.o qcow2-refcount.o qcow2-cluster.o qcow2-snapshot.o
@@ -38,10 +38,10 @@
ifdef CONFIG_WIN32
-Index: qemu-kvm-0.11.0-rc1/block/tar.c
+Index: qemu-kvm-0.11.0/block/tar.c
===================================================================
--- /dev/null
-+++ qemu-kvm-0.11.0-rc1/block/tar.c
++++ qemu-kvm-0.11.0/block/tar.c
@@ -0,0 +1,338 @@
+/*
+ * Tar block driver
++++++ kvm-qemu-preXX-dictzip3.patch ++++++
--- /var/tmp/diff_new_pack.RERmLX/_old 2009-09-28 18:24:48.000000000 +0200
+++ /var/tmp/diff_new_pack.RERmLX/_new 2009-09-28 18:24:48.000000000 +0200
@@ -7,11 +7,11 @@
block.c | 4 ++--
1 files changed, 2 insertions(+), 2 deletions(-)
-Index: qemu-kvm-0.10.5/block.c
+Index: qemu-kvm-0.11.0/block.c
===================================================================
---- qemu-kvm-0.10.5.orig/block.c
-+++ qemu-kvm-0.10.5/block.c
-@@ -357,11 +357,11 @@ int bdrv_open2(BlockDriverState *bs, con
+--- qemu-kvm-0.11.0.orig/block.c
++++ qemu-kvm-0.11.0/block.c
+@@ -358,11 +358,11 @@ int bdrv_open2(BlockDriverState *bs, con
return ret;
}
total_size = bdrv_getlength(bs1) >> SECTOR_BITS;
++++++ kvm-qemu-preXX-dirty-bitmap-alloc.patch ++++++
--- /var/tmp/diff_new_pack.RERmLX/_old 2009-09-28 18:24:48.000000000 +0200
+++ /var/tmp/diff_new_pack.RERmLX/_new 2009-09-28 18:24:48.000000000 +0200
@@ -1,7 +1,7 @@
-Index: qemu-kvm-0.11.0-rc2/qemu-kvm.c
+Index: qemu-kvm-0.11.0/qemu-kvm.c
===================================================================
---- qemu-kvm-0.11.0-rc2.orig/qemu-kvm.c
-+++ qemu-kvm-0.11.0-rc2/qemu-kvm.c
+--- qemu-kvm-0.11.0.orig/qemu-kvm.c
++++ qemu-kvm-0.11.0/qemu-kvm.c
@@ -692,7 +692,7 @@ int kvm_get_dirty_pages_range(kvm_contex
for (i = 0; i < KVM_MAX_NUM_MEM_REGIONS; ++i) {
if ((slots[i].len && (uint64_t)slots[i].phys_addr >= phys_addr)
++++++ kvm-qemu-rtl8139-link.patch ++++++
--- /var/tmp/diff_new_pack.RERmLX/_old 2009-09-28 18:24:48.000000000 +0200
+++ /var/tmp/diff_new_pack.RERmLX/_new 2009-09-28 18:24:48.000000000 +0200
@@ -1,10 +1,10 @@
# Fix the Link detection in MacOS
# Author Alex Graf - agraf@suse
-Index: qemu-kvm-0.11.0-rc1/hw/rtl8139.c
+Index: qemu-kvm-0.11.0/hw/rtl8139.c
===================================================================
---- qemu-kvm-0.11.0-rc1.orig/hw/rtl8139.c
-+++ qemu-kvm-0.11.0-rc1/hw/rtl8139.c
+--- qemu-kvm-0.11.0.orig/hw/rtl8139.c
++++ qemu-kvm-0.11.0/hw/rtl8139.c
@@ -422,6 +422,9 @@ static void RTL8139TallyCounters_load(QE
/* Saves values of tally counters to VM state file */
static void RTL8139TallyCounters_save(QEMUFile* f, RTL8139TallyCounters *tally_counters);
@@ -71,11 +71,11 @@
rtl8139_reset(s);
s->vc = qdev_get_vlan_client(&dev->qdev,
rtl8139_can_receive, rtl8139_receive, NULL,
-Index: qemu-kvm-0.11.0-rc1/net.h
+Index: qemu-kvm-0.11.0/net.h
===================================================================
---- qemu-kvm-0.11.0-rc1.orig/net.h
-+++ qemu-kvm-0.11.0-rc1/net.h
-@@ -98,6 +98,13 @@ enum {
+--- qemu-kvm-0.11.0.orig/net.h
++++ qemu-kvm-0.11.0/net.h
+@@ -99,6 +99,13 @@ enum {
NIC_NVECTORS_UNSPECIFIED = -1
};
@@ -89,7 +89,7 @@
struct NICInfo {
uint8_t macaddr[6];
const char *model;
-@@ -108,6 +115,7 @@ struct NICInfo {
+@@ -109,6 +116,7 @@ struct NICInfo {
VLANClientState *vc;
void *private;
int used;
@@ -97,11 +97,11 @@
int bootable;
int nvectors;
};
-Index: qemu-kvm-0.11.0-rc1/net.c
+Index: qemu-kvm-0.11.0/net.c
===================================================================
---- qemu-kvm-0.11.0-rc1.orig/net.c
-+++ qemu-kvm-0.11.0-rc1/net.c
-@@ -2670,6 +2670,7 @@ int net_client_init(Monitor *mon, const
+--- qemu-kvm-0.11.0.orig/net.c
++++ qemu-kvm-0.11.0/net.c
+@@ -2671,6 +2671,7 @@ int net_client_init(Monitor *mon, const
}
nd->vlan = vlan;
nd->name = name;
@@ -109,11 +109,11 @@
nd->used = 1;
name = NULL;
nb_nics++;
-Index: qemu-kvm-0.11.0-rc1/hw/pc.c
+Index: qemu-kvm-0.11.0/hw/pc.c
===================================================================
---- qemu-kvm-0.11.0-rc1.orig/hw/pc.c
-+++ qemu-kvm-0.11.0-rc1/hw/pc.c
-@@ -1389,7 +1389,10 @@ static void pc_init1(ram_addr_t ram_size
+--- qemu-kvm-0.11.0.orig/hw/pc.c
++++ qemu-kvm-0.11.0/hw/pc.c
+@@ -1382,7 +1382,10 @@ static void pc_init1(ram_addr_t ram_size
if (model == MODEL_ISA || (nd->model && strcmp(nd->model, "ne2k_isa") == 0))
pc_init_ne2k_isa(nd, i8259);
++++++ qemu-kvm-0.11.0-rc2.tar.bz2 -> qemu-kvm-0.11.0.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/qemu-kvm-0.11.0-rc2/Changelog new/qemu-kvm-0.11.0/Changelog
--- old/qemu-kvm-0.11.0-rc2/Changelog 2009-08-30 11:10:59.000000000 +0200
+++ new/qemu-kvm-0.11.0/Changelog 2009-09-23 09:30:02.000000000 +0200
@@ -1,3 +1,14 @@
+version 0.11.0
+ - fix rtc polling mode (Bernhard Kauer)
+ - qcow2: order concurrent aio requests (Kevin Wolf)
+ - qemu-io: port to win32 (Stefan Weil)
+ - alpha: fix extlh instruction (Vince Weaver)
+ - tcg: fix size of local variables in tcg_gen_bswap64_i64 (Stefan Weil)
+ - net: fix send ordering (Jan Kiszka)
+ - escc: fix IRQ routing (Aurelien Jarno)
+ - versatile: fix Linux task preemption (Aurelien Jarno)
+ - curses: reduce memory usage by 250MB (Aurelien Jarno)
+
version 0.11.0-rc2
- mips: fix conditional move off fp conditions codes (Nath Froyd)
- fix migration to obey -S (Paolo Bonzini)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/qemu-kvm-0.11.0-rc2/KVM_VERSION new/qemu-kvm-0.11.0/KVM_VERSION
--- old/qemu-kvm-0.11.0-rc2/KVM_VERSION 2009-09-07 14:52:18.000000000 +0200
+++ new/qemu-kvm-0.11.0/KVM_VERSION 2009-09-27 08:51:17.000000000 +0200
@@ -1 +1 @@
-qemu-kvm-0.11.0-rc2
+qemu-kvm-0.11.0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/qemu-kvm-0.11.0-rc2/Makefile new/qemu-kvm-0.11.0/Makefile
--- old/qemu-kvm-0.11.0-rc2/Makefile 2009-08-30 11:10:59.000000000 +0200
+++ new/qemu-kvm-0.11.0/Makefile 2009-09-23 09:30:02.000000000 +0200
@@ -305,8 +305,8 @@
if [ -f $(SRC_PATH)/pc-bios/$$x ];then \
$(INSTALL_DATA) $(SRC_PATH)/pc-bios/$$x "$(DESTDIR)$(datadir)"; \
fi \
- ; if [ -f $(SRC_PATH)/pc-bios/optionrom/$$x ];then \
- $(INSTALL_DATA) $(SRC_PATH)/pc-bios/optionrom/$$x "$(DESTDIR)$(datadir)"; \
+ ; if [ -f pc-bios/optionrom/$$x ];then \
+ $(INSTALL_DATA) pc-bios/optionrom/$$x "$(DESTDIR)$(datadir)"; \
fi \
done
endif
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/qemu-kvm-0.11.0-rc2/VERSION new/qemu-kvm-0.11.0/VERSION
--- old/qemu-kvm-0.11.0-rc2/VERSION 2009-08-30 11:10:59.000000000 +0200
+++ new/qemu-kvm-0.11.0/VERSION 2009-09-23 09:30:02.000000000 +0200
@@ -1 +1 @@
-0.10.92
+0.11.0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/qemu-kvm-0.11.0-rc2/block/qcow2-cluster.c new/qemu-kvm-0.11.0/block/qcow2-cluster.c
--- old/qemu-kvm-0.11.0-rc2/block/qcow2-cluster.c 2009-08-30 11:10:59.000000000 +0200
+++ new/qemu-kvm-0.11.0/block/qcow2-cluster.c 2009-09-23 09:30:02.000000000 +0200
@@ -684,6 +684,7 @@
int l2_index, ret;
uint64_t l2_offset, *l2_table, cluster_offset;
int nb_clusters, i = 0;
+ QCowL2Meta *old_alloc;
ret = get_cluster_table(bs, offset, &l2_table, &l2_offset, &l2_index);
if (ret == 0)
@@ -732,6 +733,44 @@
}
nb_clusters = i;
+ /*
+ * Check if there already is an AIO write request in flight which allocates
+ * the same cluster. In this case we need to wait until the previous
+ * request has completed and updated the L2 table accordingly.
+ */
+ LIST_FOREACH(old_alloc, &s->cluster_allocs, next_in_flight) {
+
+ uint64_t end_offset = offset + nb_clusters * s->cluster_size;
+ uint64_t old_offset = old_alloc->offset;
+ uint64_t old_end_offset = old_alloc->offset +
+ old_alloc->nb_clusters * s->cluster_size;
+
+ if (end_offset < old_offset || offset > old_end_offset) {
+ /* No intersection */
+ } else {
+ if (offset < old_offset) {
+ /* Stop at the start of a running allocation */
+ nb_clusters = (old_offset - offset) >> s->cluster_bits;
+ } else {
+ nb_clusters = 0;
+ }
+
+ if (nb_clusters == 0) {
+ /* Set dependency and wait for a callback */
+ m->depends_on = old_alloc;
+ m->nb_clusters = 0;
+ *num = 0;
+ return 0;
+ }
+ }
+ }
+
+ if (!nb_clusters) {
+ abort();
+ }
+
+ LIST_INSERT_HEAD(&s->cluster_allocs, m, next_in_flight);
+
/* allocate a new cluster */
cluster_offset = qcow2_alloc_clusters(bs, nb_clusters * s->cluster_size);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/qemu-kvm-0.11.0-rc2/block/qcow2.c new/qemu-kvm-0.11.0/block/qcow2.c
--- old/qemu-kvm-0.11.0-rc2/block/qcow2.c 2009-08-30 11:10:59.000000000 +0200
+++ new/qemu-kvm-0.11.0/block/qcow2.c 2009-09-23 09:30:02.000000000 +0200
@@ -219,6 +219,8 @@
if (qcow2_refcount_init(bs) < 0)
goto fail;
+ LIST_INIT(&s->cluster_allocs);
+
/* read qcow2 extensions */
if (header.backing_file_offset)
ext_end = header.backing_file_offset;
@@ -338,6 +340,7 @@
QEMUIOVector hd_qiov;
QEMUBH *bh;
QCowL2Meta l2meta;
+ LIST_ENTRY(QCowAIOCB) next_depend;
} QCowAIOCB;
static void qcow_aio_cancel(BlockDriverAIOCB *blockacb)
@@ -500,6 +503,7 @@
acb->n = 0;
acb->cluster_offset = 0;
acb->l2meta.nb_clusters = 0;
+ LIST_INIT(&acb->l2meta.dependent_requests);
return acb;
}
@@ -517,6 +521,33 @@
return &acb->common;
}
+static void qcow_aio_write_cb(void *opaque, int ret);
+
+static void run_dependent_requests(QCowL2Meta *m)
+{
+ QCowAIOCB *req;
+ QCowAIOCB *next;
+
+ /* Take the request off the list of running requests */
+ if (m->nb_clusters != 0) {
+ LIST_REMOVE(m, next_in_flight);
+ }
+
+ /*
+ * Restart all dependent requests.
+ * Can't use LIST_FOREACH here - the next link might not be the same
+ * any more after the callback (request could depend on a different
+ * request now)
+ */
+ for (req = m->dependent_requests.lh_first; req != NULL; req = next) {
+ next = req->next_depend.le_next;
+ qcow_aio_write_cb(req, 0);
+ }
+
+ /* Empty the list for the next part of the request */
+ LIST_INIT(&m->dependent_requests);
+}
+
static void qcow_aio_write_cb(void *opaque, int ret)
{
QCowAIOCB *acb = opaque;
@@ -528,14 +559,15 @@
acb->hd_aiocb = NULL;
+ if (ret >= 0) {
+ ret = qcow2_alloc_cluster_link_l2(bs, acb->cluster_offset, &acb->l2meta);
+ }
+
+ run_dependent_requests(&acb->l2meta);
+
if (ret < 0)
goto done;
- if (qcow2_alloc_cluster_link_l2(bs, acb->cluster_offset, &acb->l2meta) < 0) {
- qcow2_free_any_clusters(bs, acb->cluster_offset, acb->l2meta.nb_clusters);
- goto done;
- }
-
acb->nb_sectors -= acb->n;
acb->sector_num += acb->n;
acb->buf += acb->n * 512;
@@ -555,6 +587,14 @@
acb->cluster_offset = qcow2_alloc_cluster_offset(bs, acb->sector_num << 9,
index_in_cluster,
n_end, &acb->n, &acb->l2meta);
+
+ /* Need to wait for another request? If so, we are done for now. */
+ if (!acb->cluster_offset && acb->l2meta.depends_on != NULL) {
+ LIST_INSERT_HEAD(&acb->l2meta.depends_on->dependent_requests,
+ acb, next_depend);
+ return;
+ }
+
if (!acb->cluster_offset || (acb->cluster_offset & 511) != 0) {
ret = -EIO;
goto done;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/qemu-kvm-0.11.0-rc2/block/qcow2.h new/qemu-kvm-0.11.0/block/qcow2.h
--- old/qemu-kvm-0.11.0-rc2/block/qcow2.h 2009-08-30 11:10:59.000000000 +0200
+++ new/qemu-kvm-0.11.0/block/qcow2.h 2009-09-23 09:30:02.000000000 +0200
@@ -98,6 +98,7 @@
uint8_t *cluster_cache;
uint8_t *cluster_data;
uint64_t cluster_cache_offset;
+ LIST_HEAD(QCowClusterAlloc, QCowL2Meta) cluster_allocs;
uint64_t *refcount_table;
uint64_t refcount_table_offset;
@@ -128,6 +129,8 @@
int64_t refcount_block_offset;
} QCowCreateState;
+struct QCowAIOCB;
+
/* XXX This could be private for qcow2-cluster.c */
typedef struct QCowL2Meta
{
@@ -135,6 +138,10 @@
int n_start;
int nb_available;
int nb_clusters;
+ struct QCowL2Meta *depends_on;
+ LIST_HEAD(QCowAioDependencies, QCowAIOCB) dependent_requests;
+
+ LIST_ENTRY(QCowL2Meta) next_in_flight;
} QCowL2Meta;
static inline int size_to_clusters(BDRVQcowState *s, int64_t size)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/qemu-kvm-0.11.0-rc2/cmd.c new/qemu-kvm-0.11.0/cmd.c
--- old/qemu-kvm-0.11.0-rc2/cmd.c 2009-08-30 11:10:59.000000000 +0200
+++ new/qemu-kvm-0.11.0/cmd.c 2009-09-23 09:30:02.000000000 +0200
@@ -20,6 +20,7 @@
#include
participants (1)
-
root@Hilbert.suse.de