[PATCH v2 0/2] sched/loadavg: Fix loadavg spikes and sprinkle {READ,WRITE}_ONCE()
From: Matt Fleming
Date: Fri Feb 17 2017 - 07:07:40 EST
Peter, Frederic,
Here's a v2 of the patch series to fix the loadavg spikes I'm seeing
on a v3.12 based kernel, caused by delaying load sampling if a sample
period was crossed while in NO_HZ idle.
I tried to make the changelog for PATCH 1 clearer this time around by
incorporating suggestions from both of you. Please let me know if it's
still unclear.
PATCH 2 addresses Peter's comment:
"Irrespective the above though; should we not make this:
+ this_rq->calc_load_update = READ_ONCE(calc_load_update);
because if for some reason we do a double load of calc_load_update and
see two different values, weird stuff could happen.
And because, on general principle, a READ_ONCE() should be paired with a
WRITE_ONCE(), that should be done too I suppose."
The v1 of the patch can be found here:
https://lkml.kernel.org/r/20170208132924.3038-1-matt@xxxxxxxxxxxxxxxxxxx
Matt Fleming (2):
sched/loadavg: Avoid loadavg spikes caused by delayed NO_HZ accounting
sched/loadavg: Use {READ,WRITE}_ONCE() for sample window
kernel/sched/loadavg.c | 20 ++++++++++++--------
1 file changed, 12 insertions(+), 8 deletions(-)
--
2.10.0