#
da30fdf9 |
|
05-Jan-2018 |
Michael Lotz <mmlr@mlotz.ch> |
kernel: Fix overflow in load tracking for very large deltas. The scheduler uses the load tracking logic to compute the load of threads to be enqueued into the run queue. The time delta between the last enqueue and the next enqueue may grow very large for threads that mostly wait on conditions. In such cases the int "n" period count variable would become too small and wrap around, leading to an assertion failure. For this to happen, the thread in question would have to have slept for at least ~25 days and then wake up. Threads often affected would be ones waiting for some other process to end, for example shell threads waiting for a long running process to exit. Fixes #13558.
|
#
a96e17ba |
|
05-Feb-2014 |
Pawel Dziepak <pdziepak@quarnos.org> |
kernel: Adjust load tracking interval
|
#
a2634874 |
|
08-Jan-2014 |
Pawel Dziepak <pdziepak@quarnos.org> |
scheduler: Estimate the load thread is able to produce Previous implementation based on the actual load of each core and share each thread has in that load turned up to be very problematic when balancing load on very heavily loaded systems (i.e. more threads consuming all available CPU time than there is logical CPUs). The new approach is to estimate how much load would a thread produce if it had all CPU time only for itself. Summing such load estimations of each thread assigned to a given core we get a rank that contains much more information than just simple actual core load.
|
#
9c2e74da |
|
20-Nov-2013 |
Pawel Dziepak <pdziepak@quarnos.org> |
scheduler: Move mode specific logic to separate files
|
#
6a164daa |
|
17-Nov-2013 |
Pawel Dziepak <pdziepak@quarnos.org> |
kernel: Track load produced by interrupt handlers
|
#
a96e17ba9d3cf1b7e576fb62a7f06ffbe80cfc97 |
|
05-Feb-2014 |
Pawel Dziepak <pdziepak@quarnos.org> |
kernel: Adjust load tracking interval
|
#
a2634874ed5e33a36fe83c272614e2042fafde1d |
|
08-Jan-2014 |
Pawel Dziepak <pdziepak@quarnos.org> |
scheduler: Estimate the load thread is able to produce Previous implementation based on the actual load of each core and share each thread has in that load turned up to be very problematic when balancing load on very heavily loaded systems (i.e. more threads consuming all available CPU time than there is logical CPUs). The new approach is to estimate how much load would a thread produce if it had all CPU time only for itself. Summing such load estimations of each thread assigned to a given core we get a rank that contains much more information than just simple actual core load.
|
#
9c2e74da043b32ecd64a0ec4f4917f83ac6cc10f |
|
20-Nov-2013 |
Pawel Dziepak <pdziepak@quarnos.org> |
scheduler: Move mode specific logic to separate files
|
#
6a164daad43169daf0a407fb1f6b0484671ff466 |
|
17-Nov-2013 |
Pawel Dziepak <pdziepak@quarnos.org> |
kernel: Track load produced by interrupt handlers
|