xen/x86: avoid updating TLS descriptors if they haven't changed
authorDavid Vrabel <david.vrabel@citrix.com>
Mon, 9 Jul 2012 10:39:08 +0000 (11:39 +0100)
committerKonrad Rzeszutek Wilk <konrad.wilk@oracle.com>
Thu, 19 Jul 2012 19:51:57 +0000 (15:51 -0400)
commit1c32cdc633c96a14cca35de9db19338354c25111
tree6a1e9df672d3aa8794bf197037be01ef1b34383c
parent59290362da587ce2e6d2f4a7f85e362fa2d7fd39
xen/x86: avoid updating TLS descriptors if they haven't changed

When switching tasks in a Xen PV guest, avoid updating the TLS
descriptors if they haven't changed.  This improves the speed of
context switches by almost 10% as much of the time the descriptors are
the same or only one is different.

The descriptors written into the GDT by Xen are modified from the
values passed in the update_descriptor hypercall so we keep shadow
copies of the three TLS descriptors to compare against.

lmbench3 test     Before  After  Improvement
--------------------------------------------
lat_ctx -s 32 24   7.19    6.52  9%
lat_pipe          12.56   11.66  7%

Signed-off-by: David Vrabel <david.vrabel@citrix.com>
Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
arch/x86/xen/enlighten.c