1. 07 7月, 2015 21 次提交
  2. 06 7月, 2015 19 次提交
    • P
      ich9: add smm_enabled field and arguments · fba72476
      Paolo Bonzini 提交于
      Q35's ACPI device is hard-coding SMM availability to KVM.  Place the
      logic where the board is created instead, so that it will be possible
      to override it.
      Acked-by: NMichael S. Tsirkin <mst@redhat.com>
      Signed-off-by: NPaolo Bonzini <pbonzini@redhat.com>
      fba72476
    • P
      pc_piix: rename kvm_enabled to smm_enabled · 61e66c62
      Paolo Bonzini 提交于
      We will enable SMM even if KVM is in use.  Rename the field and
      arguments.
      Acked-by: NMichael S. Tsirkin <mst@redhat.com>
      Signed-off-by: NPaolo Bonzini <pbonzini@redhat.com>
      61e66c62
    • P
    • P
      kvm-all: kvm_irqchip_create is not expected to fail · 8db4936b
      Paolo Bonzini 提交于
      KVM_CREATE_IRQCHIP should never fail, and so should its userspace
      wrapper kvm_irqchip_create.  The function does not do anything
      if the irqchip capability is not available, as is the case for PPC.
      
      With this patch, kvm_arch_init can allocate memory and it will not
      be leaked.
      Signed-off-by: NPaolo Bonzini <pbonzini@redhat.com>
      8db4936b
    • P
      kvm-all: add support for multiple address spaces · 38bfe691
      Paolo Bonzini 提交于
      Make kvm_memory_listener_register public, and assign a kernel
      address space id to each KVMMemoryListener.
      Signed-off-by: NPaolo Bonzini <pbonzini@redhat.com>
      38bfe691
    • P
      kvm-all: make KVM's memory listener more generic · 7bbda04c
      Paolo Bonzini 提交于
      No semantic change, but s->slots moves into a new struct
      KVMMemoryListener.  KVM's memory listener becomes a member of struct
      KVMState, and becomes of type KVMMemoryListener.
      Signed-off-by: NPaolo Bonzini <pbonzini@redhat.com>
      7bbda04c
    • P
      kvm-all: move internal types to kvm_int.h · 8571ed35
      Paolo Bonzini 提交于
      i386 code will have to define a different KVMMemoryListener.  Create
      an internal header so that KVMSlot is not exposed outside.
      Signed-off-by: NPaolo Bonzini <pbonzini@redhat.com>
      8571ed35
    • P
      kvm-all: remove useless typedef · 714f78c5
      Paolo Bonzini 提交于
      Signed-off-by: NPaolo Bonzini <pbonzini@redhat.com>
      714f78c5
    • A
      kvm-all: put kvm_mem_flags to more work · d6ff5cbc
      Andrew Jones 提交于
      Currently kvm_mem_flags just translates bools to bits, let's
      make it also determine the bools first. This avoids its parameter
      list growing each time we add a flag.
      Signed-off-by: NAndrew Jones <drjones@redhat.com>
      Signed-off-by: NPaolo Bonzini <pbonzini@redhat.com>
      d6ff5cbc
    • P
      target-i386: add support for SMBASE MSR and SMIs · fc12d72e
      Paolo Bonzini 提交于
      Apart from the MSR, the smi field of struct kvm_vcpu_events has to be
      translated into the corresponding CPUX86State fields.  Also,
      memory transaction flags depend on SMM state, so pull it from struct
      kvm_run on every exit from KVM to userspace.
      Signed-off-by: NPaolo Bonzini <pbonzini@redhat.com>
      fc12d72e
    • P
      piix4/ich9: do not raise SMI on ACPI enable/disable commands · afd6895b
      Paolo Bonzini 提交于
      These commands are handled entirely by QEMU.  Do not raise an SMI
      when they happen, because Windows (at least 2008r2) expects these
      commands to work and (depending on the value of APMC_EN at
      startup) the firmware might not have installed an SMI handler.
      
      When this happens (e.g. the kernel supports SMIs, or you are using
      TCG, but you have used "-machine smm=off") RIP is moved to 0x38000
      where there is no code to execute.
      Acked-by: NMichael S. Tsirkin <mst@redhat.com>
      Signed-off-by: NPaolo Bonzini <pbonzini@redhat.com>
      afd6895b
    • A
      linux-headers: Update to 4.2-rc1 · 25b8b39b
      Alexey Kardashevskiy 提交于
      This updates linux-headers against master 4.2-rc1 (commit
      d770e558e21961ad6cfdf0ff7df0eb5d7d4f0754). This is the result of
      ./scripts/update-linux-headers.sh work.
      
      Cc: Paolo Bonzini <pbonzini@redhat.com>
      Cc: Michael S. Tsirkin <mst@redhat.com>
      Signed-off-by: NAlexey Kardashevskiy <aik@ozlabs.ru>
      Signed-off-by: NPaolo Bonzini <pbonzini@redhat.com>
      25b8b39b
    • P
      Merge remote-tracking branch 'remotes/bonzini/tags/for-upstream' into staging · 7edd8e46
      Peter Maydell 提交于
      * more of Peter Crosthwaite's multiarch preparation patches
      * unlocked MMIO support in KVM
      * support for compilation with ICC
      
      # gpg: Signature made Mon Jul  6 13:59:20 2015 BST using RSA key ID 78C7AE83
      # gpg: Good signature from "Paolo Bonzini <bonzini@gnu.org>"
      # gpg:                 aka "Paolo Bonzini <pbonzini@redhat.com>"
      # gpg: WARNING: This key is not certified with sufficiently trusted signatures!
      # gpg:          It is not certain that the signature belongs to the owner.
      # Primary key fingerprint: 46F5 9FBD 57D6 12E7 BFD4  E2F7 7E15 100C CD36 69B1
      #      Subkey fingerprint: F133 3857 4B66 2389 866C  7682 BFFB D25F 78C7 AE83
      
      * remotes/bonzini/tags/for-upstream:
        exec: skip MMIO regions correctly in cpu_physical_memory_write_rom_internal
        Stop including qemu-common.h in memory.h
        kvm: Switch to unlocked MMIO
        acpi: mark PMTIMER as unlocked
        kvm: Switch to unlocked PIO
        kvm: First step to push iothread lock out of inner run loop
        memory: let address_space_rw/ld*/st* run outside the BQL
        exec: pull qemu_flush_coalesced_mmio_buffer() into address_space_rw/ld*/st*
        memory: Add global-locking property to memory regions
        main-loop: introduce qemu_mutex_iothread_locked
        main-loop: use qemu_mutex_lock_iothread consistently
        Fix irq route entries exceeding KVM_MAX_IRQ_ROUTES
        cpu-defs: Move out TB_JMP defines
        include/exec: Move tb hash functions out
        include/exec: Move standard exceptions to cpu-all.h
        cpu-defs: Move CPU_TEMP_BUF_NLONGS to tcg
        memory_mapping: Rework cpu related includes
        cutils: allow compilation with icc
        qemu-common: add VEC_OR macro
      Signed-off-by: NPeter Maydell <peter.maydell@linaro.org>
      7edd8e46
    • P
      exec: skip MMIO regions correctly in cpu_physical_memory_write_rom_internal · b242e0e0
      Paolo Bonzini 提交于
      Loading the BIOS in the mac99 machine is interesting, because there is a
      PROM in the middle of the BIOS region (from 16K to 32K).  Before memory
      region accesses were clamped, when QEMU was asked to load a BIOS from
      0xfff00000 to 0xffffffff it would put even those 16K from the BIOS file
      into the region.  This is weird because those 16K were not actually
      visible between 0xfff04000 and 0xfff07fff.  However, it worked.
      
      After clamping was added, this also worked.  In this case, the
      cpu_physical_memory_write_rom_internal function split the write in
      three parts: the first 16K were copied, the PROM area (second 16K) were
      ignored, then the rest was copied.
      
      Problems then started with commit 965eb2fc (exec: do not clamp accesses
      to MMIO regions, 2015-06-17).  Clamping accesses is not done for MMIO
      regions because they can overlap wildly, and MMIO registers can be
      expected to perform full-width accesses based only on their address
      (with no respect for adjacent registers that could decode to completely
      different MemoryRegions).  However, this lack of clamping also applied
      to the PROM area!  cpu_physical_memory_write_rom_internal thus failed
      to copy the third range above, i.e. only copied the first 16K of the BIOS.
      
      In effect, address_space_translate is expecting _something else_ to do
      the clamping for MMIO regions if the incoming length is large.  This
      "something else" is memory_access_size in the case of address_space_rw,
      so use the same logic in cpu_physical_memory_write_rom_internal.
      Reported-by: NAlexander Graf <agraf@redhat.com>
      Reviewed-by: NLaurent Vivier <lvivier@redhat.com>
      Tested-by: NLaurent Vivier <lvivier@redhat.com>
      Fixes: 965eb2fcSigned-off-by: NPaolo Bonzini <pbonzini@redhat.com>
      b242e0e0
    • P
      Stop including qemu-common.h in memory.h · fba0a593
      Peter Maydell 提交于
      Including qemu-common.h from other header files is generally a bad
      idea, because it means it's very easy to end up with a circular
      dependency. For instance, if we wanted to include memory.h from
      qom/cpu.h we'd end up with this loop:
       memory.h -> qemu-common.h -> cpu.h -> cpu-qom.h -> qom/cpu.h -> memory.h
      
      Remove the include from memory.h. This requires us to fix up a few
      other files which were inadvertently getting declarations indirectly
      through memory.h.
      
      The biggest change is splitting the fprintf_function typedef out
      into its own header so other headers can get at it without having
      to include qemu-common.h.
      Signed-off-by: NPeter Maydell <peter.maydell@linaro.org>
      Message-Id: <1435933104-15216-1-git-send-email-peter.maydell@linaro.org>
      Signed-off-by: NPaolo Bonzini <pbonzini@redhat.com>
      fba0a593
    • P
      Merge remote-tracking branch 'remotes/xtensa/tags/20150706-xtensa' into staging · 3fa18bc9
      Peter Maydell 提交于
      Xtensa fixes:
      
      - add 64-bit floating point registers;
      - fix gdb register map construction.
      
      # gpg: Signature made Mon Jul  6 11:27:45 2015 BST using RSA key ID F83FA044
      # gpg: Good signature from "Max Filippov <max.filippov@cogentembedded.com>"
      # gpg:                 aka "Max Filippov <jcmvbkbc@gmail.com>"
      
      * remotes/xtensa/tags/20150706-xtensa:
        target-xtensa: fix gdb register map construction
        target-xtensa: add 64-bit floating point registers
      Signed-off-by: NPeter Maydell <peter.maydell@linaro.org>
      3fa18bc9
    • M
      target-xtensa: fix gdb register map construction · 1479073b
      Max Filippov 提交于
      Due to different gdb overlay organization between windowed/call0
      configurations core import script doesn't always work correctly.
      Simplify the script: always copy complete gdb register map from overlay,
      count registers at core registerstion time. Update existing cores.
      Signed-off-by: NMax Filippov <jcmvbkbc@gmail.com>
      1479073b
    • M
      target-xtensa: add 64-bit floating point registers · ddd44279
      Max Filippov 提交于
      Xtensa ISA got specification for 64-bit floating point registers and
      opcodes, see ISA, 4.3.11 "Floating point coprocessor option".
      
      Add 64-bit FP registers.
      
      Although 64-bit floating point is currently not supported by xtensa
      translator, these registers need to be reported to gdb with proper size,
      otherwise it wouldn't find other registers.
      Signed-off-by: NMax Filippov <jcmvbkbc@gmail.com>
      ddd44279
    • P
      Merge remote-tracking branch 'remotes/pmaydell/tags/pull-target-arm-20150706' into staging · 261ccf42
      Peter Maydell 提交于
      target-arm queue:
       * TLBI ALLEI1IS should operate on all CPUs, not just this one
       * Fix interval interrupt of cadence ttc in decrement mode
       * Implement YIELD insn to yield in ARM and Thumb translators
       * ARM GIC: reset all registers
       * arm_mptimer: fix timer shutdown and mode change
       * arm_mptimer: respect IT bit state
      
      # gpg: Signature made Mon Jul  6 10:58:27 2015 BST using RSA key ID 14360CDE
      # gpg: Good signature from "Peter Maydell <peter.maydell@linaro.org>"
      
      * remotes/pmaydell/tags/pull-target-arm-20150706:
        arm_mptimer: Respect IT bit state
        arm_mptimer: Fix timer shutdown and mode change
        hw/intc/arm_gic_common.c: Reset all registers
        target-arm: Implement YIELD insn to yield in ARM and Thumb translators
        target-arm: Split DISAS_YIELD from DISAS_WFE
        Fix interval interrupt of cadence ttc when timer is in decrement mode
        target-arm: fix write helper for TLBI ALLE1IS
      Signed-off-by: NPeter Maydell <peter.maydell@linaro.org>
      261ccf42