• Leslie Monis's avatar
    pie: remove pie_vars->accu_prob_overflows · 105e808c
    Leslie Monis authored
    The variable pie_vars->accu_prob is used as an accumulator for
    probability values. Since probabilty values are scaled using the
    MAX_PROB macro denoting (2^64 - 1), pie_vars->accu_prob is
    likely to overflow as it is of type u64.
    
    The variable pie_vars->accu_prob_overflows counts the number of
    times the variable pie_vars->accu_prob overflows.
    
    The MAX_PROB macro needs to be equal to at least (2^39 - 1) in
    order to do precise calculations without any underflow. Thus
    MAX_PROB can be reduced to (2^56 - 1) without affecting the
    precision in calculations drastically. Doing so will eliminate
    the need for the variable pie_vars->accu_prob_overflows as the
    variable pie_vars->accu_prob will never overflow.
    
    Removing the variable pie_vars->accu_prob_overflows also reduces
    the size of the structure pie_vars to exactly 64 bytes.
    Signed-off-by: default avatarMohit P. Tahiliani <tahiliani@nitk.edu.in>
    Signed-off-by: default avatarGautam Ramakrishnan <gautamramk@gmail.com>
    Signed-off-by: default avatarLeslie Monis <lesliemonis@gmail.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    105e808c
sch_pie.c 14.9 KB