x86/pv: Drop int80_bounce from struct pv_vcpu
authorAndrew Cooper <andrew.cooper3@citrix.com>
Fri, 5 May 2017 16:01:47 +0000 (17:01 +0100)
committerAndrew Cooper <andrew.cooper3@citrix.com>
Mon, 5 Mar 2018 17:36:31 +0000 (17:36 +0000)
commitf75b1a5247b3b311d3aa50de4c0e5f2d68085cb1
treea0f1f1d76d0c7a6f74ea911bb28aae239ee48441
parent344c55229847365462ad9d2fe9190366d2ee41ae
x86/pv: Drop int80_bounce from struct pv_vcpu

The int80_bounce field of struct pv_vcpu is a bit of an odd special case,
because it is a simple derivation of trap_ctxt[0x80], which is also stored.

It is also the only use of {compat_,}create_bounce_frame() which isn't
referencing the plain trap_bounce field of struct pv_vcpu.  (And altering this
property the purpose of this patch.)

Remove the int80_bounce field entirely, along with init_int80_direct_trap(),
which in turn requires that the int80_direct_trap() path gain logic previously
contained in init_int80_direct_trap().

This does admittedly make the int80 fastpath slightly longer, but these few
instructions are in the noise compared to the architectural context switch
overhead, and it now matches the syscall/sysenter paths (which have far less
architectural overhead already).

No behavioural change from the guests point of view.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
Reviewed-by: Jan Beulich <jbeulich@suse.com>
xen/arch/x86/domain.c
xen/arch/x86/pv/callback.c
xen/arch/x86/pv/traps.c
xen/arch/x86/x86_64/asm-offsets.c
xen/arch/x86/x86_64/entry.S
xen/include/asm-x86/domain.h
xen/include/asm-x86/processor.h