linux/kernel/sched_features.h
<<
>>
Prefs
   1/*
   2 * Disregards a certain amount of sleep time (sched_latency_ns) and
   3 * considers the task to be running during that period. This gives it
   4 * a service deficit on wakeup, allowing it to run sooner.
   5 */
   6SCHED_FEAT(FAIR_SLEEPERS, 1)
   7
   8/*
   9 * Only give sleepers 50% of their service deficit. This allows
  10 * them to run sooner, but does not allow tons of sleepers to
  11 * rip the spread apart.
  12 */
  13SCHED_FEAT(GENTLE_FAIR_SLEEPERS, 1)
  14
  15/*
  16 * By not normalizing the sleep time, heavy tasks get an effective
  17 * longer period, and lighter task an effective shorter period they
  18 * are considered running.
  19 */
  20SCHED_FEAT(NORMALIZED_SLEEPER, 0)
  21
  22/*
  23 * Place new tasks ahead so that they do not starve already running
  24 * tasks
  25 */
  26SCHED_FEAT(START_DEBIT, 1)
  27
  28/*
  29 * Should wakeups try to preempt running tasks.
  30 */
  31SCHED_FEAT(WAKEUP_PREEMPT, 1)
  32
  33/*
  34 * Compute wakeup_gran based on task behaviour, clipped to
  35 *  [0, sched_wakeup_gran_ns]
  36 */
  37SCHED_FEAT(ADAPTIVE_GRAN, 1)
  38
  39/*
  40 * When converting the wakeup granularity to virtual time, do it such
  41 * that heavier tasks preempting a lighter task have an edge.
  42 */
  43SCHED_FEAT(ASYM_GRAN, 1)
  44
  45/*
  46 * Always wakeup-preempt SYNC wakeups, see SYNC_WAKEUPS.
  47 */
  48SCHED_FEAT(WAKEUP_SYNC, 0)
  49
  50/*
  51 * Wakeup preempt based on task behaviour. Tasks that do not overlap
  52 * don't get preempted.
  53 */
  54SCHED_FEAT(WAKEUP_OVERLAP, 0)
  55
  56/*
  57 * Wakeup preemption towards tasks that run short
  58 */
  59SCHED_FEAT(WAKEUP_RUNNING, 0)
  60
  61/*
  62 * Use the SYNC wakeup hint, pipes and the likes use this to indicate
  63 * the remote end is likely to consume the data we just wrote, and
  64 * therefore has cache benefit from being placed on the same cpu, see
  65 * also AFFINE_WAKEUPS.
  66 */
  67SCHED_FEAT(SYNC_WAKEUPS, 1)
  68
  69/*
  70 * Based on load and program behaviour, see if it makes sense to place
  71 * a newly woken task on the same cpu as the task that woke it --
  72 * improve cache locality. Typically used with SYNC wakeups as
  73 * generated by pipes and the like, see also SYNC_WAKEUPS.
  74 */
  75SCHED_FEAT(AFFINE_WAKEUPS, 1)
  76
  77/*
  78 * Weaken SYNC hint based on overlap
  79 */
  80SCHED_FEAT(SYNC_LESS, 1)
  81
  82/*
  83 * Add SYNC hint based on overlap
  84 */
  85SCHED_FEAT(SYNC_MORE, 0)
  86
  87/*
  88 * Prefer to schedule the task we woke last (assuming it failed
  89 * wakeup-preemption), since its likely going to consume data we
  90 * touched, increases cache locality.
  91 */
  92SCHED_FEAT(NEXT_BUDDY, 0)
  93
  94/*
  95 * Prefer to schedule the task that ran last (when we did
  96 * wake-preempt) as that likely will touch the same data, increases
  97 * cache locality.
  98 */
  99SCHED_FEAT(LAST_BUDDY, 1)
 100
 101/*
 102 * Consider buddies to be cache hot, decreases the likelyness of a
 103 * cache buddy being migrated away, increases cache locality.
 104 */
 105SCHED_FEAT(CACHE_HOT_BUDDY, 1)
 106
 107/*
 108 * Use arch dependent cpu power functions
 109 */
 110SCHED_FEAT(ARCH_POWER, 0)
 111
 112SCHED_FEAT(HRTICK, 0)
 113SCHED_FEAT(DOUBLE_TICK, 0)
 114SCHED_FEAT(LB_BIAS, 1)
 115SCHED_FEAT(LB_SHARES_UPDATE, 1)
 116SCHED_FEAT(ASYM_EFF_LOAD, 1)
 117
 118/*
 119 * Spin-wait on mutex acquisition when the mutex owner is running on
 120 * another cpu -- assumes that when the owner is running, it will soon
 121 * release the lock. Decreases scheduling overhead.
 122 */
 123SCHED_FEAT(OWNER_SPIN, 1)
 124