qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-devel] [PULL v2 00/62] KVM, dirty bitmap, build system, SMM, icoun


From: Paolo Bonzini
Subject: [Qemu-devel] [PULL v2 00/62] KVM, dirty bitmap, build system, SMM, icount changes for 2015-06-05
Date: Fri, 5 Jun 2015 17:56:14 +0200

The following changes since commit 00967f4e0bab246679d0ddc32fd31a7179345baf:

  Merge remote-tracking branch 'remotes/agraf/tags/signed-s390-for-upstream' 
into staging (2015-06-05 12:04:42 +0100)

are available in the git repository at:

  git://github.com/bonzini/qemu.git tags/for-upstream

for you to fetch changes up to 7452a3b21318902ffe725cc75e68dc3d0716070f:

  update Linux headers from kvm/next (2015-06-05 17:10:02 +0200)

Apologies for the very large pull request, mostly due to the two main
topics (dirty bitmap + SMM) being reviewed more or less at the same time.

Diff to v1 below; Peter, it's a small ARM change so you can take a look.

----------------------------------------------------------------
* KVM error improvement from Laurent
* CONFIG_PARALLEL fix from Mirek
* Atomic/optimized dirty bitmap access from myself and Stefan
* BUILD_DIR convenience/bugfix from Peter C
* Memory leak fix from Shannon
* SMM improvements (though still TCG only) from myself and Gerd, acked by mst

----------------------------------------------------------------
Fam Zheng (1):
      qemu-nbd: Switch to qemu_set_fd_handler

Gerd Hoffmann (6):
      q35: fix ESMRAMC default
      q35: add config space wmask for SMRAM and ESMRAMC
      q35: implement SMRAM.D_LCK
      q35: add test for SMRAM.D_LCK
      q35: implement TSEG
      ich9: implement SMI_LOCK

Laurent Vivier (1):
      ppc: add helpful message when KVM fails to start VCPU

Miroslav Rezanina (1):
      Move parallel_hds_isa_init to hw/isa/isa-bus.c

Paolo Bonzini (43):
      exec: optimize phys_page_set_level
      memory: the only dirty memory flag for users is DIRTY_MEMORY_VGA
      g364fb: remove pointless call to memory_region_set_coalescing
      display: enable DIRTY_MEMORY_VGA tracking explicitly
      display: add memory_region_sync_dirty_bitmap calls
      memory: differentiate memory_region_is_logging and 
memory_region_get_dirty_log_mask
      memory: prepare for multiple bits in the dirty log mask
      framebuffer: check memory_region_is_logging
      ui/console: remove dpy_gfx_update_dirty
      memory: track DIRTY_MEMORY_CODE in mr->dirty_log_mask
      kvm: accept non-mapped memory in kvm_dirty_pages_log_change
      memory: include DIRTY_MEMORY_MIGRATION in the dirty log mask
      kvm: remove special handling of DIRTY_MEMORY_MIGRATION in the dirty log 
mask
      ram_addr: tweaks to xen_modified_memory
      exec: use memory_region_get_dirty_log_mask to optimize dirty tracking
      exec: move functions to translate-all.h
      translate-all: remove unnecessary argument to tb_invalidate_phys_range
      cputlb: remove useless arguments to tlb_unprotect_code_phys, rename
      translate-all: make less of tb_invalidate_phys_page_range depend on 
is_cpu_write_access
      exec: pass client mask to cpu_physical_memory_set_dirty_range
      exec: invert return value of cpu_physical_memory_get_clean, rename
      exec: only check relevant bitmaps for cleanliness
      memory: do not touch code dirty bitmap unless TCG is enabled
      memory: use mr->ram_addr in "is this RAM?" assertions
      target-i386: introduce cpu_get_mem_attrs
      target-i386: Use correct memory attributes for memory accesses
      target-i386: Use correct memory attributes for ioport accesses
      target-i386: mask NMIs on entry to SMM
      target-i386: set G=1 in SMM big real mode selectors
      target-i386: wake up processors that receive an SMI
      pflash_cfi01: change big-endian property to BIT type
      pflash_cfi01: change to new-style MMIO accessors
      pflash_cfi01: add secure property
      vl: allow full-blown QemuOpts syntax for -global
      qom: add object_property_add_const_link
      vl: run "late" notifiers immediately
      target-i386: create a separate AddressSpace for each CPU
      hw/i386: add a separate region that tracks the SMRAME bit
      target-i386: use memory API to implement SMRAM
      hw/i386: remove smram_update
      q35: implement high SMRAM
      atomics: add explicit compiler fence in __atomic memory barriers
      update Linux headers from kvm/next

Peter Crosthwaite (1):
      Makefile.target: set master BUILD_DIR

Stefan Hajnoczi (6):
      bitmap: add atomic set functions
      bitmap: add atomic test and clear
      memory: use atomic ops for setting dirty memory bits
      migration: move dirty bitmap sync to ram_addr.h
      memory: replace cpu_physical_memory_reset_dirty() with test-and-clear
      memory: make cpu_physical_memory_sync_dirty_bitmap() fully atomic

Victor CLEMENT (3):
      icount: implement a new icount_sleep mode toggleing real-time cpu sleep
      icount: add sleep parameter to the icount option to set icount_sleep mode
      icount: print a warning if there is no more deadline in sleep=no mode

 Makefile.target                              |   2 +
 arch_init.c                                  |  46 +---
 bsd-user/main.c                              |   4 -
 cpus.c                                       |  84 ++++---
 cputlb.c                                     |   7 +-
 exec.c                                       | 123 +++++-----
 hw/acpi/ich9.c                               |   4 +-
 hw/arm/vexpress.c                            |   2 +
 hw/arm/virt.c                                |   2 +
 hw/block/pflash_cfi01.c                      | 204 +++++++---------
 hw/char/parallel.c                           |  25 --
 hw/display/cg3.c                             |   2 +
 hw/display/exynos4210_fimd.c                 |  20 +-
 hw/display/framebuffer.c                     |   4 +
 hw/display/g364fb.c                          |   3 +-
 hw/display/sm501.c                           |   2 +
 hw/display/tcx.c                             |   3 +
 hw/display/vmware_vga.c                      |   2 +-
 hw/i386/pc.c                                 |  21 --
 hw/isa/isa-bus.c                             |  26 +++
 hw/isa/lpc_ich9.c                            |  19 ++
 hw/pci-host/pam.c                            |  20 --
 hw/pci-host/piix.c                           |  44 ++--
 hw/pci-host/q35.c                            | 142 ++++++++++--
 hw/virtio/dataplane/vring.c                  |   2 +-
 hw/virtio/vhost.c                            |   9 +-
 include/exec/cputlb.h                        |   3 +-
 include/exec/exec-all.h                      |   6 +-
 include/exec/memattrs.h                      |   4 +-
 include/exec/memory.h                        |  25 +-
 include/exec/ram_addr.h                      | 138 +++++++----
 include/hw/acpi/ich9.h                       |   1 +
 include/hw/i386/ich9.h                       |   6 +
 include/hw/i386/pc.h                         |   1 -
 include/hw/pci-host/pam.h                    |   4 -
 include/hw/pci-host/q35.h                    |  36 ++-
 include/qemu/atomic.h                        |  12 +-
 include/qemu/bitmap.h                        |   4 +
 include/qemu/bitops.h                        |  14 ++
 include/qom/object.h                         |  18 ++
 include/standard-headers/linux/virtio_ring.h |   2 +-
 include/ui/console.h                         |   4 -
 kvm-all.c                                    |  85 ++-----
 linux-headers/asm-x86/kvm.h                  |  14 +-
 linux-headers/linux/kvm.h                    |   7 +-
 linux-user/main.c                            |   4 -
 linux-user/mmap.c                            |   7 +-
 memory.c                                     |  81 +++++--
 qdev-monitor.c                               |  18 +-
 qemu-nbd.c                                   |  21 +-
 qemu-options.hx                              |  19 +-
 qom/object.c                                 |  16 ++
 target-i386/Makefile.objs                    |   2 -
 target-i386/cpu-qom.h                        |   3 +
 target-i386/cpu.c                            |  47 +++-
 target-i386/cpu.h                            |  40 +++-
 target-i386/helper.c                         | 135 +++++++++--
 target-i386/helper.h                         |  12 +-
 target-i386/ioport-user.c                    |  60 -----
 target-i386/kvm.c                            |   2 +-
 target-i386/machine.c                        |   3 +
 target-i386/misc_helper.c                    |  59 +++--
 target-i386/seg_helper.c                     |  12 +-
 target-i386/smm_helper.c                     | 333 ++++++++++++++-------------
 target-i386/svm_helper.c                     | 230 +++++++++---------
 target-i386/translate.c                      |  12 +-
 tests/Makefile                               |   3 +
 tests/q35-test.c                             |  91 ++++++++
 translate-all.c                              |  20 +-
 translate-all.h                              |   7 +
 ui/console.c                                 |  61 -----
 user-exec.c                                  |   1 +
 util/bitmap.c                                |  83 +++++++
 vl.c                                         |   9 +
 xen-hvm.c                                    |  22 +-
 73 files changed, 1560 insertions(+), 1055 deletions(-)
 delete mode 100644 target-i386/ioport-user.c
 create mode 100644 tests/q35-test.c
-- 
2.4.1

diff --git a/hw/arm/vexpress.c b/hw/arm/vexpress.c
index 8f1a5ea..da21788 100644
--- a/hw/arm/vexpress.c
+++ b/hw/arm/vexpress.c
@@ -525,7 +525,7 @@ static pflash_t *ve_pflash_cfi01_register(hwaddr base, 
const char *name,
     qdev_prop_set_uint64(dev, "sector-length", VEXPRESS_FLASH_SECT_SIZE);
     qdev_prop_set_uint8(dev, "width", 4);
     qdev_prop_set_uint8(dev, "device-width", 2);
-    qdev_prop_set_uint8(dev, "big-endian", 0);
+    qdev_prop_set_bit(dev, "big-endian", false);
     qdev_prop_set_uint16(dev, "id0", 0x89);
     qdev_prop_set_uint16(dev, "id1", 0x18);
     qdev_prop_set_uint16(dev, "id2", 0x00);
diff --git a/hw/arm/virt.c b/hw/arm/virt.c
index 0a75cc8..1b1cc71 100644
--- a/hw/arm/virt.c
+++ b/hw/arm/virt.c
@@ -555,7 +555,7 @@ static void create_one_flash(const char *name, hwaddr 
flashbase,
     qdev_prop_set_uint64(dev, "sector-length", sectorlength);
     qdev_prop_set_uint8(dev, "width", 4);
     qdev_prop_set_uint8(dev, "device-width", 2);
-    qdev_prop_set_uint8(dev, "big-endian", 0);
+    qdev_prop_set_bit(dev, "big-endian", false);
     qdev_prop_set_uint16(dev, "id0", 0x89);
     qdev_prop_set_uint16(dev, "id1", 0x18);
     qdev_prop_set_uint16(dev, "id2", 0x00);




reply via email to

[Prev in Thread] Current Thread [Next in Thread]