Re: [patch] faster vgetcpu using sidt

From: dean gaudet
Date: Mon Jan 08 2007 - 19:26:26 EST


On Sat, 6 Jan 2007, dean gaudet wrote:

> below is a patch which improves vgetcpu latency on all x86_64
> implementations i've tested.
>
> Nathan Laredo pointed out the sgdt/sidt/sldt instructions are
> userland-accessible and we could use their limit fields to tuck away a few
> bits of per-cpu information.
...

i got a hold of a p4 (model 4) and ran the timings there:

baseline patched
no cache cache
k8 pre-revF 21 14 16
k8 revF 31 14 17
core2 38 12 17
p4 49 24 37

not as good as i hoped... i'll have to put the cache back in just for the
p4... so i'll respin my patch with the cache back in place.

another thought occured to me -- 64-bit processes can't actually use their
LDT can they? in that case i could probably use sldt (faster than sidt)
for 64-bit procs and fallback to sidt for 32-bit emulation (which doesn't
exist for this vsyscall yet anyhow).

let me know if you have any other feedback.

thanks
-dean
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/