Loading connect.go +109 −14 Original line number Diff line number Diff line Loading @@ -2638,9 +2638,65 @@ func getDomainStatsCPUCacheMonitorFieldInfo(idx int, params *DomainStatsCPUCache } } type DomainStatsCPUEnergyMonitorPkg struct { IDSet bool ID uint } func getDomainStatsCPUEnergyMonitorPkgFieldInfo(idx1, idx2 int, params *DomainStatsCPUEnergyMonitorPkg) map[string]typedParamsFieldInfo { return map[string]typedParamsFieldInfo{ fmt.Sprintf(C.VIR_DOMAIN_STATS_CPU_ENERGY_MONITOR_PREFIX+"%d"+ C.VIR_DOMAIN_STATS_CPU_ENERGY_MONITOR_SUFFIX_PKG_PREFIX+"%d"+ C.VIR_DOMAIN_STATS_CPU_ENERGY_MONITOR_SUFFIX_PKG_SUFFIX_ID, idx1, idx2): typedParamsFieldInfo{ set: ¶ms.IDSet, ui: ¶ms.ID, }, } } type domainStatsCPUEnergyMonitorLengths struct { PkgCountSet bool PkgCount uint } func getDomainStatsCPUEnergyMonitorLengthsFieldInfo(idx int, params *domainStatsCPUEnergyMonitorLengths) map[string]typedParamsFieldInfo { return map[string]typedParamsFieldInfo{ fmt.Sprintf(C.VIR_DOMAIN_STATS_CPU_ENERGY_MONITOR_PREFIX+"%d"+ C.VIR_DOMAIN_STATS_CPU_ENERGY_MONITOR_SUFFIX_PKG_COUNT, idx): typedParamsFieldInfo{ set: ¶ms.PkgCountSet, ui: ¶ms.PkgCount, }, } } type DomainStatsCPUEnergyMonitor struct { NameSet bool Name string VcpusSet bool Vcpus string Pkgs []DomainStatsCPUEnergyMonitorPkg } func getDomainStatsCPUEnergyMonitorFieldInfo(idx int, params *DomainStatsCPUEnergyMonitor) map[string]typedParamsFieldInfo { return map[string]typedParamsFieldInfo{ fmt.Sprintf(C.VIR_DOMAIN_STATS_CPU_ENERGY_MONITOR_PREFIX+"%d"+ C.VIR_DOMAIN_STATS_CPU_ENERGY_MONITOR_SUFFIX_NAME, idx): typedParamsFieldInfo{ set: ¶ms.NameSet, s: ¶ms.Name, }, fmt.Sprintf(C.VIR_DOMAIN_STATS_CPU_ENERGY_MONITOR_PREFIX+"%d"+ C.VIR_DOMAIN_STATS_CPU_ENERGY_MONITOR_SUFFIX_VCPUS, idx): typedParamsFieldInfo{ set: ¶ms.VcpusSet, s: ¶ms.Vcpus, }, } } type domainStatsCPULengths struct { CacheMonitorCountSet bool CacheMonitorCount uint EnergyMonitorCountSet bool EnergyMonitorCount uint } func getDomainStatsCPULengthsFieldInfo(params *domainStatsCPULengths) map[string]typedParamsFieldInfo { Loading @@ -2649,6 +2705,10 @@ func getDomainStatsCPULengthsFieldInfo(params *domainStatsCPULengths) map[string set: ¶ms.CacheMonitorCountSet, ui: ¶ms.CacheMonitorCount, }, C.VIR_DOMAIN_STATS_CPU_ENERGY_MONITOR_COUNT: typedParamsFieldInfo{ set: ¶ms.EnergyMonitorCountSet, ui: ¶ms.EnergyMonitorCount, }, } } Loading @@ -2664,6 +2724,7 @@ type DomainStatsCPU struct { HaltPollFailTimeSet bool HaltPollFailTime uint64 CacheMonitors []DomainStatsCPUCacheMonitor EnergyMonitors []DomainStatsCPUEnergyMonitor } func getDomainStatsCPUFieldInfo(params *DomainStatsCPU) map[string]typedParamsFieldInfo { Loading Loading @@ -3659,6 +3720,7 @@ type DomainStats struct { DirtyRate *DomainStatsDirtyRate VM []TypedParamValue IOThread []DomainStatsIOThread CpuEnergyMonitor *DomainStats } type domainStatsLengths struct { Loading Loading @@ -3815,6 +3877,39 @@ func (c *Connect) GetAllDomainStats(doms []*Domain, statsTypes DomainStatsTypes, } } if cpuLengths.EnergyMonitorCountSet && cpuLengths.EnergyMonitorCount > 0 { cpu.EnergyMonitors = make([]DomainStatsCPUEnergyMonitor, cpuLengths.EnergyMonitorCount) for j := 0; j < int(cpuLengths.EnergyMonitorCount); j++ { cpuEnergyInfo := getDomainStatsCPUEnergyMonitorFieldInfo(j, &cpu.EnergyMonitors[j]) _, gerr = typedParamsUnpack(cdomstats.params, cdomstats.nparams, cpuEnergyInfo) if gerr != nil { return nil, gerr } cpuEnergyMonitorLengths := domainStatsCPUEnergyMonitorLengths{} cpuEnergyMonitorLengthsInfo := getDomainStatsCPUEnergyMonitorLengthsFieldInfo(i, &cpuEnergyMonitorLengths) _, gerr = typedParamsUnpack(cdomstats.params, cdomstats.nparams, cpuEnergyMonitorLengthsInfo) if gerr != nil { return nil, gerr } if cpuEnergyMonitorLengths.PkgCountSet && cpuEnergyMonitorLengths.PkgCount > 0 { cpu.EnergyMonitors[i].Pkgs = make([]DomainStatsCPUEnergyMonitorPkg, cpuEnergyMonitorLengths.PkgCount) for k := 0; k < int(cpuEnergyMonitorLengths.PkgCount); k++ { cpuEnergyPkgInfo := getDomainStatsCPUEnergyMonitorPkgFieldInfo(j, k, &cpu.EnergyMonitors[j].Pkgs[k]) _, gerr = typedParamsUnpack(cdomstats.params, cdomstats.nparams, cpuEnergyPkgInfo) if gerr != nil { return nil, gerr } } } } } balloon := &DomainStatsBalloon{} balloonInfo := getDomainStatsBalloonFieldInfo(balloon) Loading Loading
connect.go +109 −14 Original line number Diff line number Diff line Loading @@ -2638,9 +2638,65 @@ func getDomainStatsCPUCacheMonitorFieldInfo(idx int, params *DomainStatsCPUCache } } type DomainStatsCPUEnergyMonitorPkg struct { IDSet bool ID uint } func getDomainStatsCPUEnergyMonitorPkgFieldInfo(idx1, idx2 int, params *DomainStatsCPUEnergyMonitorPkg) map[string]typedParamsFieldInfo { return map[string]typedParamsFieldInfo{ fmt.Sprintf(C.VIR_DOMAIN_STATS_CPU_ENERGY_MONITOR_PREFIX+"%d"+ C.VIR_DOMAIN_STATS_CPU_ENERGY_MONITOR_SUFFIX_PKG_PREFIX+"%d"+ C.VIR_DOMAIN_STATS_CPU_ENERGY_MONITOR_SUFFIX_PKG_SUFFIX_ID, idx1, idx2): typedParamsFieldInfo{ set: ¶ms.IDSet, ui: ¶ms.ID, }, } } type domainStatsCPUEnergyMonitorLengths struct { PkgCountSet bool PkgCount uint } func getDomainStatsCPUEnergyMonitorLengthsFieldInfo(idx int, params *domainStatsCPUEnergyMonitorLengths) map[string]typedParamsFieldInfo { return map[string]typedParamsFieldInfo{ fmt.Sprintf(C.VIR_DOMAIN_STATS_CPU_ENERGY_MONITOR_PREFIX+"%d"+ C.VIR_DOMAIN_STATS_CPU_ENERGY_MONITOR_SUFFIX_PKG_COUNT, idx): typedParamsFieldInfo{ set: ¶ms.PkgCountSet, ui: ¶ms.PkgCount, }, } } type DomainStatsCPUEnergyMonitor struct { NameSet bool Name string VcpusSet bool Vcpus string Pkgs []DomainStatsCPUEnergyMonitorPkg } func getDomainStatsCPUEnergyMonitorFieldInfo(idx int, params *DomainStatsCPUEnergyMonitor) map[string]typedParamsFieldInfo { return map[string]typedParamsFieldInfo{ fmt.Sprintf(C.VIR_DOMAIN_STATS_CPU_ENERGY_MONITOR_PREFIX+"%d"+ C.VIR_DOMAIN_STATS_CPU_ENERGY_MONITOR_SUFFIX_NAME, idx): typedParamsFieldInfo{ set: ¶ms.NameSet, s: ¶ms.Name, }, fmt.Sprintf(C.VIR_DOMAIN_STATS_CPU_ENERGY_MONITOR_PREFIX+"%d"+ C.VIR_DOMAIN_STATS_CPU_ENERGY_MONITOR_SUFFIX_VCPUS, idx): typedParamsFieldInfo{ set: ¶ms.VcpusSet, s: ¶ms.Vcpus, }, } } type domainStatsCPULengths struct { CacheMonitorCountSet bool CacheMonitorCount uint EnergyMonitorCountSet bool EnergyMonitorCount uint } func getDomainStatsCPULengthsFieldInfo(params *domainStatsCPULengths) map[string]typedParamsFieldInfo { Loading @@ -2649,6 +2705,10 @@ func getDomainStatsCPULengthsFieldInfo(params *domainStatsCPULengths) map[string set: ¶ms.CacheMonitorCountSet, ui: ¶ms.CacheMonitorCount, }, C.VIR_DOMAIN_STATS_CPU_ENERGY_MONITOR_COUNT: typedParamsFieldInfo{ set: ¶ms.EnergyMonitorCountSet, ui: ¶ms.EnergyMonitorCount, }, } } Loading @@ -2664,6 +2724,7 @@ type DomainStatsCPU struct { HaltPollFailTimeSet bool HaltPollFailTime uint64 CacheMonitors []DomainStatsCPUCacheMonitor EnergyMonitors []DomainStatsCPUEnergyMonitor } func getDomainStatsCPUFieldInfo(params *DomainStatsCPU) map[string]typedParamsFieldInfo { Loading Loading @@ -3659,6 +3720,7 @@ type DomainStats struct { DirtyRate *DomainStatsDirtyRate VM []TypedParamValue IOThread []DomainStatsIOThread CpuEnergyMonitor *DomainStats } type domainStatsLengths struct { Loading Loading @@ -3815,6 +3877,39 @@ func (c *Connect) GetAllDomainStats(doms []*Domain, statsTypes DomainStatsTypes, } } if cpuLengths.EnergyMonitorCountSet && cpuLengths.EnergyMonitorCount > 0 { cpu.EnergyMonitors = make([]DomainStatsCPUEnergyMonitor, cpuLengths.EnergyMonitorCount) for j := 0; j < int(cpuLengths.EnergyMonitorCount); j++ { cpuEnergyInfo := getDomainStatsCPUEnergyMonitorFieldInfo(j, &cpu.EnergyMonitors[j]) _, gerr = typedParamsUnpack(cdomstats.params, cdomstats.nparams, cpuEnergyInfo) if gerr != nil { return nil, gerr } cpuEnergyMonitorLengths := domainStatsCPUEnergyMonitorLengths{} cpuEnergyMonitorLengthsInfo := getDomainStatsCPUEnergyMonitorLengthsFieldInfo(i, &cpuEnergyMonitorLengths) _, gerr = typedParamsUnpack(cdomstats.params, cdomstats.nparams, cpuEnergyMonitorLengthsInfo) if gerr != nil { return nil, gerr } if cpuEnergyMonitorLengths.PkgCountSet && cpuEnergyMonitorLengths.PkgCount > 0 { cpu.EnergyMonitors[i].Pkgs = make([]DomainStatsCPUEnergyMonitorPkg, cpuEnergyMonitorLengths.PkgCount) for k := 0; k < int(cpuEnergyMonitorLengths.PkgCount); k++ { cpuEnergyPkgInfo := getDomainStatsCPUEnergyMonitorPkgFieldInfo(j, k, &cpu.EnergyMonitors[j].Pkgs[k]) _, gerr = typedParamsUnpack(cdomstats.params, cdomstats.nparams, cpuEnergyPkgInfo) if gerr != nil { return nil, gerr } } } } } balloon := &DomainStatsBalloon{} balloonInfo := getDomainStatsBalloonFieldInfo(balloon) Loading