2015-08-31 06:48:21

by Hemant Kumar

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

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 <[email protected]>
---
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


2015-08-31 06:48:14

by Hemant Kumar

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

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 <[email protected]>
---
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

2015-08-31 20:13:06

by Arnaldo Carvalho de Melo

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

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 <[email protected]>

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

> ---
> 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