Messages in this thread - First message in thread
- "Yan, Zheng"
- "Yan, Zheng"
- "Yan, Zheng"
- "Yan, Zheng"
- "Yan, Zheng"
- "Yan, Zheng"
- "Yan, Zheng"
- "Yan, Zheng"
- "Yan, Zheng"
- "Yan, Zheng"
- "Yan, Zheng"
- "Yan, Zheng"
- "Yan, Zheng"
- "Yan, Zheng"
- Peter Zijlstra
- Peter Zijlstra
- Stephane Eranian
| | | Date | Mon, 18 Jun 2012 11:06:03 +0800 | From | "Yan, Zheng" <> | Subject | Re: [PATCH V6 07/13] perf: Generic pci uncore device support |
| |
On 06/16/2012 12:02 AM, Peter Zijlstra wrote: > On Fri, 2012-06-15 at 14:31 +0800, Yan, Zheng wrote: >> @@ -305,6 +310,22 @@ struct intel_uncore_box *uncore_alloc_box(int cpu) >> static struct intel_uncore_box * >> uncore_pmu_to_box(struct intel_uncore_pmu *pmu, int cpu) >> { >> + static struct intel_uncore_box *box; >> + >> + box = *per_cpu_ptr(pmu->box, cpu); >> + if (box) >> + return box; >> + >> + raw_spin_lock(&uncore_box_lock); >> + list_for_each_entry(box, &pmu->box_list, list) { >> + if (box->phys_id == topology_physical_package_id(cpu)) { >> + atomic_inc(&box->refcnt); >> + *per_cpu_ptr(pmu->box, cpu) = box; >> + break; >> + } >> + } >> + raw_spin_unlock(&uncore_box_lock); >> + >> return *per_cpu_ptr(pmu->box, cpu); >> } > > So why can't we do that lookup from a hotplug notifier? > We can. But I personally prefer not to mix pci uncore initialization code with cpu hotplug notifier. Because pci hotplug and cpu hotplug are separate process, I'm not completely sure which one happens first.
Regards Yan, Zheng
| |