diff options
author | H. Peter Anvin <[email protected]> | 2010-09-17 15:39:11 -0700 |
---|---|---|
committer | H. Peter Anvin <[email protected]> | 2010-09-17 15:39:11 -0700 |
commit | ea53069231f9317062910d6e772cca4ce93de8c8 (patch) | |
tree | 0a78cf38c59c92114473925c74a3cf86ed1e543b /tools/perf/util/trace-event-scripting.c | |
parent | bc83cccc761953f878088cdfa682de0970b5561f (diff) |
x86, hotplug: Use mwait to offline a processor, fix the legacy case
The code in native_play_dead() has a number of problems:
1. We should use MWAIT when available, to put ourselves into a deeper
sleep state.
2. We use the existence of CLFLUSH to determine if WBINVD is safe, but
that is totally bogus -- WBINVD is 486+, whereas CLFLUSH is a much
later addition.
3. We should do WBINVD inside the loop, just in case of something like
setting an A bit on page tables. Pointed out by Arjan van de Ven.
This code is based in part of a previous patch by Venki Pallipadi, but
unlike that patch this one keeps all the detection code local instead
of pre-caching a bunch of information. We're shutting down the CPU;
there is absolutely no hurry.
This patch moves all the code to C and deletes the global
wbinvd_halt() which is broken anyway.
Originally-by: Venkatesh Pallipadi <[email protected]>
Signed-off-by: H. Peter Anvin <[email protected]>
Reviewed-by: Arjan van de Ven <[email protected]>
Cc: Len Brown <[email protected]>
Cc: Venkatesh Pallipadi <[email protected]>
Cc: Peter Zijlstra <[email protected]>
LKML-Reference: <[email protected]>
Diffstat (limited to 'tools/perf/util/trace-event-scripting.c')
0 files changed, 0 insertions, 0 deletions