[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: &params.RefCpuCyclesSet,
>                         ul:  &params.RefCpuCycles,
>                 },
> +                "perf.cpu_clock": typedParamsFieldInfo{
> +                        set: &params.CpuClockSet,
> +                        ul:  &params.CpuClock,
> +                },
> +                "perf.task_clock": typedParamsFieldInfo{
> +                        set: &params.TaskClockSet,
> +                        ul:  &params.TaskClock,
> +                },
> +                "perf.page_faults": typedParamsFieldInfo{
> +                        set: &params.PageFaultsSet,
> +                        ul:  &params.PageFaults,
> +                },
> +                "perf.context_switches": typedParamsFieldInfo{
> +                        set: &params.ContextSwitchesSet,
> +                        ul:  &params.ContextSwitches,
> +                },
> +                "perf.cpu_migrations": typedParamsFieldInfo{
> +                        set: &params.CpuMigrationsSet,
> +                        ul:  &params.CpuMigrations,
> +                },
> +                "perf.page_faults_min": typedParamsFieldInfo{
> +                        set: &params.PageFaultsMinSet,
> +                        ul:  &params.PageFaultsMin,
> +                },
> +                "perf.page_faults_maj": typedParamsFieldInfo{
> +                        set: &params.PageFaultsMajSet,
> +                        ul:  &params.PageFaultsMaj,
> +                },
> +                "perf.alignment_faults": typedParamsFieldInfo{
> +                        set: &params.AlignmentFaultsSet,
> +                        ul:  &params.AlignmentFaults,
> +                },
> +                "perf.emulation_faults": typedParamsFieldInfo{
> +                        set: &params.EmulationFaultsSet,
> +                        ul:  &params.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: &params.RefCpuCyclesSet,
>                         b:   &params.RefCpuCycles,
>                 },
> +                C.VIR_PERF_PARAM_CPU_CLOCK: typedParamsFieldInfo{
> +                        set: &params.CpuClockSet,
> +                        b:   &params.CpuClock,
> +                },
> +                C.VIR_PERF_PARAM_TASK_CLOCK: typedParamsFieldInfo{
> +                        set: &params.TaskClockSet,
> +                        b:   &params.TaskClock,
> +                },
> +                C.VIR_PERF_PARAM_PAGE_FAULTS: typedParamsFieldInfo{
> +                        set: &params.PageFaultsSet,
> +                        b:   &params.PageFaults,
> +                },
> +                C.VIR_PERF_PARAM_CONTEXT_SWITCHES: typedParamsFieldInfo{
> +                        set: &params.ContextSwitchesSet,
> +                        b:   &params.ContextSwitches,
> +                },
> +                C.VIR_PERF_PARAM_CPU_MIGRATIONS: typedParamsFieldInfo{
> +                        set: &params.CpuMigrationsSet,
> +                        b:   &params.CpuMigrations,
> +                },
> +                C.VIR_PERF_PARAM_PAGE_FAULTS_MIN: typedParamsFieldInfo{
> +                        set: &params.PageFaultsMinSet,
> +                        b:   &params.PageFaultsMin,
> +                },
> +                C.VIR_PERF_PARAM_PAGE_FAULTS_MAJ: typedParamsFieldInfo{
> +                        set: &params.PageFaultsMajSet,
> +                        b:   &params.PageFaultsMaj,
> +                },
> +                C.VIR_PERF_PARAM_ALIGNMENT_FAULTS: typedParamsFieldInfo{
> +                        set: &params.AlignmentFaultsSet,
> +                        b:   &params.AlignmentFaults,
> +                },
> +                C.VIR_PERF_PARAM_REF_EMULATION_FAULTS:
> typedParamsFieldInfo{
> +                        set: &params.EmulationFaultsSet,
> +                        b:   &params.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