vireshk

Untitled

Jan 4th, 2017
105
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.37 KB | None | 0 0
  1. * remote wakeup cpufreq notifications
  2.  
  3. b3f33be79280 sched: cpufreq: enable remote sched cpufreq callbacks
  4. 2b82762d1707 intel_pstate: ignore scheduler cpufreq callbacks on remote CPUs
  5. 705a998278bb cpufreq: governor: support scheduler cpufreq callbacks on remote CPUs
  6. 9cf663d3c0ff sched: cpufreq: detect, process remote callbacks
  7. cadb3b98bf46 sched: cpufreq: remove smp_processor_id() in remote paths
  8. 382c9676816d sched: cpufreq: always trace unchanged frequency
  9. 9281fc43de45 sched: cpufreq: extend irq work to support fast switches
  10. eae3389a1981 sched: cpufreq: allow sugov_next_freq_shared() to be run remotely
  11. 588d905a52ff sched: create late cpufreq callback
  12. 597c2e33f29e irq_work: add irq_work_queue_on for !CONFIG_SMP
  13. 2705bf9b33c8 sched: cpufreq: add cpu to update_util_data
  14.  
  15. With Android UI and benchmarks the latency of cpufreq response to certain
  16. scheduling events can become very critical. Currently on mainline tip,
  17. callbacks into schedutil are only made from the scheduler if the target CPU of
  18. the event is the same as the current CPU. This means there are certain
  19. situations where a target CPU may not run schedutil for some time.
  20.  
  21. One testcase I wrote to show this behavior is where a task starts running on
  22. CPU0, then a new task is also spawned on CPU0 by a task on CPU1. If the system
  23. is configured such that new tasks should receive maximum demand initially,
  24. this should result in CPU0 increasing frequency immediately. Because of the
  25. above mentioned limitation though this does not occur.
  26.  
  27. I implemented this set of patches which defers the callback into schedutil if
  28. the callback would be remote (not for a CPU in the policy of which we are
  29. running). If there is no preemption required by the wakeup a late callback
  30. into schedutil is made, and schedutil is modified to be able to correctly deal
  31. with remote callbacks. If preemption does occur then the scheduler, and
  32. schedutil, will run on the remote CPU anyway.
  33.  
  34. This series will likely not be accepted upstream due to its
  35. invasiveness in the scheduler. The right solution I think is to revisit the
  36. location of the hooks in the scheduler overall. Perhaps they can be made to
  37. more strongly resemble what we had with schedfreq. Rafael seemed open to this
  38. when I proposed it. He recently had to add another hook in the enqueue path
  39. for his iowait series which I think is not ideal.
  40.  
  41. The JIRA for this activity is PMWG-1018.
Add Comment
Please, Sign In to add comment