sched_features.h 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. /*
  2. * Only give sleepers 50% of their service deficit. This allows
  3. * them to run sooner, but does not allow tons of sleepers to
  4. * rip the spread apart.
  5. */
  6. SCHED_FEAT(GENTLE_FAIR_SLEEPERS, 1)
  7. /*
  8. * Place new tasks ahead so that they do not starve already running
  9. * tasks
  10. */
  11. SCHED_FEAT(START_DEBIT, 1)
  12. /*
  13. * Should wakeups try to preempt running tasks.
  14. */
  15. SCHED_FEAT(WAKEUP_PREEMPT, 1)
  16. /*
  17. * Based on load and program behaviour, see if it makes sense to place
  18. * a newly woken task on the same cpu as the task that woke it --
  19. * improve cache locality. Typically used with SYNC wakeups as
  20. * generated by pipes and the like, see also SYNC_WAKEUPS.
  21. */
  22. SCHED_FEAT(AFFINE_WAKEUPS, 1)
  23. /*
  24. * Prefer to schedule the task we woke last (assuming it failed
  25. * wakeup-preemption), since its likely going to consume data we
  26. * touched, increases cache locality.
  27. */
  28. SCHED_FEAT(NEXT_BUDDY, 0)
  29. /*
  30. * Prefer to schedule the task that ran last (when we did
  31. * wake-preempt) as that likely will touch the same data, increases
  32. * cache locality.
  33. */
  34. SCHED_FEAT(LAST_BUDDY, 1)
  35. /*
  36. * Consider buddies to be cache hot, decreases the likelyness of a
  37. * cache buddy being migrated away, increases cache locality.
  38. */
  39. SCHED_FEAT(CACHE_HOT_BUDDY, 1)
  40. /*
  41. * Use arch dependent cpu power functions
  42. */
  43. SCHED_FEAT(ARCH_POWER, 0)
  44. SCHED_FEAT(HRTICK, 0)
  45. SCHED_FEAT(DOUBLE_TICK, 0)
  46. SCHED_FEAT(LB_BIAS, 1)
  47. /*
  48. * Spin-wait on mutex acquisition when the mutex owner is running on
  49. * another cpu -- assumes that when the owner is running, it will soon
  50. * release the lock. Decreases scheduling overhead.
  51. */
  52. SCHED_FEAT(OWNER_SPIN, 1)
  53. /*
  54. * Decrement CPU power based on irq activity
  55. */
  56. SCHED_FEAT(NONIRQ_POWER, 1)
  57. /*
  58. * Queue remote wakeups on the target CPU and process them
  59. * using the scheduler IPI. Reduces rq->lock contention/bounces.
  60. */
  61. SCHED_FEAT(TTWU_QUEUE, 1)
  62. SCHED_FEAT(FORCE_SD_OVERLAP, 0)