#include <linux/kernel.h>
#include <linux/cpuidle.h>
#include <linux/time.h>
#include <linux/ktime.h>
#include <linux/hrtimer.h>
#include <linux/tick.h>
#include <linux/sched.h>
#include <linux/module.h>
#include <linux/kvm_para.h>
#include <trace/events/power.h>
static unsigned int guest_halt_poll_ns __read_mostly = …;
module_param(guest_halt_poll_ns, uint, 0644);
static unsigned int guest_halt_poll_shrink __read_mostly = …;
module_param(guest_halt_poll_shrink, uint, 0644);
static unsigned int guest_halt_poll_grow __read_mostly = …;
module_param(guest_halt_poll_grow, uint, 0644);
static unsigned int guest_halt_poll_grow_start __read_mostly = …;
module_param(guest_halt_poll_grow_start, uint, 0644);
static bool guest_halt_poll_allow_shrink __read_mostly = …;
module_param(guest_halt_poll_allow_shrink, bool, 0644);
static int haltpoll_select(struct cpuidle_driver *drv,
struct cpuidle_device *dev,
bool *stop_tick)
{ … }
static void adjust_poll_limit(struct cpuidle_device *dev, u64 block_ns)
{ … }
static void haltpoll_reflect(struct cpuidle_device *dev, int index)
{ … }
static int haltpoll_enable_device(struct cpuidle_driver *drv,
struct cpuidle_device *dev)
{ … }
static struct cpuidle_governor haltpoll_governor = …;
static int __init init_haltpoll(void)
{ … }
postcore_initcall(init_haltpoll);