summaryrefslogtreecommitdiffstats
path: root/arch/x86/kernel/early-quirks.c
diff options
context:
space:
mode:
authorStephane Eranian <eranian@google.com>2010-01-18 10:58:01 +0200
committerIngo Molnar <mingo@elte.hu>2010-01-29 09:01:33 +0100
commit1da53e023029c067ba1277a33038c65d6e4c99b3 (patch)
treec15609bfcf99a1021dc3234536004ad3775ab1e0 /arch/x86/kernel/early-quirks.c
parente0e53db6133c32964fd17f20b17073a402f07ed3 (diff)
downloadtalos-op-linux-1da53e023029c067ba1277a33038c65d6e4c99b3.tar.gz
talos-op-linux-1da53e023029c067ba1277a33038c65d6e4c99b3.zip
perf_events, x86: Improve x86 event scheduling
This patch improves event scheduling by maximizing the use of PMU registers regardless of the order in which events are created in a group. The algorithm takes into account the list of counter constraints for each event. It assigns events to counters from the most constrained, i.e., works on only one counter, to the least constrained, i.e., works on any counter. Intel Fixed counter events and the BTS special event are also handled via this algorithm which is designed to be fairly generic. The patch also updates the validation of an event to use the scheduling algorithm. This will cause early failure in perf_event_open(). The 2nd version of this patch follows the model used by PPC, by running the scheduling algorithm and the actual assignment separately. Actual assignment takes place in hw_perf_enable() whereas scheduling is implemented in hw_perf_group_sched_in() and x86_pmu_enable(). Signed-off-by: Stephane Eranian <eranian@google.com> [ fixup whitespace and style nits as well as adding is_x86_event() ] Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl> Cc: Mike Galbraith <efault@gmx.de> Cc: Paul Mackerras <paulus@samba.org> Cc: Arnaldo Carvalho de Melo <acme@redhat.com> Cc: Frederic Weisbecker <fweisbec@gmail.com> LKML-Reference: <4b5430c6.0f975e0a.1bf9.ffff85fe@mx.google.com> Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'arch/x86/kernel/early-quirks.c')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud