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);
-int xc_set_vcpu_migration_delay(xc_interface *xch, uint32_t value);
-int xc_get_vcpu_migration_delay(xc_interface *xch, uint32_t *value);
int xc_get_cpuidle_max_cstate(xc_interface *xch, uint32_t *value);
int xc_set_cpuidle_max_cstate(xc_interface *xch, uint32_t value);
return rc;
}
-int xc_set_vcpu_migration_delay(xc_interface *xch, uint32_t value)
-{
- int rc;
- DECLARE_SYSCTL;
-
- sysctl.cmd = XEN_SYSCTL_pm_op;
- sysctl.u.pm_op.cmd = XEN_SYSCTL_pm_op_set_vcpu_migration_delay;
- sysctl.u.pm_op.cpuid = 0;
- sysctl.u.pm_op.u.set_vcpu_migration_delay = value;
- rc = do_sysctl(xch, &sysctl);
-
- return rc;
-}
-
-int xc_get_vcpu_migration_delay(xc_interface *xch, uint32_t *value)
-{
- int rc;
- DECLARE_SYSCTL;
-
- sysctl.cmd = XEN_SYSCTL_pm_op;
- sysctl.u.pm_op.cmd = XEN_SYSCTL_pm_op_get_vcpu_migration_delay;
- sysctl.u.pm_op.cpuid = 0;
- rc = do_sysctl(xch, &sysctl);
-
- if (!rc && value)
- *value = sysctl.u.pm_op.u.get_vcpu_migration_delay;
-
- return rc;
-}
-
int xc_get_cpuidle_max_cstate(xc_interface *xch, uint32_t *value)
{
int rc;
static unsigned int vcpu_migration_delay_us;
integer_param("vcpu_migration_delay", vcpu_migration_delay_us);
-void set_vcpu_migration_delay(unsigned int delay)
-{
- vcpu_migration_delay_us = delay;
-}
-
-unsigned int get_vcpu_migration_delay(void)
-{
- return vcpu_migration_delay_us;
-}
-
static inline bool
__csched_vcpu_is_cache_hot(const struct csched_private *prv, struct vcpu *v)
{
break;
}
- case XEN_SYSCTL_pm_op_set_vcpu_migration_delay:
- {
- set_vcpu_migration_delay(op->u.set_vcpu_migration_delay);
- break;
- }
-
- case XEN_SYSCTL_pm_op_get_vcpu_migration_delay:
- {
- op->u.get_vcpu_migration_delay = get_vcpu_migration_delay();
- break;
- }
-
case XEN_SYSCTL_pm_op_get_max_cstate:
{
op->u.get_max_cstate = acpi_get_cstate_limit();
#include "physdev.h"
#include "tmem.h"
-#define XEN_SYSCTL_INTERFACE_VERSION 0x00000010
+#define XEN_SYSCTL_INTERFACE_VERSION 0x00000011
/*
* Read console content from Xen buffer ring.
uint32_t set_sched_opt_smt;
uint32_t get_max_cstate;
uint32_t set_max_cstate;
- uint32_t get_vcpu_migration_delay;
- uint32_t set_vcpu_migration_delay;
} u;
};
return !test_bit(_VPF_down, &v->pause_flags);
}
-void set_vcpu_migration_delay(unsigned int delay);
-unsigned int get_vcpu_migration_delay(void);
-
extern bool sched_smt_power_savings;
extern enum cpufreq_controller {