diff options
author | H. Peter Anvin <hpa@linux.intel.com> | 2012-09-21 12:43:15 -0700 |
---|---|---|
committer | H. Peter Anvin <hpa@linux.intel.com> | 2012-09-21 12:45:27 -0700 |
commit | 5e88353d8b5f483bc1c873ad24ac2b59a6b66c73 (patch) | |
tree | f5651873e535e4feabea0da5d253d0326b4bd029 /arch/x86/ia32/ia32entry.S | |
parent | 40d3cd6695014bf3c44e2ca66b610b18acaf923d (diff) | |
download | lwn-5e88353d8b5f483bc1c873ad24ac2b59a6b66c73.tar.gz lwn-5e88353d8b5f483bc1c873ad24ac2b59a6b66c73.zip |
x86, smap: Reduce the SMAP overhead for signal handling
Signal handling contains a bunch of accesses to individual user space
items, which causes an excessive number of STAC and CLAC
instructions. Instead, let get/put_user_try ... get/put_user_catch()
contain the STAC and CLAC instructions.
This means that get/put_user_try no longer nests, and furthermore that
it is no longer legal to use user space access functions other than
__get/put_user_ex() inside those blocks. However, these macros are
x86-specific anyway and are only used in the signal-handling paths; a
simple reordering of moving the larger subroutine calls out of the
try...catch blocks resolves that problem.
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
Link: http://lkml.kernel.org/r/1348256595-29119-12-git-send-email-hpa@linux.intel.com
Diffstat (limited to 'arch/x86/ia32/ia32entry.S')
0 files changed, 0 insertions, 0 deletions