diff options
author | Gleb Natapov <gleb@redhat.com> | 2010-10-14 11:22:52 +0200 |
---|---|---|
committer | Avi Kivity <avi@redhat.com> | 2011-01-12 10:23:16 +0100 |
commit | 631bc4878220932fe67fc46fc7cf7cccdb1ec597 (patch) | |
tree | ac588182d02308a004d45a9c3ae6834d096e263d /arch/x86/kernel/entry_32.S | |
parent | KVM paravirt: Add async PF initialization to PV guest. (diff) | |
download | linux-631bc4878220932fe67fc46fc7cf7cccdb1ec597.tar.xz linux-631bc4878220932fe67fc46fc7cf7cccdb1ec597.zip |
KVM: Handle async PF in a guest.
When async PF capability is detected hook up special page fault handler
that will handle async page fault events and bypass other page faults to
regular page fault handler. Also add async PF handling to nested SVM
emulation. Async PF always generates exit to L1 where vcpu thread will
be scheduled out until page is available.
Acked-by: Rik van Riel <riel@redhat.com>
Signed-off-by: Gleb Natapov <gleb@redhat.com>
Signed-off-by: Marcelo Tosatti <mtosatti@redhat.com>
Diffstat (limited to 'arch/x86/kernel/entry_32.S')
-rw-r--r-- | arch/x86/kernel/entry_32.S | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/arch/x86/kernel/entry_32.S b/arch/x86/kernel/entry_32.S index 591e60104278..c8b4efad7ebb 100644 --- a/arch/x86/kernel/entry_32.S +++ b/arch/x86/kernel/entry_32.S @@ -1406,6 +1406,16 @@ ENTRY(general_protection) CFI_ENDPROC END(general_protection) +#ifdef CONFIG_KVM_GUEST +ENTRY(async_page_fault) + RING0_EC_FRAME + pushl $do_async_page_fault + CFI_ADJUST_CFA_OFFSET 4 + jmp error_code + CFI_ENDPROC +END(apf_page_fault) +#endif + /* * End of kprobes section */ |