1. 22 12月, 2017 4 次提交
    • S
      i386: hvf: add code base from Google's QEMU repository · c97d6d2c
      Sergio Andres Gomez Del Real 提交于
      This file begins tracking the files that will be the code base for HVF
      support in QEMU. This code base is part of Google's QEMU version of
      their Android emulator, and can be found at
      https://android.googlesource.com/platform/external/qemu/+/emu-master-dev
      
      This code is based on Veertu Inc's vdhh (Veertu Desktop Hosted
      Hypervisor), found at https://github.com/veertuinc/vdhh. Everything is
      appropriately licensed under GPL v2-or-later, except for the code inside
      x86_task.c and x86_task.h, which, deriving from KVM (the Linux kernel),
      is licensed GPL v2-only.
      
      This code base already implements a very great deal of functionality,
      although Google's version removed from Vertuu's the support for APIC
      page and hyperv-related stuff. According to the Android Emulator Release
      Notes, Revision 26.1.3 (August 2017), "Hypervisor.framework is now
      enabled by default on macOS for 32-bit x86 images to improve performance
      and macOS compatibility", although we better use with caution for, as the
      same Revision warns us, "If you experience issues with it specifically,
      please file a bug report...". The code hasn't seen much update in the
      last 5 months, so I think that we can further develop the code with
      occasional visiting Google's repository to see if there has been any
      update.
      
      On top of Google's code, the following changes were made:
      
      - add code to the configure script to support the --enable-hvf argument.
      If the OS is Darwin, it checks for presence of HVF in the system. The
      patch also adds strings related to HVF in the file qemu-options.hx.
      QEMU will only support the modern syntax style '-M accel=hvf' no enable
      hvf; the legacy '-enable-hvf' will not be supported.
      
      - fix styling issues
      
      - add glue code to cpus.c
      
      - move HVFX86EmulatorState field to CPUX86State, changing the
      the emulation functions to have a parameter with signature 'CPUX86State *'
      instead of 'CPUState *' so we don't have to get the 'env'.
      Signed-off-by: NSergio Andres Gomez Del Real <Sergio.G.DelReal@gmail.com>
      Message-Id: <20170913090522.4022-2-Sergio.G.DelReal@gmail.com>
      Message-Id: <20170913090522.4022-3-Sergio.G.DelReal@gmail.com>
      Message-Id: <20170913090522.4022-5-Sergio.G.DelReal@gmail.com>
      Message-Id: <20170913090522.4022-6-Sergio.G.DelReal@gmail.com>
      Message-Id: <20170905035457.3753-7-Sergio.G.DelReal@gmail.com>
      Signed-off-by: NPaolo Bonzini <pbonzini@redhat.com>
      c97d6d2c
    • S
      apic: add function to apic that will be used by hvf · 2cb9f06e
      Sergio Andres Gomez Del Real 提交于
      This patch adds the function apic_get_highest_priority_irr to
      apic.c and exports it through the interface in apic.h for use by hvf.
      Signed-off-by: NSergio Andres Gomez Del Real <Sergio.G.DelReal@gmail.com>
      Message-Id: <20170913090522.4022-8-Sergio.G.DelReal@gmail.com>
      Signed-off-by: NPaolo Bonzini <pbonzini@redhat.com>
      2cb9f06e
    • L
      hw/i386/vmport: fix missing definitions with non-log trace backends · 43ab9a53
      Laurent Vivier 提交于
      When compiled with anything other than the 'log' trace backend, we have:
      
         error: implicit declaration of function 'qemu_log_mask'
         error: 'LOG_UNIMP' undeclared (first use in this function)
      
      This patch adds the missing include.
      
      Fixes: 7299e1a4
             ("hw/i386/vmport: replace fprintf() by trace events or LOG_UNIMP")
      Signed-off-by: NLaurent Vivier <laurent@vivier.eu>
      Message-id: 20171221211103.30311-1-laurent@vivier.eu
      [PMM: fixed commit message description of when problem occurs]
      Signed-off-by: NPeter Maydell <peter.maydell@linaro.org>
      43ab9a53
    • P
      Merge remote-tracking branch 'remotes/bonzini/tags/for-upstream' into staging · 23bafd75
      Peter Maydell 提交于
      * NBD and chardev conversion to QIONetListener (Daniel)
      * MTTCG fixes (David)
      * Hyper-V fixes (Roman, Evgeny)
      * share-rw option (Fam)
      * Mux chardev event bugfix (Marc-André)
      * Add systemd unit files in contrib/ (me)
      * SCSI and block/iscsi.c bugfixes (me, Peter L.)
      * unassigned_mem_ops fixes (Peter M.)
      * VEX decoding fix (Peter M.)
      * "info pic" and "info irq" improvements (Peter Xu)
      * vmport trace events (Philippe)
      * Braille chardev bugfix (Samuel)
      * Compiler warnings fix (Stefan)
      * initial support for TCG smoke test of more boards (Thomas)
      * New CPU features (Yang)
      * Reduce startup memory usage (Yang)
      * QemuThread race fix (linhecheng)
      
      # gpg: Signature made Thu 21 Dec 2017 08:30:49 GMT
      # gpg:                using RSA key 0xBFFBD25F78C7AE83
      # gpg: Good signature from "Paolo Bonzini <bonzini@gnu.org>"
      # gpg:                 aka "Paolo Bonzini <pbonzini@redhat.com>"
      # 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: (41 commits)
        chardev: convert the socket server to QIONetListener
        blockdev: convert qemu-nbd server to QIONetListener
        blockdev: convert internal NBD server to QIONetListener
        test: add some chardev mux event tests
        chardev: fix backend events regression with mux chardev
        rcu: reduce more than 7MB heap memory by malloc_trim()
        checkpatch: volatile with a comment or sig_atomic_t is okay
        i8259: move TYPE_INTERRUPT_STATS_PROVIDER upper
        kvm-i8259: support "info pic" and "info irq"
        i8259: generalize statistics into common code
        i8259: use DEBUG_IRQ_COUNT always
        i8259: convert DPRINTFs into trace
        Remove legacy -no-kvm-pit option
        scsi: replace hex constants with #defines
        scsi: provide general-purpose functions to manage sense data
        hw/i386/vmport: replace fprintf() by trace events or LOG_UNIMP
        hw/mips/boston: Remove workaround for writes to ROM aborting
        exec: Don't reuse unassigned_mem_ops for io_mem_rom
        block/iscsi: only report an iSCSI Failure if we don't handle it gracefully
        block/iscsi: dont leave allocmap in an invalid state on UNMAP failure
        ...
      Signed-off-by: NPeter Maydell <peter.maydell@linaro.org>
      23bafd75
  2. 21 12月, 2017 36 次提交