#include "i915_drv.h"
#include "gvt.h"
static bool vgpu_has_pending_workload(struct intel_vgpu *vgpu)
{ … }
#define GVT_SCHED_VGPU_PRI_TIME …
struct vgpu_sched_data { … };
struct gvt_sched_data { … };
static void vgpu_update_timeslice(struct intel_vgpu *vgpu, ktime_t cur_time)
{ … }
#define GVT_TS_BALANCE_PERIOD_MS …
#define GVT_TS_BALANCE_STAGE_NUM …
static void gvt_balance_timeslice(struct gvt_sched_data *sched_data)
{ … }
static void try_to_schedule_next_vgpu(struct intel_gvt *gvt)
{ … }
static struct intel_vgpu *find_busy_vgpu(struct gvt_sched_data *sched_data)
{ … }
#define GVT_DEFAULT_TIME_SLICE …
static void tbs_sched_func(struct gvt_sched_data *sched_data)
{ … }
void intel_gvt_schedule(struct intel_gvt *gvt)
{ … }
static enum hrtimer_restart tbs_timer_fn(struct hrtimer *timer_data)
{ … }
static int tbs_sched_init(struct intel_gvt *gvt)
{ … }
static void tbs_sched_clean(struct intel_gvt *gvt)
{ … }
static int tbs_sched_init_vgpu(struct intel_vgpu *vgpu)
{ … }
static void tbs_sched_clean_vgpu(struct intel_vgpu *vgpu)
{ … }
static void tbs_sched_start_schedule(struct intel_vgpu *vgpu)
{ … }
static void tbs_sched_stop_schedule(struct intel_vgpu *vgpu)
{ … }
static const struct intel_gvt_sched_policy_ops tbs_schedule_ops = …;
int intel_gvt_init_sched_policy(struct intel_gvt *gvt)
{ … }
void intel_gvt_clean_sched_policy(struct intel_gvt *gvt)
{ … }
int intel_vgpu_init_sched_policy(struct intel_vgpu *vgpu)
{ … }
void intel_vgpu_clean_sched_policy(struct intel_vgpu *vgpu)
{ … }
void intel_vgpu_start_schedule(struct intel_vgpu *vgpu)
{ … }
void intel_gvt_kick_schedule(struct intel_gvt *gvt)
{ … }
void intel_vgpu_stop_schedule(struct intel_vgpu *vgpu)
{ … }