aboutsummaryrefslogtreecommitdiffstats
path: root/lib/debugobjects.c
diff options
context:
space:
mode:
authorLai Jiangshan <[email protected]>2008-06-12 08:43:07 +0000
committerIngo Molnar <[email protected]>2008-06-12 12:29:54 +0000
commit7a232e0350940d2664f4de5cc3f0f443bae5062d (patch)
treebb91a53faab7bf6e92df127f8bdb2225cf808925 /lib/debugobjects.c
parentsched: fair group: fix overflow(was: fix divide by zero) (diff)
downloadkernel-7a232e0350940d2664f4de5cc3f0f443bae5062d.tar.gz
kernel-7a232e0350940d2664f4de5cc3f0f443bae5062d.zip
sched: 64-bit: fix arithmetics overflow
(overflow means weight >= 2^32 here, because inv_weigh = 2^32/weight) A weight of a cfs_rq is the sum of weights of which entities are queued on this cfs_rq, so it will overflow when there are too many entities. Although, overflow occurs very rarely, but it break fairness when it occurs. 64-bits systems have more memory than 32-bit systems and 64-bit systems can create more process usually, so overflow may occur more frequently. This patch guarantees fairness when overflow happens on 64-bit systems. Thanks to the optimization of compiler, it changes nothing on 32-bit. Signed-off-by: Lai Jiangshan <[email protected]> Acked-by: Peter Zijlstra <[email protected]> Signed-off-by: Ingo Molnar <[email protected]>
Diffstat (limited to 'lib/debugobjects.c')
0 files changed, 0 insertions, 0 deletions