Messages in this thread | ![/](/images/icornerl.gif) | | Date | Tue, 15 Dec 2009 11:15:27 -0800 | From | Corey Ashford <> | Subject | Re: [PATCH 1/2] perf_event: Fix incorrect range check on cpu number |
| |
Ingo Molnar wrote: > * Corey Ashford <cjashfor@linux.vnet.ibm.com> wrote: > >> Paul Mackerras wrote: >>> On Tue, Dec 15, 2009 at 11:31:32AM +0100, Peter Zijlstra wrote: >>> >>>> On Tue, 2009-12-15 at 19:40 +1100, Paul Mackerras wrote: >>>>> It is quite legitimate for CPUs to be numbered sparsely, meaning that >>>>> it possible for an online CPU to have a number which is greater than >>>>> the total count of possible CPUs. >>>>> >>>>> Currently find_get_context() has a sanity check on the cpu number >>>>> where it checks it against num_possible_cpus(). This test can fail >>>>> for a legitimate cpu number if the cpu_possible_mask is sparsely >>>>> populated. >>>>> >>>>> This fixes the problem by checking the CPU number against >>>>> nr_cpumask_bits instead, since that is the appropriate check to ensure >>>>> that the cpu number is same to pass to cpu_isset() subsequently. >>>> Cute, do you actually have hardware that does this? >>> Yeah, Mikey ran across this on a POWER7 box here. >> Does the perf tool need to be fixed too? The "perf stat" tool, at >> least, has a "-a" switch that tells the tool to count the event on >> all cpus, and it does this by iterating over the number of cpus, >> 0..n, assuming they are all contiguous. > > Yes, see patch 2/2 of this series. > > Ingo
Oops! missed that. Thanks!
- Corey
| ![\](/images/icornerr.gif) |