Messages in this thread |  | | From | Shameerali Kolothum Thodi <> | Subject | RE: [PATCH v3 2/3] perf: add arm64 smmuv3 pmu driver | Date | Wed, 3 Oct 2018 11:28:19 +0000 |
| |
> -----Original Message----- > From: Robin Murphy [mailto:robin.murphy@arm.com] > Sent: 03 October 2018 11:37 > To: Shameerali Kolothum Thodi <shameerali.kolothum.thodi@huawei.com>; > lorenzo.pieralisi@arm.com > Cc: will.deacon@arm.com; mark.rutland@arm.com; Guohanjun (Hanjun Guo) > <guohanjun@huawei.com>; John Garry <john.garry@huawei.com>; > pabba@codeaurora.org; vkilari@codeaurora.org; rruigrok@codeaurora.org; > linux-acpi@vger.kernel.org; linux-kernel@vger.kernel.org; linux-arm- > kernel@lists.infradead.org; Linuxarm <linuxarm@huawei.com>; > neil.m.leeder@gmail.com > Subject: Re: [PATCH v3 2/3] perf: add arm64 smmuv3 pmu driver > > On 21/09/18 16:08, Shameer Kolothum wrote: > [...] > > + > > + err = cpuhp_state_add_instance_nocalls(cpuhp_state_num, > > + &smmu_pmu->node); > > In theory a hotplug event could happen as soon as the instance is > registered... > > > + if (err) { > > + dev_err(dev, "Error %d registering hotplug, PMU @%pa\n", > > + err, &res_0->start); > > + return err; > > + } > > + > > + /* Pick one CPU to be the preferred one to use */ > > + smmu_pmu->on_cpu = get_cpu(); > > ...so this looks too late, i.e. a race here can result in a bogus call > to perf_pmu_migrate_context() with an uninitialised pmu.
Thanks Robin. I will reorder them.
Shameer
> Robin. > > + WARN_ON(irq_set_affinity(smmu_pmu->irq, cpumask_of(smmu_pmu- > >on_cpu))); > > + > > + err = perf_pmu_register(&smmu_pmu->pmu, name, -1); > > + if (err) { > > + dev_err(dev, "Error %d registering PMU @%pa\n", > > + err, &res_0->start); > > + goto out_unregister; > > + } > > + > > + put_cpu();
|  |