summaryrefslogtreecommitdiff
path: root/arch/x86/ia32/ia32entry.S
diff options
context:
space:
mode:
authorH. Peter Anvin <hpa@linux.intel.com>2012-09-21 12:43:15 -0700
committerH. Peter Anvin <hpa@linux.intel.com>2012-09-21 12:45:27 -0700
commit5e88353d8b5f483bc1c873ad24ac2b59a6b66c73 (patch)
treef5651873e535e4feabea0da5d253d0326b4bd029 /arch/x86/ia32/ia32entry.S
parent40d3cd6695014bf3c44e2ca66b610b18acaf923d (diff)
downloadlwn-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