summaryrefslogtreecommitdiffstats
path: root/drivers/lguest/x86
diff options
context:
space:
mode:
authorSuresh Siddha <suresh.b.siddha@intel.com>2012-08-24 14:13:00 -0700
committerH. Peter Anvin <hpa@linux.intel.com>2012-09-18 15:52:08 -0700
commit841e3604d35aa70d399146abdc526d8c89a2c2f5 (patch)
tree80d2266c21e5ae0b5f4097db3ee71888fc92bec1 /drivers/lguest/x86
parent9c1c3fac53378c9782c18f80107965578d7b7167 (diff)
downloadop-kernel-dev-841e3604d35aa70d399146abdc526d8c89a2c2f5.zip
op-kernel-dev-841e3604d35aa70d399146abdc526d8c89a2c2f5.tar.gz
x86, fpu: always use kernel_fpu_begin/end() for in-kernel FPU usage
use kernel_fpu_begin/end() instead of unconditionally accessing cr0 and saving/restoring just the few used xmm/ymm registers. This has some advantages like: * If the task's FPU state is already active, then kernel_fpu_begin() will just save the user-state and avoiding the read/write of cr0. In general, cr0 accesses are much slower. * Manual save/restore of xmm/ymm registers will affect the 'modified' and the 'init' optimizations brought in the by xsaveopt/xrstor infrastructure. * Foward compatibility with future vector register extensions will be a problem if the xmm/ymm registers are manually saved and restored (corrupting the extended state of those vector registers). With this patch, there was no significant difference in the xor throughput using AVX, measured during boot. Signed-off-by: Suresh Siddha <suresh.b.siddha@intel.com> Link: http://lkml.kernel.org/r/1345842782-24175-5-git-send-email-suresh.b.siddha@intel.com Cc: Jim Kukunas <james.t.kukunas@linux.intel.com> Cc: NeilBrown <neilb@suse.de> Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
Diffstat (limited to 'drivers/lguest/x86')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud