]> xenbits.xensource.com Git - people/liuw/libxenctrl-split/xen.git/commit
x86: move syscall trampolines off the stack
authorJan Beulich <jbeulich@suse.com>
Fri, 22 May 2015 08:45:43 +0000 (10:45 +0200)
committerJan Beulich <jbeulich@suse.com>
Fri, 22 May 2015 08:45:43 +0000 (10:45 +0200)
commit7a66ac8d1633297be79fefbf920f0e02c71041d3
tree0d8ec487e324a281f687f57263104cadcf1ad028
parent38276296f21200bf7faf66012da24c52e7f053d2
x86: move syscall trampolines off the stack

This is needed as stacks are going to become non-executable. Use
separate stub pages (shared among suitable CPUs on the same node)
instead.

Stub areas (currently 128 bytes each) are being split into two parts -
a fixed usage one (the syscall ones) and dynamically usable space,
which will be used by subsequent changes to hold dynamically generated
code during instruction eumlation.

While sharing physical pages among certain CPUs on the same node, for
now the virtual mappings get established in distinct pages for each
CPU. This isn't a strict requirement, but simplifies VA space
management for this initial implementation: Sharing VA space would
require additional tracking of which areas are currently in use. If
the VA and/or TLB overhead turned out to be a problem, such extra code
could easily be added.

Signed-off-by: Jan Beulich <jbeulich@suse.com>
Reviewed-by: Andrew Cooper <andrew.cooper3@citrix.com>
xen/arch/x86/setup.c
xen/arch/x86/smpboot.c
xen/arch/x86/x86_64/compat/entry.S
xen/arch/x86/x86_64/entry.S
xen/arch/x86/x86_64/traps.c
xen/arch/x86/xen.lds.S
xen/include/asm-x86/config.h
xen/include/asm-x86/page.h
xen/include/asm-x86/processor.h
xen/include/asm-x86/x86_64/page.h