Paul Turner, on Mon 19 Dec 2016 14:44:38 -0800, wrote: > On Mon, Dec 19, 2016 at 2:40 PM, Samuel Thibault > <[email protected]> wrote: > > 2159197d6677 ("sched/core: Enable increased load resolution on 64-bit > > kernels") > > > > exposed yet another miscalculation in calc_cfs_shares: MIN_SHARES is > > unscaled, > > and must thus be scaled before being manipulated against "shares" amounts. > > It's actually intentional that MIN_SHARES is un-scaled here, this is > necessary to support the goal of sub-partitioning groups with small > shares.
Uh? you mean it's normal that MIN_SHARES is here compared as such against "shares" while e.g. in sched_group_set_shares or effective_load it is scaled before comparing with "shares"? > E.g. A group with shares=2 and 5 threads will internally provide 2048 > units of weight for the load-balancer to account for their > distribution. But here "shares" is already scaled, so > > - if (shares < MIN_SHARES) > > - shares = MIN_SHARES; ... > > return shares; This will only make sure that the returned shares is 2, not 2048. Samuel

