lkml.org 
[lkml]   [2012]   [Jun]   [17]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [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



\
 
 \ /
  Last update: 2012-06-18 05:41    [from the cache]
©2003-2014 Jasper Spaans. Advertise on this site