Re: [PATCH V6 07/13] perf: Generic pci uncore device support

From: Yan, Zheng
Date: Sun Jun 17 2012 - 23:06:00 EST


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

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/