Thread (38 messages) 38 messages, 5 authors, 2016-02-29
STALE3747d

[PATCH v13 01/20] ARM64: Move PMU register related defines to asm/perf_event.h

From: Marc Zyngier <hidden>
Date: 2016-02-29 15:53:13
Also in: kvm, kvmarm

On 29/02/16 15:41, Will Deacon wrote:
On Mon, Feb 29, 2016 at 01:59:49PM +0000, Marc Zyngier wrote:
quoted
On 29/02/16 13:07, Marc Zyngier wrote:
quoted
On 25/02/16 02:02, Shannon Zhao wrote:
quoted
On 2016/2/25 1:52, Will Deacon wrote:
quoted
On Wed, Feb 24, 2016 at 01:08:21PM +0800, Shannon Zhao wrote:
quoted
From: Shannon Zhao <redacted>

To use the ARMv8 PMU related register defines from the KVM code, we move
the relevant definitions to asm/perf_event.h header file and rename them
with prefix ARMV8_PMU_.

Signed-off-by: Anup Patel <redacted>
Signed-off-by: Shannon Zhao <redacted>
Acked-by: Marc Zyngier <redacted>
Reviewed-by: Andrew Jones <redacted>
---
 arch/arm64/include/asm/perf_event.h | 35 +++++++++++++++++++
 arch/arm64/kernel/perf_event.c      | 68 ++++++++++---------------------------
 2 files changed, 52 insertions(+), 51 deletions(-)
Looks fine to me, but we're going to get some truly horrible conflicts
in -next.

I'm open to suggestions on the best way to handle this, but one way
would be:

  1. Duplicate all the #defines privately in KVM (queue via kvm tree)
This way seems not proper I think.
quoted
  2. Rebase this patch onto my perf/updates branch [1] (queue via me)
While to this series, it really relies on the perf_event.h to compile
and test, so maybe for KVM-ARM and KVM maintainers it's not proper.
quoted
  3. Patch at -rc1 dropping the #defines from (1) and moving to the new
     perf_event.h stuff
I vote for this way. Since the patch in [1] is small and nothing else
relies on them, I think it would be simple to rebase them onto this series.
quoted
Thoughts?
Anyway, there are only 3 lines which have conflicts. I'm not sure
whether we could handle this when we merge them.
I think you're missing the point:

- We want both the arm64 perf and KVM trees to be easy to merge
- The conflicts are not that simple to resolve
- We want these conflicts to be solved before it hits Linus' tree

With that in mind, here's what I'm suggesting we merge as a first patch:

https://git.kernel.org/cgit/linux/kernel/git/kvmarm/kvmarm.git/commit/?h=queue&id=2029b4b02691ec6ebba3d281068e783353d7e108

Once this and the perf/updates branch are merged, we can add one last
patch reverting this hack and actually doing the renaming work (Will has
posted a resolution for most of the new things).
For the record, here's the patch I propose we merge once everything gets
into mainline:

https://git.kernel.org/cgit/linux/kernel/git/kvmarm/kvmarm.git/commit/?h=queue&id=ba1e09b2f2cd2d5cc5cfdb76e96460aee1bd9482
I just spotted a bug in my perf/updates branch, so this might need to
change ever so slightly. Easiest thing is probably to cook something
against -next once we're nearer the merge window and things have settled
down.
Amusingly enough, it looks like the KVM code suffers from the exact same
bug (PMCR_EL0.LC is outside of the writeable mask).

I'll fix the KVM side, and keep the cleanup patch on the back burner.

Thanks for the heads up,

	M.
-- 
Jazz is not dead. It just smells funny...
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help