diff options
author | Daniel Lezcano <daniel.lezcano@linaro.org> | 2018-05-02 12:09:27 +0200 |
---|---|---|
committer | Daniel Lezcano <daniel.lezcano@linaro.org> | 2018-06-26 12:44:32 +0200 |
commit | af934a35b9fa1845d08068c97985e2112794f83e (patch) | |
tree | 16b268ade175227d5895e26a13ce6c2415c784b0 /drivers/net/ethernet/mellanox/mlx4/Makefile | |
parent | 75bc37fefc4471e718ba8e651aa74673d4e0a9eb (diff) |
powercap/drivers/idle_inject: Add an idle injection framework
Initially, the cpu_cooling device for ARM was changed by adding a new
policy inserting idle cycles. The intel_powerclamp driver does a
similar action.
Instead of implementing idle injections privately in the cpu_cooling
device, move the idle injection code in a dedicated framework and give
the opportunity to other frameworks to make use of it.
The framework relies on the smpboot kthreads which handles via its
main loop the common code for hotplugging and [un]parking.
This code was previously tested with the cpu cooling device and went
through several iterations. It results now in split code and API
exported in the header file. It was tested with the cpu cooling device
with success.
Signed-off-by: Daniel Lezcano <daniel.lezcano@linaro.org>
Cc: Viresh Kumar <viresh.kumar@linaro.org>
Cc: Eduardo Valentin <edubezval@gmail.com>
Cc: Javi Merino <javi.merino@kernel.org>
Cc: Leo Yan <leo.yan@linaro.org>
Cc: Kevin Wangtao <kevin.wangtao@linaro.org>
Cc: Vincent Guittot <vincent.guittot@linaro.org>
Cc: Rui Zhang <rui.zhang@intel.com>
Cc: Daniel Thompson <daniel.thompson@linaro.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Andrea Parri <andrea.parri@amarulasolutions.com>
---
V10:
- Remove set_freezable (Rafael J. Wysocki)
- Reduce the prefixed names 'injection' by 'inject" (Rafael J. Wysocki)
- Rename 'idle_injection_wakeup_fn()' to 'idle_inject_timer_fn()' (Rafael J. Wysocki)
- Shorten label 'out_rollback_per_cpu' to 'out_rollback' (Rafael J. Wysocki)
V9:
- Unconditionnally reset the should_run flag for all kthreads
belonging to the cpumask and remove the park() callback (Viresh Kumar)
- Fix up the typos in the comments (Viresh Kumar)
V8:
- Rollback only what was modified
- Add the park() callback to reset the should_run flag
V7:
- Replace count approach by htimer_forward and restart (Peter Zijlstra)
- Wait for task inactive when stopping the idle injections
- Changed the comments and description
V6:
- Move count to wake up function (Viresh Kumar)
- Split atomic/non-atomic context to wake up tasks
- Add the park callback to handle unplug/inject race
- Replace atomic by READ_ONCE and WRITE_ONCE (Peter Zijlstra)
V5:
- Move init_completion in the init function (Viresh Kumar)
- Increment task count in the wakeup function (Viresh Kumar)
- Remove rollback at init time (Viresh Kumar)
V4:
- Wait for completion when stopping (Viresh Kumar)
- Check init already done and rollback (Viresh Kumar)
V3:
- Fixed typos (Viresh Kumar)
- Removed extra blank line (Viresh Kumar)
- Added full stop (Viresh Kumar)
- Fixed Return kerneldoc format (Viresh Kumar)
- Fixed multiple kthreads initialization (Viresh Kumar)
- Fixed rollbacking the actions in the unregister function (Viresh Kumar)
- Make idle injection kthreads name hardcoded
- Kthreads are created in the initcall process
V2: Fixed checkpatch warnings
Diffstat (limited to 'drivers/net/ethernet/mellanox/mlx4/Makefile')
0 files changed, 0 insertions, 0 deletions