1. 28 4月, 2015 3 次提交
  2. 02 4月, 2015 1 次提交
  3. 20 3月, 2015 2 次提交
    • E
      target-i386: Haswell-noTSX and Broadwell-noTSX · a356850b
      Eduardo Habkost 提交于
      With the Intel microcode update that removed HLE and RTM, there will be
      different kinds of Haswell and Broadwell CPUs out there: some that still
      have the HLE and RTM features, and some that don't have the HLE and RTM
      features. On both cases people may be willing to use the pc-*-2.3
      machine-types.
      
      So, to cover both cases, introduce Haswell-noTSX and Broadwell-noTSX CPU
      models, for hosts that have Haswell and Broadwell CPUs without TSX support.
      Reviewed-by: NDaniel P. Berrange <berrange@redhat.com>
      Signed-off-by: NEduardo Habkost <ehabkost@redhat.com>
      a356850b
    • E
      Revert "target-i386: Disable HLE and RTM on Haswell & Broadwell" · 1ee91598
      Eduardo Habkost 提交于
      This reverts commit 13704e4c.
      
      With the Intel microcode update that removed HLE and RTM, there will be
      different kinds of Haswell and Broadwell CPUs out there: some that still
      have the HLE and RTM features, and some that don't have the HLE and RTM
      features. On both cases people may be willing to use the pc-*-2.3
      machine-types.
      
      So instead of making the CPU model results confusing by making it depend
      on the machine-type, keep HLE and RTM on the existing Haswell and
      Broadwell CPU models. The plan is to introduce "Haswell-noTSX" and
      "Broadwell-noTSX" CPU models later, for people who have CPUs that don't
      have TSX feature available.
      Reviewed-by: NDaniel P. Berrange <berrange@redhat.com>
      Signed-off-by: NEduardo Habkost <ehabkost@redhat.com>
      1ee91598
  4. 17 3月, 2015 1 次提交
  5. 11 3月, 2015 1 次提交
    • M
      target-i386: Clean up misuse of qdev_init() in realize method · 6e8e2651
      Markus Armbruster 提交于
      x86_cpu_apic_realize() calls qdev_init() to realize the APIC.
      qdev_init()'s error handling has unwanted side effects: it unparents
      the device, and it calls qerror_report_err().
      
      qerror_report_err() is always inappropriate in realize methods,
      because it doesn't return the Error object.  It either reports the
      error to stderr or the human monitor, or it stores it in the QMP
      monitor, where it makes the QMP command fail even though the realize
      method succeeded.
      
      Fortunately, qdev_init() can't actually fail here, because realize
      can't fail for any of the three possible APIC device models.
      
      Clean up by cutting out the qdev_init() middle-man: set property
      "realized" directly.
      Signed-off-by: NMarkus Armbruster <armbru@redhat.com>
      Reviewed-by: NIgor Mammedov <imammedo@redhat.com>
      Signed-off-by: NAndreas Färber <afaerber@suse.de>
      6e8e2651
  6. 10 3月, 2015 7 次提交
  7. 03 3月, 2015 1 次提交
  8. 26 2月, 2015 10 次提交
  9. 18 2月, 2015 1 次提交
  10. 26 1月, 2015 1 次提交
  11. 15 12月, 2014 6 次提交
  12. 24 11月, 2014 1 次提交
    • P
      apic: avoid getting out of halted state on masked PIC interrupts · 60e68042
      Paolo Bonzini 提交于
      After the next patch, if a masked PIC interrupts causes CPU_INTERRUPT_POLL
      to be set, the CPU will spuriously get out of halted state.  While this
      is technically valid, we should avoid that.
      
      Make CPU_INTERRUPT_POLL run apic_update_irq in the right thread and then
      look at CPU_INTERRUPT_HARD.  If CPU_INTERRUPT_HARD does not get set,
      do not report the CPU as having work.
      
      Also move the handling of software-disabled APIC from apic_update_irq
      to apic_irq_pending, and always trigger CPU_INTERRUPT_POLL.  This will
      be important once we will add a case that resets CPU_INTERRUPT_HARD
      from apic_update_irq.  We want to run it even if we go through
      CPU_INTERRUPT_POLL, and even if the local APIC is software disabled.
      Reported-by: NRichard Bilson <rbilson@qnx.com>
      Tested-by: NRichard Bilson <rbilson@qnx.com>
      Signed-off-by: NPaolo Bonzini <pbonzini@redhat.com>
      60e68042
  13. 11 11月, 2014 1 次提交
  14. 04 11月, 2014 4 次提交
    • E
      target-i386: Disable SVM by default in KVM mode · 75d373ef
      Eduardo Habkost 提交于
      Make SVM be disabled by default on all CPU models when in KVM mode.
      Nested SVM is enabled by default in the KVM kernel module, but it is
      probably less stable than nested VMX (which is already disabled by
      default).
      
      Add a new compat function, x86_cpu_compat_kvm_no_autodisable(), to keep
      compatibility on previous machine-types.
      Suggested-by: NPaolo Bonzini <pbonzini@redhat.com>
      Signed-off-by: NEduardo Habkost <ehabkost@redhat.com>
      Signed-off-by: NAndreas Färber <afaerber@suse.de>
      75d373ef
    • E
      target-i386: Don't enable nested VMX by default · e93abc14
      Eduardo Habkost 提交于
      TCG doesn't support VMX, and nested VMX is not enabled by default in the
      KVM kernel module.
      
      So, there's no reason to have VMX enabled by default on the core2duo and
      coreduo CPU models, today. Even the newer Intel CPU model definitions
      don't have it enabled.
      
      In this case, we need machine-type compat code, as people may be running
      the older machine-types on hosts that had VMX nesting enabled.
      Signed-off-by: NEduardo Habkost <ehabkost@redhat.com>
      Signed-off-by: NAndreas Färber <afaerber@suse.de>
      e93abc14
    • E
      target-i386: Remove unsupported bits from all CPU models · b9fc20bc
      Eduardo Habkost 提交于
      The following CPU features were never supported by neither TCG or KVM,
      so they are useless on the CPU model definitions, today:
      
       * CPUID_DTS (DS)
       * CPUID_HT
       * CPUID_TM
       * CPUID_PBE
       * CPUID_EXT_DTES64
       * CPUID_EXT_DSCPL
       * CPUID_EXT_EST
       * CPUID_EXT_TM2
       * CPUID_EXT_XTPR
       * CPUID_EXT_PDCM
       * CPUID_SVM_LBRV
      
      As using "enforce" mode is the only way to ensure guest ABI doesn't
      change when moving to a different host, we should make "enforce" mode
      the default or at least encourage management software to always use it.
      
      In turn, to make "enforce" usable, we need CPU models that work without
      always requiring some features to be explicitly disabled. This patch
      removes the above features from all CPU model definitions.
      
      We won't need any machine-type compat code for those changes, because it
      is impossible to have existing VMs with those features enabled.
      Signed-off-by: NEduardo Habkost <ehabkost@redhat.com>
      Cc: Aurelien Jarno <aurelien@aurel32.net>
      Signed-off-by: NAndreas Färber <afaerber@suse.de>
      b9fc20bc
    • E
      target-i386: Disable CPUID_ACPI by default in KVM mode · 864867b9
      Eduardo Habkost 提交于
      KVM never supported the CPUID_ACPI flag, so it doesn't make sense to
      have it enabled by default when KVM is enabled.
      
      The motivation here is exactly the same we had for the MONITOR flag
      (disabled by commit 136a7e9a).
      
      And like in the MONITOR flag case, we don't need machine-type compat code
      because it is currently impossible to run a KVM VM with the ACPI flag set.
      Signed-off-by: NEduardo Habkost <ehabkost@redhat.com>
      Signed-off-by: NAndreas Färber <afaerber@suse.de>
      864867b9