[libvirt] [PATCH] [PATCH perl] Add support for more perf events
Nitesh Konkar
niteshkonkar.libvirt at gmail.com
Fri Jan 27 13:06:32 UTC 2017
Note: This is actually for go bindings. Error in the commit's subject.
Sending a v2
On Fri, Jan 27, 2017 at 6:29 PM, Nitesh Konkar <
niteshkonkar.libvirt at gmail.com> wrote:
> Signed-off-by: Nitesh Konkar <nitkon12 at linux.vnet.ibm.com>
> ---
> connect.go | 54 ++++++++++++++++++++++++++++++
> ++++++++++++++++++++++++
> domain.go | 54 ++++++++++++++++++++++++++++++
> ++++++++++++++++++++++++
> domain_compat.h | 36 ++++++++++++++++++++++++++++++++++++
> 3 files changed, 144 insertions(+)
>
> diff --git a/connect.go b/connect.go
> index a95cf18..425b3c7 100644
> --- a/connect.go
> +++ b/connect.go
> @@ -2253,6 +2253,24 @@ type DomainStatsPerf struct {
> StalledCyclesBackend uint64
> RefCpuCyclesSet bool
> RefCpuCycles uint64
> + CpuClockSet bool
> + CpuClock uint64
> + TaskClockSet bool
> + TaskClock uint64
> + PageFaultsSet bool
> + PageFaults uint64
> + ContextSwitchesSet bool
> + ContextSwitches uint64
> + CpuMigrationsSet bool
> + CpuMigrations uint64
> + PageFaultsMinSet bool
> + PageFaultsMin uint64
> + PageFaultsMajSet bool
> + PageFaultsMaj uint64
> + AlignmentFaultsSet bool
> + AlignmentFaults uint64
> + EmulationFaultsSet bool
> + EmulationFaults uint64
> }
>
> func getDomainStatsPerfFieldInfo(params *DomainStatsPerf) map[string]typedParamsFieldInfo
> {
> @@ -2309,6 +2327,42 @@ func getDomainStatsPerfFieldInfo(params
> *DomainStatsPerf) map[string]typedParams
> set: ¶ms.RefCpuCyclesSet,
> ul: ¶ms.RefCpuCycles,
> },
> + "perf.cpu_clock": typedParamsFieldInfo{
> + set: ¶ms.CpuClockSet,
> + ul: ¶ms.CpuClock,
> + },
> + "perf.task_clock": typedParamsFieldInfo{
> + set: ¶ms.TaskClockSet,
> + ul: ¶ms.TaskClock,
> + },
> + "perf.page_faults": typedParamsFieldInfo{
> + set: ¶ms.PageFaultsSet,
> + ul: ¶ms.PageFaults,
> + },
> + "perf.context_switches": typedParamsFieldInfo{
> + set: ¶ms.ContextSwitchesSet,
> + ul: ¶ms.ContextSwitches,
> + },
> + "perf.cpu_migrations": typedParamsFieldInfo{
> + set: ¶ms.CpuMigrationsSet,
> + ul: ¶ms.CpuMigrations,
> + },
> + "perf.page_faults_min": typedParamsFieldInfo{
> + set: ¶ms.PageFaultsMinSet,
> + ul: ¶ms.PageFaultsMin,
> + },
> + "perf.page_faults_maj": typedParamsFieldInfo{
> + set: ¶ms.PageFaultsMajSet,
> + ul: ¶ms.PageFaultsMaj,
> + },
> + "perf.alignment_faults": typedParamsFieldInfo{
> + set: ¶ms.AlignmentFaultsSet,
> + ul: ¶ms.AlignmentFaults,
> + },
> + "perf.emulation_faults": typedParamsFieldInfo{
> + set: ¶ms.EmulationFaultsSet,
> + ul: ¶ms.EmulationFaults,
> + },
> }
> }
>
> diff --git a/domain.go b/domain.go
> index cf2d007..a31eeff 100644
> --- a/domain.go
> +++ b/domain.go
> @@ -3187,6 +3187,24 @@ type DomainPerfEvents struct {
> StalledCyclesBackend bool
> RefCpuCyclesSet bool
> RefCpuCycles bool
> + CpuClockSet bool
> + CpuClock bool
> + TaskClockSet bool
> + TaskClock bool
> + PageFaultsSet bool
> + PageFaults bool
> + ContextSwitchesSet bool
> + ContextSwitches bool
> + CpuMigrationsSet bool
> + CpuMigrations bool
> + PageFaultsMinSet bool
> + PageFaultsMin bool
> + PageFaultsMajSet bool
> + PageFaultsMaj bool
> + AlignmentFaultsSet bool
> + AlignmentFaults bool
> + EmulationFaultsSet bool
> + EmulationFaults bool
> }
>
> /* Remember to also update DomainStatsPerf in connect.go when adding to
> the stuct above */
> @@ -3245,6 +3263,42 @@ func getDomainPerfEventsFieldInfo(params
> *DomainPerfEvents) map[string]typedPara
> set: ¶ms.RefCpuCyclesSet,
> b: ¶ms.RefCpuCycles,
> },
> + C.VIR_PERF_PARAM_CPU_CLOCK: typedParamsFieldInfo{
> + set: ¶ms.CpuClockSet,
> + b: ¶ms.CpuClock,
> + },
> + C.VIR_PERF_PARAM_TASK_CLOCK: typedParamsFieldInfo{
> + set: ¶ms.TaskClockSet,
> + b: ¶ms.TaskClock,
> + },
> + C.VIR_PERF_PARAM_PAGE_FAULTS: typedParamsFieldInfo{
> + set: ¶ms.PageFaultsSet,
> + b: ¶ms.PageFaults,
> + },
> + C.VIR_PERF_PARAM_CONTEXT_SWITCHES: typedParamsFieldInfo{
> + set: ¶ms.ContextSwitchesSet,
> + b: ¶ms.ContextSwitches,
> + },
> + C.VIR_PERF_PARAM_CPU_MIGRATIONS: typedParamsFieldInfo{
> + set: ¶ms.CpuMigrationsSet,
> + b: ¶ms.CpuMigrations,
> + },
> + C.VIR_PERF_PARAM_PAGE_FAULTS_MIN: typedParamsFieldInfo{
> + set: ¶ms.PageFaultsMinSet,
> + b: ¶ms.PageFaultsMin,
> + },
> + C.VIR_PERF_PARAM_PAGE_FAULTS_MAJ: typedParamsFieldInfo{
> + set: ¶ms.PageFaultsMajSet,
> + b: ¶ms.PageFaultsMaj,
> + },
> + C.VIR_PERF_PARAM_ALIGNMENT_FAULTS: typedParamsFieldInfo{
> + set: ¶ms.AlignmentFaultsSet,
> + b: ¶ms.AlignmentFaults,
> + },
> + C.VIR_PERF_PARAM_REF_EMULATION_FAULTS:
> typedParamsFieldInfo{
> + set: ¶ms.EmulationFaultsSet,
> + b: ¶ms.EmulationFaults,
> + },
> }
> }
>
> diff --git a/domain_compat.h b/domain_compat.h
> index 14072d0..55dd1ea 100644
> --- a/domain_compat.h
> +++ b/domain_compat.h
> @@ -45,6 +45,42 @@
> #define VIR_PERF_PARAM_REF_CPU_CYCLES "ref_cpu_cycles"
> #endif
>
> +#ifndef VIR_PERF_PARAM_CPU_CLOCK
> +#define VIR_PERF_PARAM_CPU_CLOCK "cpu_clock"
> +#endif
> +
> +#ifndef VIR_PERF_PARAM_TASK_CLOCK
> +#define VIR_PERF_PARAM_TASK_CLOCK "task_clock"
> +#endif
> +
> +#ifndef VIR_PERF_PARAM_PAGE_FAULTS
> +#define VIR_PERF_PARAM_PAGE_FAULTS "page_faults"
> +#endif
> +
> +#ifndef VIR_PERF_PARAM_CONTEXT_SWITCHES
> +#define VIR_PERF_PARAM_CONTEXT_SWITCHES "context_switches"
> +#endif
> +
> +#ifndef VIR_PERF_PARAM_CPU_MIGRATIONS
> +#define VIR_PERF_PARAM_CPU_MIGRATIONS "cpu_migrations"
> +#endif
> +
> +#ifndef VIR_PERF_PARAM_PAGE_FAULTS_MIN
> +#define VIR_PERF_PARAM_PAGE_FAULTS_MIN "page_faults_min"
> +#endif
> +
> +#ifndef VIR_PERF_PARAM_PAGE_FAULTS_MAJ
> +#define VIR_PERF_PARAM_PAGE_FAULTS_MAJ "page_faults_maj"
> +#endif
> +
> +#ifndef VIR_PERF_PARAM_ALIGNMENT_FAULTS
> +#define VIR_PERF_PARAM__ALIGNMENT_FAULTS "alignment_faults"
> +#endif
> +
> +#ifndef VIR_PERF_PARAM_EMULATION_FAULTS
> +#define VIR_PERF_PARAM_EMULATION_FAULTS "emulation_faults"
> +#endif
> +
> #ifndef VIR_DOMAIN_EVENT_ID_METADATA_CHANGE
> #define VIR_DOMAIN_EVENT_ID_METADATA_CHANGE 23
> #endif
> --
> 1.9.3
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://listman.redhat.com/archives/libvir-list/attachments/20170127/c5195837/attachment-0001.htm>
More information about the libvir-list
mailing list