On Tue, Jul 15, 2014 at 04:56:58PM +0800, Zhang, Yanmin wrote: > > On 2014/7/14 21:27, Peter Zijlstra wrote: > >On Thu, Jul 03, 2014 at 11:36:38AM +0800, Chen LinX wrote: > >>From: "Chen LinX" <linx.z.c...@intel.com> > >> > >>when do cpu hotplug test and run below perf test together, pmu may access > >>freed perf_event > >> > >>while true; > >>do > >>perf record -a -g -f sleep 10 > >>rm perf.* > >>done > >> > >>the scenario is that when cpu offline firstly, the 'perf_cpu_notify' will > >>disable event on the > >>pmu and remove it from the context list. after cpu online, the perf app may > >>enable the event > >But it does not, right? > > Thanks for your kind comments. > It does, actually. > The major reason is application calls many syscall to start perf. > 1) perf_event_open => perf_install_in_context; > 2) perf_ioctl => perf_event_enable.
That still does not compute; but you're right, it does call perf_evlist__enable() which ends up calling IOC_ENABLE when there is no target (ie. things like perf -a), because we created things with .enable_on_exec=1. Similar for ->initial_delay cruft. > >>Signed-off-by: Yanmin Zhang <yanmin.zh...@intel.com> > >>Signed-off-by: Chen LinX <linx.z.c...@intel.com> > >Wrong SoB-chain, Yanmin didn't author this patch did he, seeing how From > >is you. And Yanmin didn't actually send me this patch either. > > Lin works with me in the same team. He is smart, but new in kernel upstream > > community. I debugged with him and he caught the root cause ahead of me. Well, then add a Reviewed-by from you or so, the double sob doesn't make sense. > The patch is good. No its not, its got an incomprehensible changelog, and its not at all clear why the perf_event_enable() path that doesn't use __perf_event_enable() is correct.
pgpYo_MgGuh1Z.pgp
Description: PGP signature