[PATCH v6 1/2] perf,kvm/powerpc: Add kvm_perf.h for powerpc

Subsystems: kernel virtual machine for powerpc (kvm/powerpc), linux for powerpc (32-bit and 64-bit), the rest

STALE3984d

9 messages, 3 authors, 2015-09-08 · open the first message on its own page

[PATCH v6 1/2] perf,kvm/powerpc: Add kvm_perf.h for powerpc

From: Hemant Kumar <hidden>
Date: 2015-08-31 06:48:21

To analyze the exit events with perf, we need to export the related
tracepoints through kvm_perf.h. kvm_perf.h is to be added in the
arch/powerpc directory, where the kvm tracepoints needed to trace the
KVM exit events are defined.

To indicate that the tracepoints are book3s_hv specific, suffix _HV has
been added to the tracepoint macros. Additionally, we also need to
define the generic macros (albeit, with null strings) suffix, because
the preprocessor looks for them in the generic code in builtin-kvm.c.

Signed-off-by: Hemant Kumar <redacted>
---
Changes since v5:
- Moved back the tracepoint definitions from kvm_perf_book3s.h to kvm_perf.h

 arch/powerpc/include/uapi/asm/kvm_perf.h | 21 +++++++++++++++++++++
 1 file changed, 21 insertions(+)
 create mode 100644 arch/powerpc/include/uapi/asm/kvm_perf.h
diff --git a/arch/powerpc/include/uapi/asm/kvm_perf.h b/arch/powerpc/include/uapi/asm/kvm_perf.h
new file mode 100644
index 0000000..68f105e
--- /dev/null
+++ b/arch/powerpc/include/uapi/asm/kvm_perf.h
@@ -0,0 +1,21 @@
+#ifndef _ASM_POWERPC_KVM_PERF_H
+#define _ASM_POWERPC_KVM_PERF_H
+
+#include <asm/kvm.h>
+
+#define DECODE_STR_LEN 40
+
+#define VCPU_ID "vcpu_id"
+
+/* For Book3S_HV machines */
+#define KVM_ENTRY_TRACE_HV "kvm_hv:kvm_guest_enter"
+#define KVM_EXIT_TRACE_HV "kvm_hv:kvm_guest_exit"
+#define KVM_EXIT_REASON_HV "trap"
+
+/* This is to shut the compiler up */
+#define KVM_ENTRY_TRACE ""
+#define KVM_EXIT_TRACE ""
+#define KVM_EXIT_REASON ""
+
+
+#endif /* _ASM_POWERPC_KVM_PERF_H */
-- 
1.9.3

[PATCH v6 2/2] perf,kvm/powerpc: Add hcall related info to kvm_perf.h

From: Hemant Kumar <hidden>
Date: 2015-08-31 06:48:14

To analyze the hcalls with perf kvm stat, we need the hcall related
tracepoint information to be exported.

This patch adds hcall tracepoints "kvm_hv:kvm_hcall_enter" and
"kvm_hv:kvm_hcall_exit" to kvm_perf.h. So, perf will now know to look
for these tracepoints if "perf kvm stat record" is invoked to collect
guest hcall statistics.

Signed-off-by: Hemant Kumar <redacted>
---
 arch/powerpc/include/uapi/asm/kvm_perf.h | 4 ++++
 1 file changed, 4 insertions(+)
diff --git a/arch/powerpc/include/uapi/asm/kvm_perf.h b/arch/powerpc/include/uapi/asm/kvm_perf.h
index 68f105e..2af6290 100644
--- a/arch/powerpc/include/uapi/asm/kvm_perf.h
+++ b/arch/powerpc/include/uapi/asm/kvm_perf.h
@@ -12,6 +12,10 @@
 #define KVM_EXIT_TRACE_HV "kvm_hv:kvm_guest_exit"
 #define KVM_EXIT_REASON_HV "trap"
 
+#define KVM_HCALL_ENTRY_TRACE_HV "kvm_hv:kvm_hcall_enter"
+#define KVM_HCALL_EXIT_TRACE_HV "kvm_hv:kvm_hcall_exit"
+#define KVM_HCALL_REASON_HV "req"
+
 /* This is to shut the compiler up */
 #define KVM_ENTRY_TRACE ""
 #define KVM_EXIT_TRACE ""
-- 
1.9.3

Re: [PATCH v6 1/2] perf,kvm/powerpc: Add kvm_perf.h for powerpc

From: Arnaldo Carvalho de Melo <acme@kernel.org>
Date: 2015-08-31 20:13:06

Em Mon, Aug 31, 2015 at 12:18:00PM +0530, Hemant Kumar escreveu:
To analyze the exit events with perf, we need to export the related
tracepoints through kvm_perf.h. kvm_perf.h is to be added in the
arch/powerpc directory, where the kvm tracepoints needed to trace the
KVM exit events are defined.

To indicate that the tracepoints are book3s_hv specific, suffix _HV has
been added to the tracepoint macros. Additionally, we also need to
define the generic macros (albeit, with null strings) suffix, because
the preprocessor looks for them in the generic code in builtin-kvm.c.

Signed-off-by: Hemant Kumar <redacted>
humm, there are two patchkits, this one with two patches, the other with
3, this one for the kernel, the other one for tools/, but for the tools/
part to work, does this one needs to be applied first?

Should I try to process the 5 together, applying thest two first?

I see there are no acks from powerpc arch maintainers, how should we
proceed here? If there are no problems with the arch bits, and if it is
just to enable the tooling part, again, should I process the 5 as just
one series?

- Arnaldo
quoted hunk
---
Changes since v5:
- Moved back the tracepoint definitions from kvm_perf_book3s.h to kvm_perf.h

 arch/powerpc/include/uapi/asm/kvm_perf.h | 21 +++++++++++++++++++++
 1 file changed, 21 insertions(+)
 create mode 100644 arch/powerpc/include/uapi/asm/kvm_perf.h
diff --git a/arch/powerpc/include/uapi/asm/kvm_perf.h b/arch/powerpc/include/uapi/asm/kvm_perf.h
new file mode 100644
index 0000000..68f105e
--- /dev/null
+++ b/arch/powerpc/include/uapi/asm/kvm_perf.h
@@ -0,0 +1,21 @@
+#ifndef _ASM_POWERPC_KVM_PERF_H
+#define _ASM_POWERPC_KVM_PERF_H
+
+#include <asm/kvm.h>
+
+#define DECODE_STR_LEN 40
+
+#define VCPU_ID "vcpu_id"
+
+/* For Book3S_HV machines */
+#define KVM_ENTRY_TRACE_HV "kvm_hv:kvm_guest_enter"
+#define KVM_EXIT_TRACE_HV "kvm_hv:kvm_guest_exit"
+#define KVM_EXIT_REASON_HV "trap"
+
+/* This is to shut the compiler up */
+#define KVM_ENTRY_TRACE ""
+#define KVM_EXIT_TRACE ""
+#define KVM_EXIT_REASON ""
+
+
+#endif /* _ASM_POWERPC_KVM_PERF_H */
-- 
1.9.3

Re: [PATCH v6 1/2] perf,kvm/powerpc: Add kvm_perf.h for powerpc

From: Hemant Kumar <hidden>
Date: 2015-09-01 06:49:05

(cc'ing Michael Ellerman with this reply)

Hi Arnaldo,

On 09/01/2015 01:43 AM, Arnaldo Carvalho de Melo wrote:
Em Mon, Aug 31, 2015 at 12:18:00PM +0530, Hemant Kumar escreveu:
quoted
To analyze the exit events with perf, we need to export the related
tracepoints through kvm_perf.h. kvm_perf.h is to be added in the
arch/powerpc directory, where the kvm tracepoints needed to trace the
KVM exit events are defined.

To indicate that the tracepoints are book3s_hv specific, suffix _HV has
been added to the tracepoint macros. Additionally, we also need to
define the generic macros (albeit, with null strings) suffix, because
the preprocessor looks for them in the generic code in builtin-kvm.c.

Signed-off-by: Hemant Kumar <redacted>
humm, there are two patchkits, this one with two patches, the other with
3, this one for the kernel, the other one for tools/, but for the tools/
part to work, does this one needs to be applied first?

Should I try to process the 5 together, applying thest two first?
Yes, this patchset needs to be applied before applying the other patchset,
since there is a direct dependency on these two for the tooling part to
work.
I see there are no acks from powerpc arch maintainers, how should we
proceed here? If there are no problems with the arch bits, and if it is
just to enable the tooling part, again, should I process the 5 as just
one series?
The reason to split the earlier patchset into two was to separate the
tooling/perf/ and arch/powerpc/ side patches, as asked by Michael..

Here is the link to that discussion :
http://www.mail-archive.com/linuxppc-dev@lists.ozlabs.org/msg86916.html

If Michael is ok with the patches, you can process all the 5 patches 
together. Michael?

- Arnaldo
quoted
---
Changes since v5:
- Moved back the tracepoint definitions from kvm_perf_book3s.h to kvm_perf.h

  arch/powerpc/include/uapi/asm/kvm_perf.h | 21 +++++++++++++++++++++
  1 file changed, 21 insertions(+)
  create mode 100644 arch/powerpc/include/uapi/asm/kvm_perf.h
diff --git a/arch/powerpc/include/uapi/asm/kvm_perf.h b/arch/powerpc/include/uapi/asm/kvm_perf.h
new file mode 100644
index 0000000..68f105e
--- /dev/null
+++ b/arch/powerpc/include/uapi/asm/kvm_perf.h
@@ -0,0 +1,21 @@
+#ifndef _ASM_POWERPC_KVM_PERF_H
+#define _ASM_POWERPC_KVM_PERF_H
+
+#include <asm/kvm.h>
+
+#define DECODE_STR_LEN 40
+
+#define VCPU_ID "vcpu_id"
+
+/* For Book3S_HV machines */
+#define KVM_ENTRY_TRACE_HV "kvm_hv:kvm_guest_enter"
+#define KVM_EXIT_TRACE_HV "kvm_hv:kvm_guest_exit"
+#define KVM_EXIT_REASON_HV "trap"
+
+/* This is to shut the compiler up */
+#define KVM_ENTRY_TRACE ""
+#define KVM_EXIT_TRACE ""
+#define KVM_EXIT_REASON ""
+
+
+#endif /* _ASM_POWERPC_KVM_PERF_H */
-- 
1.9.3
_______________________________________________
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev
-- 
Thanks,
Hemant Kumar

Re: [PATCH v6 1/2] perf,kvm/powerpc: Add kvm_perf.h for powerpc

From: Arnaldo Carvalho de Melo <acme@kernel.org>
Date: 2015-09-04 20:51:51

Em Tue, Sep 01, 2015 at 12:18:47PM +0530, Hemant Kumar escreveu:
quoted
Should I try to process the 5 together, applying thest two first?
 
Yes, this patchset needs to be applied before applying the other patchset,
since there is a direct dependency on these two for the tooling part to
work.
 
quoted
I see there are no acks from powerpc arch maintainers, how should we
proceed here? If there are no problems with the arch bits, and if it is
just to enable the tooling part, again, should I process the 5 as just
one series?
 
The reason to split the earlier patchset into two was to separate the
tooling/perf/ and arch/powerpc/ side patches, as asked by Michael..
 
Here is the link to that discussion :
http://www.mail-archive.com/linuxppc-dev@lists.ozlabs.org/msg86916.html
 
If Michael is ok with the patches, you can process all the 5 patches
together. Michael?
Michael?

- Arnaldo

Re: [PATCH v6 1/2] perf,kvm/powerpc: Add kvm_perf.h for powerpc

From: Michael Ellerman <mpe@ellerman.id.au>
Date: 2015-09-07 05:11:00

On Fri, 2015-09-04 at 17:51 -0300, Arnaldo Carvalho de Melo wrote:
Em Tue, Sep 01, 2015 at 12:18:47PM +0530, Hemant Kumar escreveu:
quoted
quoted
Should I try to process the 5 together, applying thest two first?
 
quoted
Yes, this patchset needs to be applied before applying the other patchset,
since there is a direct dependency on these two for the tooling part to
work.
 
quoted
quoted
I see there are no acks from powerpc arch maintainers, how should we
proceed here? If there are no problems with the arch bits, and if it is
just to enable the tooling part, again, should I process the 5 as just
one series?
 
quoted
The reason to split the earlier patchset into two was to separate the
tooling/perf/ and arch/powerpc/ side patches, as asked by Michael..
 
quoted
Here is the link to that discussion :
http://www.mail-archive.com/linuxppc-dev@lists.ozlabs.org/msg86916.html
 
quoted
If Michael is ok with the patches, you can process all the 5 patches
together. Michael?
Michael?
I'm not particularly happy with it.

Can we at least remove this hunk from the uapi header:

+/* This is to shut the compiler up */
+#define KVM_ENTRY_TRACE ""
+#define KVM_EXIT_TRACE ""
+#define KVM_EXIT_REASON ""


cheers

Re: [PATCH v6 1/2] perf,kvm/powerpc: Add kvm_perf.h for powerpc

From: Hemant Kumar <hidden>
Date: 2015-09-08 04:57:02


On 09/07/2015 10:40 AM, Michael Ellerman wrote:
On Fri, 2015-09-04 at 17:51 -0300, Arnaldo Carvalho de Melo wrote:
quoted
Em Tue, Sep 01, 2015 at 12:18:47PM +0530, Hemant Kumar escreveu:
quoted
quoted
Should I try to process the 5 together, applying thest two first?
  
quoted
Yes, this patchset needs to be applied before applying the other patchset,
since there is a direct dependency on these two for the tooling part to
work.
  
quoted
quoted
I see there are no acks from powerpc arch maintainers, how should we
proceed here? If there are no problems with the arch bits, and if it is
just to enable the tooling part, again, should I process the 5 as just
one series?
  
quoted
The reason to split the earlier patchset into two was to separate the
tooling/perf/ and arch/powerpc/ side patches, as asked by Michael..
  
quoted
Here is the link to that discussion :
http://www.mail-archive.com/linuxppc-dev@lists.ozlabs.org/msg86916.html
  
quoted
If Michael is ok with the patches, you can process all the 5 patches
together. Michael?
Michael?
I'm not particularly happy with it.

Can we at least remove this hunk from the uapi header:

+/* This is to shut the compiler up */
+#define KVM_ENTRY_TRACE ""
+#define KVM_EXIT_TRACE ""
+#define KVM_EXIT_REASON ""
Agreed, I didn't like this too, but I kept this because of the generic
perf userspace code that looks for KVM_{ENTRY,EXIT}_TRACE and
KVM_EXIT_REASON. We can remove this and put this hunk in the
userspace side.

Arnaldo,
Can we remove the dependency on uapi altogether (also suggested
by Scott) because it doesn't seem to fulfill much purpose? Rather,
hardcode the events in the userspace completely (since, tracepoint
event names are unlikely to change) ? Some of what is being done
by x86 already in kvm-stat.c where its defining kvm_events_tp[] and
its not using the macros, rather, the tracepoints directly. Macros are
only being used in builtin-kvm.c where the tracepoint names are
matched with KVM_{ENTRY,EXIT}_TRACE and when we are looking
for the key KVM_EXIT_REASON.

-- 
Thanks,
Hemant Kumar

Re: [PATCH v6 1/2] perf,kvm/powerpc: Add kvm_perf.h for powerpc

From: Michael Ellerman <mpe@ellerman.id.au>
Date: 2015-09-08 08:33:51

On Tue, 2015-09-08 at 10:26 +0530, Hemant Kumar wrote:
On 09/07/2015 10:40 AM, Michael Ellerman wrote:
quoted
On Fri, 2015-09-04 at 17:51 -0300, Arnaldo Carvalho de Melo wrote:
quoted
Em Tue, Sep 01, 2015 at 12:18:47PM +0530, Hemant Kumar escreveu:
quoted
quoted
Should I try to process the 5 together, applying thest two first?
  
quoted
Yes, this patchset needs to be applied before applying the other patchset,
since there is a direct dependency on these two for the tooling part to
work.
  
quoted
quoted
I see there are no acks from powerpc arch maintainers, how should we
proceed here? If there are no problems with the arch bits, and if it is
just to enable the tooling part, again, should I process the 5 as just
one series?
  
quoted
The reason to split the earlier patchset into two was to separate the
tooling/perf/ and arch/powerpc/ side patches, as asked by Michael..
  
quoted
Here is the link to that discussion :
http://www.mail-archive.com/linuxppc-dev@lists.ozlabs.org/msg86916.html
  
quoted
If Michael is ok with the patches, you can process all the 5 patches
together. Michael?
Michael?
I'm not particularly happy with it.

Can we at least remove this hunk from the uapi header:

+/* This is to shut the compiler up */
+#define KVM_ENTRY_TRACE ""
+#define KVM_EXIT_TRACE ""
+#define KVM_EXIT_REASON ""
Agreed, I didn't like this too, but I kept this because of the generic
perf userspace code that looks for KVM_{ENTRY,EXIT}_TRACE and
KVM_EXIT_REASON. We can remove this and put this hunk in the
userspace side.
Yes please.
Arnaldo,
Can we remove the dependency on uapi altogether (also suggested
by Scott) because it doesn't seem to fulfill much purpose? Rather,
hardcode the events in the userspace completely (since, tracepoint
event names are unlikely to change) ? Some of what is being done
by x86 already in kvm-stat.c where its defining kvm_events_tp[] and
its not using the macros, rather, the tracepoints directly. Macros are
only being used in builtin-kvm.c where the tracepoint names are
matched with KVM_{ENTRY,EXIT}_TRACE and when we are looking
for the key KVM_EXIT_REASON.
That would certainly make me a lot happier with it.

Also think about what would happen if the tracepoint names *did* change. The
perf code would want to try and work with both the old and new names, so at
that point you'd end up hard coding the names in the perf code anyway.

cheers

Re: [PATCH v6 1/2] perf,kvm/powerpc: Add kvm_perf.h for powerpc

From: Arnaldo Carvalho de Melo <acme@kernel.org>
Date: 2015-09-08 15:10:34

Em Tue, Sep 08, 2015 at 06:33:45PM +1000, Michael Ellerman escreveu:
On Tue, 2015-09-08 at 10:26 +0530, Hemant Kumar wrote:
quoted
On 09/07/2015 10:40 AM, Michael Ellerman wrote:
quoted
On Fri, 2015-09-04 at 17:51 -0300, Arnaldo Carvalho de Melo wrote:
quoted
Em Tue, Sep 01, 2015 at 12:18:47PM +0530, Hemant Kumar escreveu:
quoted
quoted
Should I try to process the 5 together, applying thest two first?
  
quoted
Yes, this patchset needs to be applied before applying the other patchset,
since there is a direct dependency on these two for the tooling part to
work.
  
quoted
quoted
I see there are no acks from powerpc arch maintainers, how should we
proceed here? If there are no problems with the arch bits, and if it is
just to enable the tooling part, again, should I process the 5 as just
one series?
  
quoted
The reason to split the earlier patchset into two was to separate the
tooling/perf/ and arch/powerpc/ side patches, as asked by Michael..
  
quoted
Here is the link to that discussion :
http://www.mail-archive.com/linuxppc-dev@lists.ozlabs.org/msg86916.html
  
quoted
If Michael is ok with the patches, you can process all the 5 patches
together. Michael?
Michael?
I'm not particularly happy with it.

Can we at least remove this hunk from the uapi header:

+/* This is to shut the compiler up */
+#define KVM_ENTRY_TRACE ""
+#define KVM_EXIT_TRACE ""
+#define KVM_EXIT_REASON ""
Agreed, I didn't like this too, but I kept this because of the generic
perf userspace code that looks for KVM_{ENTRY,EXIT}_TRACE and
KVM_EXIT_REASON. We can remove this and put this hunk in the
userspace side.
Yes please.
quoted
Arnaldo,
Can we remove the dependency on uapi altogether (also suggested
by Scott) because it doesn't seem to fulfill much purpose? Rather,
hardcode the events in the userspace completely (since, tracepoint
event names are unlikely to change) ? Some of what is being done
by x86 already in kvm-stat.c where its defining kvm_events_tp[] and
its not using the macros, rather, the tracepoints directly. Macros are
only being used in builtin-kvm.c where the tracepoint names are
matched with KVM_{ENTRY,EXIT}_TRACE and when we are looking
for the key KVM_EXIT_REASON.
That would certainly make me a lot happier with it.

Also think about what would happen if the tracepoint names *did* change. The
perf code would want to try and work with both the old and new names, so at
that point you'd end up hard coding the names in the perf code anyway.
Yeah, seems like we have a plan :-)

- Arnaldo
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help