Hi Chris,
On Tue, Oct 11, 2016 at 12:39:05PM +0000, Chris Redpath wrote:
Hi Leo, Patrick,
Do we have c-state info at this time? We could perhaps only 'do something' (ignore overutilised or update load averages, whatever is best) for idle CPUs which have requested the deepest idle state - on the grounds that shallow idle states indicate we expect to be leaving idle very soon. We would also need a good definition of shallow idle states of course - on some platforms I guess the exit latency of CPU down might be reported to be low enough that we enter a lot, which makes it a bit spurious to even bother checking.
Yes. We can get c-state related info by function idle_get_state_idx() and idle_get_state(). But I think you are suggesting to 'do something' for deepest idle state CPUs and leave for shallow idle state CPUs; I think this will leave some cornor cases for the shallow idle state CPUs may stay in idle state for long time.
Leo, do you have a feel for if this is a very rare event or something we can repro with a test case easily?
I generated one rt-app case which can reproduce it quickly on Hikey, please note I saw this issue is much easier to reproduce in Android rather than generic Linux.
Please see the slides [1]: http://www.slideshare.net/linaroorg/las16tr04-using-tracing-to-tune-and-opti...
In the slides the second example is to reproduce this issue with LISA rt-app scripts, the notebook file to generate rt-app workload in the folder: https://fileserver.linaro.org/owncloud/index.php/s/5gpVpzN0FdxMmGl?path=%2Fs...
Thanks, Leo Yan