|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [xen master] libxc: Add xc_set_cpufreq_cppc
commit c80f042da5b04d660929f913b27af1a5281eec14
Author: Jason Andryuk <jandryuk@xxxxxxxxx>
AuthorDate: Mon Aug 7 14:51:17 2023 -0400
Commit: Jan Beulich <jbeulich@xxxxxxxx>
CommitDate: Wed Aug 23 10:09:14 2023 +0200
libxc: Add xc_set_cpufreq_cppc
Add xc_set_cpufreq_cppc to allow calling xen_systctl_pm_op
SET_CPUFREQ_CPPC.
Signed-off-by: Jason Andryuk <jandryuk@xxxxxxxxx>
Acked-by: Anthony PERARD <anthony.perard@xxxxxxxxxx>
---
tools/include/xenctrl.h | 4 ++++
tools/libs/ctrl/xc_pm.c | 23 +++++++++++++++++++++++
2 files changed, 27 insertions(+)
diff --git a/tools/include/xenctrl.h b/tools/include/xenctrl.h
index 5824394125..12dca13b69 100644
--- a/tools/include/xenctrl.h
+++ b/tools/include/xenctrl.h
@@ -1947,11 +1947,15 @@ struct xc_get_cpufreq_para {
int32_t turbo_enabled;
};
+typedef struct xen_set_cppc_para xc_set_cppc_para_t;
+
int xc_get_cpufreq_para(xc_interface *xch, int cpuid,
struct xc_get_cpufreq_para *user_para);
int xc_set_cpufreq_gov(xc_interface *xch, int cpuid, char *govname);
int xc_set_cpufreq_para(xc_interface *xch, int cpuid,
int ctrl_type, int ctrl_value);
+int xc_set_cpufreq_cppc(xc_interface *xch, int cpuid,
+ xc_set_cppc_para_t *set_cppc);
int xc_get_cpufreq_avgfreq(xc_interface *xch, int cpuid, int *avg_freq);
int xc_set_sched_opt_smt(xc_interface *xch, uint32_t value);
diff --git a/tools/libs/ctrl/xc_pm.c b/tools/libs/ctrl/xc_pm.c
index 3e969b841f..6157f4e3d4 100644
--- a/tools/libs/ctrl/xc_pm.c
+++ b/tools/libs/ctrl/xc_pm.c
@@ -368,6 +368,29 @@ int xc_set_cpufreq_para(xc_interface *xch, int cpuid,
return xc_sysctl(xch, &sysctl);
}
+int xc_set_cpufreq_cppc(xc_interface *xch, int cpuid,
+ xc_set_cppc_para_t *set_cppc)
+{
+ DECLARE_SYSCTL;
+ int ret;
+
+ if ( !xch )
+ {
+ errno = EINVAL;
+ return -1;
+ }
+ sysctl.cmd = XEN_SYSCTL_pm_op;
+ sysctl.u.pm_op.cmd = SET_CPUFREQ_CPPC;
+ sysctl.u.pm_op.cpuid = cpuid;
+ sysctl.u.pm_op.u.set_cppc = *set_cppc;
+
+ ret = xc_sysctl(xch, &sysctl);
+
+ *set_cppc = sysctl.u.pm_op.u.set_cppc;
+
+ return ret;
+}
+
int xc_get_cpufreq_avgfreq(xc_interface *xch, int cpuid, int *avg_freq)
{
int ret = 0;
--
generated by git-patchbot for /home/xen/git/xen.git#master
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |