diff for duplicates of <20160826094800.GD13554@arm.com> diff --git a/a/1.txt b/N1/1.txt index e38a3e6..25ace94 100644 --- a/a/1.txt +++ b/N1/1.txt @@ -2,19 +2,19 @@ Mark, On Fri, Aug 19, 2016 at 03:25:14PM +0100, Mark Rutland wrote: > On Thu, Aug 18, 2016 at 01:24:38PM -0700, Yabin Cui wrote: -> > If the cpu pmu is using a percpu irq: ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? -> > ? ? ?? -> > 1. When a cpu is down, we should disable pmu irq on ? ? ? ? ? ? ? ? ? ? ? -> > that cpu. Otherwise, if the cpu is still down when ? ? ? ? ? ? ? ? ? ? ? ? -> > the last perf event is released, the pmu irq can't ? ? ? ? ? ? ? ? ? ? ? ? -> > be freed. Because the irq is still enabled on the ? ? ? ? ? ? ? ? ? ? ? ? -> > offlined cpu. And following perf_event_open() ? ? ? ? ? ? ? ? ? ? ? ? ? ? -> > syscalls will fail. ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? +> > If the cpu pmu is using a percpu irq: +> > +> > 1. When a cpu is down, we should disable pmu irq on +> > that cpu. Otherwise, if the cpu is still down when +> > the last perf event is released, the pmu irq can't +> > be freed. Because the irq is still enabled on the +> > offlined cpu. And following perf_event_open() +> > syscalls will fail. > > -> > 2. When a cpu is up, we should enable pmu irq on ? ? ? ? ? ? ? ? ? ? ? ? ? -> > that cpu. Otherwise, profiling tools can't sample ? ? ? ? ? ? ? ? ? ? ? ? -> > events on the cpu before all perf events are ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? -> > released, because pmu irq is disabled on that cpu. ? ? ? ? ? ? ? ? ? ? ? ? +> > 2. When a cpu is up, we should enable pmu irq on +> > that cpu. Otherwise, profiling tools can't sample +> > events on the cpu before all perf events are +> > released, because pmu irq is disabled on that cpu. > > It also looks like if a CPU is taken down while events are active, a > non-percpu interrupt will get migrated to another CPU, yet we don't diff --git a/a/content_digest b/N1/content_digest index b36e1e1..3566e2c 100644 --- a/a/content_digest +++ b/N1/content_digest @@ -1,28 +1,31 @@ "ref\0CALJ9ZPMixfGKspzaz+vTGQZG4EaQB5Futss-aC-Z+8oztVX9Nw@mail.gmail.com\0" "ref\020160819142514.GB28422@leverpostej\0" - "From\0will.deacon@arm.com (Will Deacon)\0" - "Subject\0[PATCH] arm/perf: Fix pmu percpu irq handling at hotplug.\0" + "From\0Will Deacon <will.deacon@arm.com>\0" + "Subject\0Re: [PATCH] arm/perf: Fix pmu percpu irq handling at hotplug.\0" "Date\0Fri, 26 Aug 2016 10:48:00 +0100\0" - "To\0linux-arm-kernel@lists.infradead.org\0" + "To\0Mark Rutland <mark.rutland@arm.com>\0" + "Cc\0Yabin Cui <yabinc@google.com>" + linux-kernel@vger.kernel.org + " linux-arm-kernel@lists.infradead.org\0" "\00:1\0" "b\0" "Mark,\n" "\n" "On Fri, Aug 19, 2016 at 03:25:14PM +0100, Mark Rutland wrote:\n" "> On Thu, Aug 18, 2016 at 01:24:38PM -0700, Yabin Cui wrote:\n" - "> > If the cpu pmu is using a percpu irq: ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?\n" - "> > ? ? ??\n" - "> > 1. When a cpu is down, we should disable pmu irq on ? ? ? ? ? ? ? ? ? ? ?\n" - "> > that cpu. Otherwise, if the cpu is still down when ? ? ? ? ? ? ? ? ? ? ? ?\n" - "> > the last perf event is released, the pmu irq can't ? ? ? ? ? ? ? ? ? ? ? ?\n" - "> > be freed. Because the irq is still enabled on the ? ? ? ? ? ? ? ? ? ? ? ?\n" - "> > offlined cpu. And following perf_event_open() ? ? ? ? ? ? ? ? ? ? ? ? ? ?\n" - "> > syscalls will fail. ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?\n" + "> > If the cpu pmu is using a percpu irq: \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240\n" + "> > \302\240 \302\240 \302\240\302\240\n" + "> > 1. When a cpu is down, we should disable pmu irq on \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240\n" + "> > that cpu. Otherwise, if the cpu is still down when \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240\n" + "> > the last perf event is released, the pmu irq can't \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240\n" + "> > be freed. Because the irq is still enabled on the \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240\n" + "> > offlined cpu. And following perf_event_open() \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240\n" + "> > syscalls will fail. \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240\n" "> >\n" - "> > 2. When a cpu is up, we should enable pmu irq on ? ? ? ? ? ? ? ? ? ? ? ? ?\n" - "> > that cpu. Otherwise, profiling tools can't sample ? ? ? ? ? ? ? ? ? ? ? ?\n" - "> > events on the cpu before all perf events are ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?\n" - "> > released, because pmu irq is disabled on that cpu. ? ? ? ? ? ? ? ? ? ? ? ?\n" + "> > 2. When a cpu is up, we should enable pmu irq on \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240\n" + "> > that cpu. Otherwise, profiling tools can't sample \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240\n" + "> > events on the cpu before all perf events are \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240\n" + "> > released, because pmu irq is disabled on that cpu. \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240 \302\240\n" "> \n" "> It also looks like if a CPU is taken down while events are active, a\n" "> non-percpu interrupt will get migrated to another CPU, yet we don't\n" @@ -55,4 +58,4 @@ "\n" Will -c714af33068774ab0cd3d728105295728a8c76be10e2ea2be92488076d4ebd75 +564ce0073ec6a83a880b36c43097cc20492d73f423aa2d788c21998a5d8c999a
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.