1. 28 2月, 2017 7 次提交
  2. 24 2月, 2017 4 次提交
  3. 16 2月, 2017 2 次提交
  4. 28 1月, 2017 2 次提交
    • P
      pc: Enable vmware-cpuid-freq CPU option for 2.9+ machine types · 0b564e6f
      Phil Dennis-Jordan 提交于
      Signed-off-by: NPhil Dennis-Jordan <phil@philjordan.eu>
      Message-Id: <1484921496-11257-4-git-send-email-phil@philjordan.eu>
      Signed-off-by: NPaolo Bonzini <pbonzini@redhat.com>
      0b564e6f
    • P
      x86-KVM: Supply TSC and APIC clock rates to guest like VMWare · 9954a158
      Phil Dennis-Jordan 提交于
      This fixes timekeeping of x86-64 Darwin/OS X/macOS guests when using KVM.
      
      Darwin/OS X/macOS for x86-64 uses the TSC for timekeeping; it normally calibrates this by querying various clock frequency scaling MSRs. Details depend on the exact CPU model detected. The local APIC timer frequency is extracted from (EFI) firmware.
      
      This is problematic in the presence of virtualisation, as the MSRs in question are typically not handled by the hypervisor. VMWare (Fusion) advertises TSC and APIC frequency via a custom 0x40000010 CPUID leaf, in the eax and ebx registers respectively. This is documented at https://lwn.net/Articles/301888/ among other places.
      
      Darwin/OS X/macOS looks for the generic 0x40000000 hypervisor leaf, and if this indicates via eax that leaf 0x40000010 might be available, that is in turn queried for the two frequencies.
      
      This adds a CPU option "vmware-cpuid-freq" to enable the same behaviour when running Qemu with KVM acceleration, if the KVM TSC frequency can be determined, and it is stable. (invtsc or user-specified) The virtualised APIC bus cycle is hardcoded to 1GHz in KVM, so ebx of the CPUID leaf is also hardcoded to this value.
      Signed-off-by: NPhil Dennis-Jordan <phil@philjordan.eu>
      Message-Id: <1484921496-11257-2-git-send-email-phil@philjordan.eu>
      Signed-off-by: NPaolo Bonzini <pbonzini@redhat.com>
      9954a158
  5. 24 1月, 2017 3 次提交
  6. 13 1月, 2017 2 次提交
    • A
      qom/cpu: move tlb_flush to cpu_common_reset · 1f5c00cf
      Alex Bennée 提交于
      It is a common thing amongst the various cpu reset functions want to
      flush the SoftMMU's TLB entries. This is done either by calling
      tlb_flush directly or by way of a general memset of the CPU
      structure (sometimes both).
      
      This moves the tlb_flush call to the common reset function and
      additionally ensures it is only done for the CONFIG_SOFTMMU case and
      when tcg is enabled.
      
      In some target cases we add an empty end_of_reset_fields structure to the
      target vCPU structure so have a clear end point for any memset which
      is resetting value in the structure before CPU_COMMON (where the TLB
      structures are).
      
      While this is a nice clean-up in general it is also a precursor for
      changes coming to cputlb for MTTCG where the clearing of entries
      can't be done arbitrarily across vCPUs. Currently the cpu_reset
      function is usually called from the context of another vCPU as the
      architectural power up sequence is run. By using the cputlb API
      functions we can ensure the right behaviour in the future.
      Signed-off-by: NAlex Bennée <alex.bennee@linaro.org>
      Reviewed-by: NRichard Henderson <rth@twiddle.net>
      Reviewed-by: NDavid Gibson <david@gibson.dropbear.id.au>
      1f5c00cf
    • E
      qmp: Report QOM type name on query-cpu-definitions · 8ed877b7
      Eduardo Habkost 提交于
      The new typename attribute on query-cpu-definitions will be used
      to help management software use device-list-properties to check
      which properties can be set using -cpu or -global for the CPU
      model.
      Signed-off-by: NEduardo Habkost <ehabkost@redhat.com>
      Message-Id: <1479320499-29818-1-git-send-email-ehabkost@redhat.com>
      Reviewed-by: NMarkus Armbruster <armbru@redhat.com>
      Signed-off-by: NEduardo Habkost <ehabkost@redhat.com>
      8ed877b7
  7. 22 12月, 2016 2 次提交
  8. 21 12月, 2016 1 次提交
    • T
      Move target-* CPU file into a target/ folder · fcf5ef2a
      Thomas Huth 提交于
      We've currently got 18 architectures in QEMU, and thus 18 target-xxx
      folders in the root folder of the QEMU source tree. More architectures
      (e.g. RISC-V, AVR) are likely to be included soon, too, so the main
      folder of the QEMU sources slowly gets quite overcrowded with the
      target-xxx folders.
      To disburden the main folder a little bit, let's move the target-xxx
      folders into a dedicated target/ folder, so that target-xxx/ simply
      becomes target/xxx/ instead.
      
      Acked-by: Laurent Vivier <laurent@vivier.eu> [m68k part]
      Acked-by: Bastian Koppelmann <kbastian@mail.uni-paderborn.de> [tricore part]
      Acked-by: Michael Walle <michael@walle.cc> [lm32 part]
      Acked-by: Cornelia Huck <cornelia.huck@de.ibm.com> [s390x part]
      Reviewed-by: Christian Borntraeger <borntraeger@de.ibm.com> [s390x part]
      Acked-by: Eduardo Habkost <ehabkost@redhat.com> [i386 part]
      Acked-by: Artyom Tarasenko <atar4qemu@gmail.com> [sparc part]
      Acked-by: Richard Henderson <rth@twiddle.net> [alpha part]
      Acked-by: Max Filippov <jcmvbkbc@gmail.com> [xtensa part]
      Reviewed-by: David Gibson <david@gibson.dropbear.id.au> [ppc part]
      Acked-by: Edgar E. Iglesias <edgar.iglesias@xilinx.com> [cris&microblaze part]
      Acked-by: Guan Xuetao <gxt@mprc.pku.edu.cn> [unicore32 part]
      Signed-off-by: NThomas Huth <thuth@redhat.com>
      fcf5ef2a
  9. 26 11月, 2016 1 次提交
    • E
      target-i386: Remove unused local_err variable · 685479bd
      Eduardo Habkost 提交于
      local_err can never be set to non-NULL. Remove the variable.
      
      Detected by Coverity:
      
          *** CID 1365201:  Possible Control flow issues  (DEADCODE)
          /target-i386/cpu.c: 2050 in x86_cpu_parse_featurestr()
          2044             prop->value = g_strdup(val);
          2045             prop->errp = &error_fatal;
          2046             qdev_prop_register_global(prop);
          2047         }
          2048
          2049         if (local_err) {
          >>>     CID 1365201:  Possible Control flow issues  (DEADCODE)
          >>>     Execution cannot reach this statement: "error_propagate(errp, local...".
          2050             error_propagate(errp, local_err);
          2051         }
          2052     }
          2053
          2054     static void x86_cpu_load_features(X86CPU *cpu, Error **errp);
          2055     static int x86_cpu_filter_features(X86CPU *cpu);
      Reported-by: NMarkus Armbruster <armbru@redhat.com>
      Message-Id: <1480087313-15102-1-git-send-email-ehabkost@redhat.com>
      Signed-off-by: NEduardo Habkost <ehabkost@redhat.com>
      685479bd
  10. 10 11月, 2016 1 次提交
  11. 02 11月, 2016 1 次提交
  12. 01 11月, 2016 1 次提交
  13. 25 10月, 2016 3 次提交
  14. 18 10月, 2016 10 次提交