Statistics
| Branch: | Revision:

root / target-i386 @ 99036865

# Date Author Comment
ac098781 03/15/2011 06:19 am Jan Kiszka

x86: Account for MCE in cpu_has_work

MCEs can be injected asynchronously, so they can also terminate the halt
state.

Signed-off-by: Jan Kiszka <>
CC: Huang Ying <>
CC: Hidetoshi Seto <>...

18559232 03/15/2011 06:19 am Jan Kiszka

x86: Perform implicit mcg_status reset

Reorder mcg_status in CPUState to achieve automatic clearing on reset.

Signed-off-by: Jan Kiszka <>
CC: Huang Ying <>
CC: Hidetoshi Seto <>
CC: Jin Dongming <>...

2fa11da0 03/15/2011 06:19 am Jan Kiszka

x86: Small cleanups of MCE helpers

Fix some code style issues, use proper headers, and align to cpu_x86
naming scheme. No functional changes.

Signed-off-by: Jan Kiszka <>
CC: Huang Ying <>
CC: Hidetoshi Seto <>...

316378e4 03/15/2011 06:19 am Jan Kiszka

x86: Refine error reporting of MCE injection services

As this service is used by the human monitor, make sure that errors get
reported to the right channel, and also raise the verbosity.

This requires to move Monitor typedef in qemu-common.h to resolve the...

747461c7 03/15/2011 06:19 am Jan Kiszka

x86: Optionally avoid injecting AO MCEs while others are pending

Allow to tell cpu_x86_inject_mce that it should ignore Action Optional
MCE events when the target VCPU is still processing another one. This
will be used by KVM soon.

Signed-off-by: Jan Kiszka <>...

419fb20a 03/15/2011 06:19 am Jan Kiszka

kvm: x86: Move MCE functions together

Pure function suffling to avoid multiple #ifdef KVM_CAP_MCE sections,
no functional changes. While at it, annotate some #ifdef sections.

Signed-off-by: Jan Kiszka <>
CC: Huang Ying <>...

99036865 03/15/2011 06:19 am Jan Kiszka

kvm: Rename kvm_arch_process_irqchip_events to async_events

We will broaden the scope of this function on x86 beyond irqchip events.

Signed-off-by: Jan Kiszka <>
Signed-off-by: Marcelo Tosatti <>

b7680cb6 03/13/2011 04:44 pm Jan Kiszka

Refactor thread retrieval and check

We have qemu_cpu_self and qemu_thread_self. The latter is retrieving the
current thread, the former is checking for equality (using CPUState). We
also have qemu_thread_equal which is only used like qemu_cpu_self.

This refactors the interfaces, creating qemu_cpu_is_self and...

eda48c34 03/13/2011 04:44 pm Paolo Bonzini

inline cpu_halted into sole caller

All implementations are now the same, and there is only one caller,
so inline the function there.

Signed-off-by: Paolo Bonzini <>
Signed-off-by: Blue Swirl <>

b8cc45d6 02/14/2011 04:39 pm Glauber Costa

kvm: make tsc stable over migration and machine start

If the machine is stopped, we should not record two different tsc values
upon a save operation. The same problem happens with kvmclock.

But kvmclock is taking a different diretion, being now seen as a separate...

6792a57b 02/14/2011 04:39 pm Jan Kiszka

kvm: Separate TCG from KVM cpu execution

Mixing up TCG bits with KVM already led to problems around eflags
emulation on x86. Moreover, quite some code that TCG requires on cpu
enty/exit is useless for KVM. So dispatch between tcg_cpu_exec and
kvm_cpu_exec as early as possible....

db1669bc 02/14/2011 04:39 pm Jan Kiszka

kvm: x86: Prepare VCPU loop for in-kernel irqchip

Effectively no functional change yet as kvm_irqchip_in_kernel still only
returns 0, but this patch will allow qemu-kvm to adopt the VCPU loop of
upsteam KVM.

Signed-off-by: Jan Kiszka <>...

7a39fe58 02/14/2011 04:39 pm Jan Kiszka

kvm: Drop return values from kvm_arch_pre/post_run

We do not check them, and the only arch with non-empty implementations
always returns 0 (this is also true for qemu-kvm).

Signed-off-by: Jan Kiszka <>
CC: Alexander Graf <>...

ce377af3 02/14/2011 04:39 pm Jan Kiszka

kvm: x86: Catch and report failing IRQ and NMI injections

We do not need to abort, but the user should be notified that weird
things go on.

Signed-off-by: Jan Kiszka <>
Signed-off-by: Marcelo Tosatti <>

a1b87fe0 02/14/2011 04:39 pm Jan Kiszka

kvm: Provide sigbus services arch-independently

Provide arch-independent kvm_on_sigbus* stubs to remove the #ifdef'ery
from cpus.c. This patch also fixes --disable-kvm build by providing the
missing kvm_on_sigbus_vcpu kvm-stub.

Signed-off-by: Jan Kiszka <>...

9ccfac9e 02/14/2011 04:39 pm Jan Kiszka

kvm: Unconditionally reenter kernel after IO exits

KVM requires to reenter the kernel after IO exits in order to complete
instruction emulation. Failing to do so will leave the kernel state
inconsistently behind. To ensure that we will get back ASAP, we issue a...

29057492 02/08/2011 01:36 pm Jan Kiszka

x86: Fix MCA broadcast parameters for TCG case

When broadcasting MCEs, we need to set MCIP and RIPV in mcg_status like
it is done for KVM. Use the symbolic constants at this chance.

Signed-off-by: Jan Kiszka <>
Signed-off-by: Marcelo Tosatti <>...

b3a98367 02/01/2011 11:32 pm Anthony Liguori

Merge remote branch 'qemu-kvm/uq/master' into staging

aliguori: fix build with !defined(KVM_CAP_ASYNC_PF)

Signed-off-by: Anthony Liguori <>

94a8d39a 01/23/2011 06:27 am Jan Kiszka

kvm: Consolidate must-have capability checks

Instead of splattering the code with #ifdefs and runtime checks for
capabilities we cannot work without anyway, provide central test
infrastructure for verifying their availability both at build and
runtime.

Signed-off-by: Jan Kiszka <>...

11076198 01/23/2011 06:27 am Jan Kiszka

kvm: x86: Rework identity map and TSS setup for larger BIOS sizes

In order to support loading BIOSes > 256K, reorder the code, adjusting
the base if the kernel supports moving the identity map.

Signed-off-by: Jan Kiszka <>
Signed-off-by: Marcelo Tosatti <>

d8f771d9 01/23/2011 06:27 am Jan Kiszka

kvm: x86: Implicitly clear nmi_injected/pending on reset

All CPUX86State variables before CPU_COMMON are automatically cleared on
reset. Reorder nmi_injected and nmi_pending to avoid having to touch
them explicitly.

Signed-off-by: Jan Kiszka <>...

c5999bfc 01/23/2011 06:27 am Jan Kiszka

kvm: x86: Only read/write MSR_KVM_ASYNC_PF_EN if supported

If the kernel does not support KVM_CAP_ASYNC_PF, it also does not know
about the related MSR. So skip it during state synchronization in that
case. Fixes annoying kernel warnings.

Signed-off-by: Jan Kiszka <>...

0d75a9ec 01/23/2011 06:27 am Jan Kiszka

kvm: x86: Align kvm_arch_put_registers code with comment

The ordering doesn't matter in this case, but better keep it consistent.

Signed-off-by: Jan Kiszka <>
Signed-off-by: Marcelo Tosatti <>

c14750e8 01/23/2011 06:27 am Jan Kiszka

kvm: x86: Prepare kvm_get_mp_state for in-kernel irqchip

This code path will not yet be taken as we still lack in-kernel irqchip
support. But qemu-kvm can already make use of it and drop its own
mp_state access services.

Signed-off-by: Jan Kiszka <>...

3390e7f7 01/23/2011 06:27 am Jan Kiszka

kvm: x86: Remove redundant mp_state initialization

kvm_arch_reset_vcpu initializes mp_state, and that function is invoked
right after kvm_arch_init_vcpu.

Signed-off-by: Jan Kiszka <>
Signed-off-by: Marcelo Tosatti <>

1a5e9d2f 01/23/2011 06:27 am Jan Kiszka

kvm: x86: Fix xcr0 reset mismerge

For unknown reasons, xcr0 reset ended up in kvm_arch_update_guest_debug
on upstream merge. Fix this and also remove the misleading comment (1 is
THE reset value).

Signed-off-by: Jan Kiszka <>
Signed-off-by: Marcelo Tosatti <>

c3a3a7d3 01/23/2011 06:27 am Jan Kiszka

kvm: x86: Refactor msr_star/hsave_pa setup and checks

Simplify kvm_has_msr_star/hsave_pa to booleans and push their one-time
initialization into kvm_arch_init. Also handle potential errors of that
setup procedure.

Signed-off-by: Jan Kiszka <>...

ff5c186b 01/23/2011 06:27 am Jan Kiszka

kvm: x86: Reset paravirtual MSRs

Make sure to write the cleared MSR_KVM_SYSTEM_TIME, MSR_KVM_WALL_CLOCK,
and MSR_KVM_ASYNC_PF_EN to the kernel state so that a freshly booted
guest cannot be disturbed by old values.

Signed-off-by: Jan Kiszka <>...

521f0798 01/23/2011 06:27 am Jan Kiszka

kvm: x86: Fix !CONFIG_KVM_PARA build

If we lack kvm_para.h, MSR_KVM_ASYNC_PF_EN is not defined. The change in
kvm_arch_init_vcpu is just for consistency reasons.

Signed-off-by: Jan Kiszka <>
Signed-off-by: Marcelo Tosatti <>

cad1e282 01/23/2011 06:27 am Jan Kiszka

kvm: Drop smp_cpus argument from init functions

No longer used.

Signed-off-by: Jan Kiszka <>
Signed-off-by: Marcelo Tosatti <>

646042e1 01/23/2011 06:27 am Jan Kiszka

kvm: x86: Swallow KVM_EXIT_SET_TPR

This exit only triggers activity in the common exit path, but we should
accept it in order to be able to detect unknown exit types.

Signed-off-by: Jan Kiszka <>
Signed-off-by: Marcelo Tosatti <>

73aaec4a 01/23/2011 06:27 am Jan Kiszka

kvm: Stop on all fatal exit reasons

Ensure that we stop the guest whenever we face a fatal or unknown exit
reason. If we stop, we also have to enforce a cpu loop exit.

Signed-off-by: Jan Kiszka <>
Signed-off-by: Marcelo Tosatti <>

bb44e0d1 01/23/2011 06:27 am Jan Kiszka

kvm: Improve reporting of fatal errors

Report KVM_EXIT_UNKNOWN, KVM_EXIT_FAIL_ENTRY, and KVM_EXIT_EXCEPTION
with more details to stderr. The latter two are so far x86-only, so move
them into the arch-specific handler. Integrate the Intel real mode
warning on KVM_EXIT_FAIL_ENTRY that qemu-kvm carries, but actually...

f5c848ee 01/23/2011 06:27 am Jan Kiszka

x86: Optionally dump code bytes on cpu_dump_state

Introduce the cpu_dump_state flag CPU_DUMP_CODE and implement it for
x86. This writes out the code bytes around the current instruction
pointer. Make use of this feature in KVM to help debugging fatal vm
exits....

b3cd24e0 01/21/2011 06:05 pm Jin Dongming

Clean up cpu_inject_x86_mce()

Clean up cpu_inject_x86_mce() for later patch.

Signed-off-by: Jin Dongming <>
Signed-off-by: Marcelo Tosatti <>

31ce5e0c 01/21/2011 06:05 pm Jin Dongming

Add "broadcast" option for mce command

When the following test case is injected with mce command, maybe user could not
get the expected result.
DATA
command cpu bank status mcg_status addr misc
(qemu) mce 1 1 0xbd00000000000000 0x05 0x1234 0x8c...

2bd3e04c 01/21/2011 06:05 pm Jin Dongming

Add function for checking mca broadcast of CPU

Add function for checking whether current CPU support mca broadcast.

Signed-off-by: Jin Dongming <>
Signed-off-by: Marcelo Tosatti <>

6643e2f0 01/21/2011 06:05 pm Jin Dongming

kvm: introduce kvm_mce_in_progress

Share same error handing, and rename this function after
MCIP (Machine Check In Progress) flag.

Signed-off-by: Hidetoshi Seto <>
Signed-off-by: Jin Dongming <>...

e387c338 01/21/2011 06:05 pm Jin Dongming

kvm: kvm_mce_inj_* subroutines for templated error injections

Refactor codes for maintainability.

Signed-off-by: Hidetoshi Seto <>
Signed-off-by: Jin Dongming <>
Signed-off-by: Marcelo Tosatti <>

7cc2cc3e 01/21/2011 06:05 pm Jin Dongming

kvm: introduce kvm_inject_x86_mce_on

Pass a table instead of multiple args.

Note:

kvm_inject_x86_mce(env, bank, status, mcg_status, addr, misc,
abort_on_error);

is equal to:

struct kvm_x86_mce mce = {
.bank = bank,...
acaa7550 01/21/2011 06:05 pm Jan Kiszka

kvm: x86: Fix DPL write back of segment registers

The DPL is stored in the flags and not in the selector. In fact, the RPL
may differ from the DPL at some point in time, and so we were corrupting
the guest state so far.

Signed-off-by: Jan Kiszka <>...

3980e302 01/21/2011 06:05 pm Jan Kiszka

kvm: x86: Remove obsolete SS.RPL/DPL aligment

This seems to date back to the days KVM didn't support real mode. The
check is no longer needed and, even worse, is corrupting the guest state
in case SS.RPL != DPL.

Signed-off-by: Jan Kiszka <>...

95c077c9 01/21/2011 06:05 pm Jan Kiszka

kvm: x86: Prevent sign extension of DR7 in guest debugging mode

This unbreaks guest debugging when the 4th hardware breakpoint used for
guest debugging is a watchpoint of 4 or 8 byte lenght. The 31st bit of
DR7 is set in that case and used to cause a sign extension to the high...

b9bec74b 01/21/2011 06:05 pm Jan Kiszka

kvm: x86: Fix a few coding style violations

No functional changes.

Signed-off-by: Jan Kiszka <>
Signed-off-by: Avi Kivity <>

276ce815 01/21/2011 06:05 pm Lai Jiangshan

kvm: Enable user space NMI injection for kvm guest

Make use of the new KVM_NMI IOCTL to send NMIs into the KVM guest if the
user space raised them. (example: qemu monitor's "nmi" command)

Signed-off-by: Lai Jiangshan <>
Acked-by: Jan Kiszka <>...

14a09518 01/21/2011 06:05 pm Lai Jiangshan

kvm: convert kvm_ioctl(KVM_CHECK_EXTENSION) to kvm_check_extension()

simple cleanup and use existing helper: kvm_check_extension().

Signed-off-by: Lai Jiangshan <>
Signed-off-by: Marcelo Tosatti <>

c832e3de 01/20/2011 01:16 pm Richard Henderson

target-i386: Use deposit operation.

Use this for assignment to the low byte or low word of a register.

Acked-by: Aurelien Jarno <>
Signed-off-by: Richard Henderson <>
Signed-off-by: Edgar E. Iglesias <>

4058fd98 12/27/2010 11:02 pm Jan Kiszka

x86: Filter out garbage from segment flags dump

Only bits 8..23 of the segment flags contain valid data, so only dump
those when printing the CPU state.

Signed-off-by: Jan Kiszka <>
Signed-off-by: Aurelien Jarno <>

ac6c4120 12/20/2010 11:03 pm Andreas Färber

target-i386: Fix accidental use of SoftFloat uint64 type

softfloat.h's uint64 type has least-width semantics.
Use uint64_t instead since that is used in helpers.

v4:
  • Summary change.
v3:
  • Split off.

Signed-off-by: Andreas Färber <>...

f6584ee2 11/16/2010 04:40 pm Gleb Natapov

Add support for async page fault to qemu

Add save/restore of MSR for migration and cpuid bit.

Signed-off-by: Gleb Natapov <>
Signed-off-by: Marcelo Tosatti <>

9a78eead 10/30/2010 11:01 am Stefan Weil

target-xxx: Use fprintf_function (format checking)

fprintf_function uses format checking with GCC_FMT_ATTR.

Format errors were fixed in
  • target-i386/helper.c
  • target-mips/translate.c
  • target-ppc/translate.c

Cc: Blue Swirl <>
Signed-off-by: Stefan Weil <>...

25d2e361 10/21/2010 06:37 pm Marcelo Tosatti

kvm: save/restore x86-64 MSRs on x86-64 kernels

Signed-off-by: Marcelo Tosatti <>

384331a6 10/21/2010 06:37 pm Marcelo Tosatti

kvm: writeback SMP TSCs on migration only

commit 6389c45441269baa2873e6feafebd17105ddeaf6
Author: Jan Kiszka <>
Date: Mon Mar 1 18:17:26 2010 +0100

qemu-kvm: Cleanup/fix TSC and PV clock writeback

Signed-off-by: Marcelo Tosatti <>

75b10c43 10/21/2010 06:37 pm Marcelo Tosatti

kvm: factor out kvm_has_msr_star

And add kvm_has_msr_hsave_pa(), to avoid warnings on older
kernels without support.

Signed-off-by: Marcelo Tosatti <>

aa851e36 10/21/2010 06:37 pm Marcelo Tosatti

kvm: add save/restore of MSR_VM_HSAVE_PA

commit 2bba4446746add456ceeb0e8359a43032a2ea333
Author: Alexander Graf <>
Date: Thu Dec 18 15:38:32 2008 +0100

Enable nested SVM support in userspace

Signed-off-by: Marcelo Tosatti <>

d8da8574 10/21/2010 06:12 pm Hidetoshi Seto

Fix build on !KVM_CAP_MCE

This patch removes following warnings:

target-i386/kvm.c: In function 'kvm_put_msrs':
target-i386/kvm.c:782: error: unused variable 'i'
target-i386/kvm.c: In function 'kvm_get_msrs':
target-i386/kvm.c:1083: error: label at end of compound statement...

f71ac88f 10/21/2010 06:11 pm Hidetoshi Seto

x86, mce: broadcast mce depending on the cpu version

There is no reason why SRAO event received by the main thread
is the only one that being broadcasted.

According to the x86 ASDM vol.3A 15.10.4.1,
MCE signal is broadcast on processor version 06H_EH or later....

f8502cfb 10/21/2010 06:09 pm Hidetoshi Seto

x86, mce: ignore SRAO only when MCG_SER_P is available

And restruct this block to call kvm_mce_in_exception() only when it is
required.

Signed-off-by: Hidetoshi Seto <>
Signed-off-by: Marcelo Tosatti <>

db0ad1ba 10/21/2010 12:15 am Joerg Roedel

Set cpuid definition to 0 before initializing it

This patch cleans the (stack-allocated) cpuid definition to
0 before actually initializing it.

Signed-off-by: Joerg Roedel <>
Signed-off-by: Avi Kivity <>

296acb64 10/21/2010 12:15 am Joerg Roedel

Add svm cpuid features

This patch adds the svm cpuid feature flags to the qemu
intialization path. It also adds the svm features available
on phenom to its cpu-definition and extends the host cpu
type to support all svm features KVM can provide.

Signed-off-by: Joerg Roedel <>...

e7701825 10/21/2010 12:15 am Marcelo Tosatti

kvm: x86: add mce support

Port qemu-kvm's MCE support

commit c68b2374c9048812f488e00ffb95db66c0bc07a7
Author: Huang Ying <>
Date: Mon Jul 20 10:00:53 2009 +0800

Add MCE simulation support to qemu/kvm
KVM ioctls are used to initialize MCE simulation and inject MCE. The...
c0532a76 10/21/2010 12:15 am Marcelo Tosatti

MCE: Relay UCR MCE to guest

Port qemu-kvm's

commit 4b62fff1101a7ad77553147717a8bd3bf79df7ef
Author: Huang Ying <>
Date: Mon Sep 21 10:43:25 2009 +0800

MCE: Relay UCR MCE to guest
UCR (uncorrected recovery) MCE is supported in recent Intel CPUs,...
57780495 10/21/2010 12:15 am Marcelo Tosatti

Add savevm/loadvm support for MCE

Port qemu-kvm's

commit 1bab5d11545d8de5facf46c28630085a2f9651ae
Author: Huang Ying <>
Date: Wed Mar 3 16:52:46 2010 +0800

Add savevm/loadvm support for MCE
MCE registers are saved/load into/from CPUState in...
0f53994f 10/21/2010 12:15 am Marcelo Tosatti

Fix memory leak in register save load due to xsave support

From: Avi Kivity <>
Signed-off-by: Marcelo Tosatti <>

4581cbcd 10/13/2010 09:43 pm Blue Swirl

i386: avoid a write only variable

Compiling with GCC 4.6.0 20100925 produced warnings:
/src/qemu/target-i386/op_helper.c: In function 'switch_tss':
/src/qemu/target-i386/op_helper.c:283:53: error: variable 'new_trap' set but not used [-Werror=unused-but-set-variable]...

3329f07b 08/23/2010 01:11 am Gerd Hoffmann

QemuOpts: make most qemu_*_opts static

Switch tree to lookup-by-name using qemu_find_opts().
Also hook up virtfs options so qemu_find_opts works for them too.

Signed-off-by: Gerd Hoffmann <>
Signed-off-by: Anthony Liguori <>

583cd3cb 08/23/2010 12:19 am Adam Lackorzynski

target-i386: svm: Fix MSRPM check

Correct the calculation of the offset in the msrpm
for the MSR range 0 - 0x1fff.

Signed-off-by: Adam Lackorzynski <>
Signed-off-by: Anthony Liguori <>

66fe09ee 08/21/2010 12:03 am Blue Swirl

Use ARRAY_SIZE macro

Replace array size calculations with ARRAY_SIZE macro.

Implemented with this Coccinelle semantic patch, adapted from
Linux kernel:
@
type T;
T[] E;
@

- (sizeof(E)/sizeof(*E))
+ ARRAY_SIZE(E)

@
type T;
T[] E;
@

- (sizeof(E)/sizeof(E[...]))...

728d803b 07/25/2010 06:04 pm Jun Koi

target-i386: use gen_update_cc_op()

This patch simplifies target-i386/translate.c a bit by replacing some
code with gen_update_cc_op()

Signed-off-by: Jun Koi <>
Signed-off-by: Aurelien Jarno <>

5779406a 07/24/2010 03:34 pm Jun Koi

use symbol for DisasContext->is_jmp

This patch replaces constant value assigned for (DisasContext
*)->is_jmp with DISAS_TB_JUMP.

Signed-off-by: Jun Koi <>
Signed-off-by: Edgar E. Iglesias <>

a88790a1 07/03/2010 09:48 am Paolo Bonzini

remove exec-all.h inclusion from cpu.h

Signed-off-by: Paolo Bonzini <>
Signed-off-by: Blue Swirl <>

10eb0cc0 07/03/2010 09:48 am Paolo Bonzini

move cpu_pc_from_tb to target-*/exec.h

Signed-off-by: Paolo Bonzini <>
Signed-off-by: Blue Swirl <>

83dae095 07/03/2010 09:47 am Paolo Bonzini

remove unused stuff from */exec.h

Signed-off-by: Paolo Bonzini <>
Signed-off-by: Blue Swirl <>

8713f8ff 07/02/2010 02:55 am Andi Kleen

Don't declare XSAVE as supported

i386 cpuid.c currently claims XSAVE is supported in the CPUID filter,
but that's not true: Only FXSAVE is supported. Remove that bit
from the filter.

Signed-off-by: Andi Kleen <>
Signed-off-by: Aurelien Jarno <>

c045af25 07/02/2010 02:53 am Andi Kleen

Add more boundary checking to sse3/4 parsing

ssse3 uses tables with only two entries per op, but it is indexed
with b1 which can contain variables upto 3. This happens when ssse3
or sse4 are used with REP* prefixes.

Add boundary checking for this case.
...

7418027e 07/02/2010 12:45 am Richard Henderson

target-i386: fix xchg rax,r8

We were ignoring REX_B while special-casing NOP, i.e. xchg eax,eax.

Signed-off-by: Richard Henderson <>
Signed-off-by: Aurelien Jarno <>

ab5ea558 06/30/2010 09:59 pm Jan Kiszka

x86: svm: Always clear event_inj on vmexit

We currently only clear SVM_EVTINJ_VALID after successful interrupt
delivery. This apparently does not match real hardware which clears the
whole event_inj field on every vmexit, including unsuccessful interrupt...

89354998 06/28/2010 07:06 pm Andre Przywara

fix CPUID vendor override

the meaning of vendor_override is actually the opposite of how it
is currently used :-(
Fix it to allow KVM to export the non-native CPUID vendor if
explicitly requested by the user.

The intended behavior is:
With TCG:
- always inject the configured vendor (either hard-coded, in config...

c958a8bd 06/28/2010 07:06 pm Sheng Yang

kvm: Extend kvm_arch_get_supported_cpuid() to support index

Would use it later for XSAVE related CPUID.

Signed-off-by: Sheng Yang <>
Signed-off-by: Marcelo Tosatti <>

51e49430 06/28/2010 07:06 pm Sheng Yang

Enable XSAVE related CPUID

We can support it in KVM now. The 0xd leaf is queried from KVM.

Signed-off-by: Sheng Yang <>
Signed-off-by: Marcelo Tosatti <>

f1665b21 06/28/2010 07:06 pm Sheng Yang

kvm: Enable XSAVE live migration support

Signed-off-by: Sheng Yang <>
Signed-off-by: Marcelo Tosatti <>

ddced198 06/28/2010 07:06 pm Marcelo Tosatti

kvm: init mp_state

Signed-off-by: Marcelo Tosatti <>
Signed-off-by: Avi Kivity <>

408392b3 06/28/2010 07:06 pm Sheng Yang

kvm: Fix cpu_is_bsp() compilation warning

Signed-off-by: Sheng Yang <>
Signed-off-by: Avi Kivity <>

052be86b 06/27/2010 07:07 pm Jan Kiszka

x86: Fix INIT processing

This fixes a regression of 0e26b7b892: Reset halted also on INIT.

Signed-off-by: Jan Kiszka <>
Signed-off-by: Blue Swirl <>

92a16d7a 06/19/2010 10:47 am Blue Swirl

apic: qdev conversion cleanup

Make APICState completely private to apic.c by using DeviceState
in external APIs.

Move apic_init() to pc.c.

Signed-off-by: Blue Swirl <>

0e26b7b8 06/19/2010 10:42 am Blue Swirl

apic: avoid using CPUState internals

Move the actual CPUState contents handling to cpu.h and cpuid.c.

Handle CPU reset and set env->halted in pc.c.

Add a function to get the local APIC state of the current
CPU for the MMIO.

Signed-off-by: Blue Swirl <>

4a942cea 06/19/2010 10:42 am Blue Swirl

apic: avoid passing CPUState from CPU code

Pass only APICState when accessing APIC from CPU code.

Signed-off-by: Blue Swirl <>

2bece2c8 06/16/2010 12:29 pm Richard Henderson

tcg: Optionally sign-extend 32-bit arguments for 64-bit hosts.

Some hosts (amd64, ia64) have an ABI that ignores the high bits
of the 64-bit register when passing 32-bit arguments. Others
require the value to be properly sign-extended for the type.
I.e. "int32_t" must be sign-extended and "uint32_t" must be...

8c0e6340 06/04/2010 10:48 pm Paolo Bonzini

target-i386: fix decoding of negative 4-byte displacements

Negative four byte displacements need to be sign-extended after
c086b783eb7a578993d6d2ab62c4c2666800b63d. Do so.

Signed-off-by: Paolo Bonzini <>
Acked-by: Richard Henderson <>...

eafaf1e5 06/01/2010 08:53 pm Andre Przywara

resent: x86/cpuid: Add kvm32 CPU model

Create a kvm32 CPU model that describes a least common denominator
for KVM capable guest CPUs. Useful for migration purposes.

Signed-off-by: Andre Przywara <>
Signed-off-by: Anthony Liguori <>

c1667e40 05/11/2010 11:07 pm Gleb Natapov

kvm: fix 80000001.EDX supported bit filtering

On AMD some bits from 1.EDX are reported in 80000001.EDX. The mask used
to copy bits from 1.EDX to 80000001.EDX is incorrect resulting in
unsupported features passed into a guest.

Signed-off-by: Gleb Natapov <>...

4513d923 05/11/2010 08:03 pm Gleb Natapov

Do not stop VM if emulation failed in userspace.

Continue vcpu execution in case emulation failure happened while vcpu
was in userspace. In this case #UD will be injected into the guest
allowing guest OS to kill offending process and continue.

Signed-off-by: Gleb Natapov <>...

dbaa07c4 05/11/2010 08:02 pm Jan Kiszka

kvm: validate context for kvm cpu get/put operations

Validate that KVM vcpu state is only read/written from cpu thread itself
or that cpu is stopped.

Signed-off-by: Marcelo Tosatti <>
Signed-off-by: Avi Kivity <>

0af691d7 05/11/2010 08:02 pm Marcelo Tosatti

kvm: enable smp > 1

Process INIT/SIPI requests and enable -smp > 1.

Signed-off-by: Marcelo Tosatti <>
Signed-off-by: Avi Kivity <>

6e9cc3ed 05/05/2010 01:20 pm Richard Henderson

target-i386: Remove duplicate CPU log.

The proper logging for -d cpu is done in generic code.

Signed-off-by: Richard Henderson <>
Signed-off-by: Aurelien Jarno <>

ff44f1a3 04/26/2010 05:28 pm Jan Kiszka

KVM: x86: Add debug register saving and restoring

Make use of the new KVM_GET/SET_DEBUGREGS to save/restore the x86 debug
registers.

Signed-off-by: Jan Kiszka <>
Signed-off-by: Marcelo Tosatti <>

b5e5a934 04/26/2010 05:28 pm Marcelo Tosatti

target-i386: print EFER in cpu_dump_state

Signed-off-by: Marcelo Tosatti <>
Signed-off-by: Avi Kivity <>

20420430 04/26/2010 05:28 pm Sheng Yang

kvm: allow qemu to set EPT identity mapping address

If we use larger BIOS image than current 256KB, we would need move reserved
TSS and EPT identity mapping pages. Currently TSS support this, but not
EPT.

Signed-off-by: Marcelo Tosatti <>...

7f5b7d3e 04/25/2010 09:58 pm Blue Swirl

x86: remove dead assignments, spotted by clang analyzer

Value stored is never read.

Signed-off-by: Blue Swirl <>

8c0d577e 04/18/2010 05:22 pm Blue Swirl

kvm: avoid collision with dprintf macro in stdio.h, spotted by clang

Fixes clang errors:
CC i386-softmmu/kvm.o
/src/qemu/target-i386/kvm.c:40:9: error: 'dprintf' macro redefined
In file included from /src/qemu/target-i386/kvm.c:21:
In file included from /src/qemu/qemu-common.h:27:...