• Nikolay Aleksandrov's avatar
    inet: frag: set limits and make init_net's high_thresh limit global · 1bab4c75
    Nikolay Aleksandrov authored
    This patch makes init_net's high_thresh limit to be the maximum for all
    namespaces, thus introducing a global memory limit threshold equal to the
    sum of the individual high_thresh limits which are capped.
    It also introduces some sane minimums for low_thresh as it shouldn't be
    able to drop below 0 (or > high_thresh in the unsigned case), and
    overall low_thresh should not ever be above high_thresh, so we make the
    following relations for a namespace:
    init_net:
     high_thresh - max(not capped), min(init_net low_thresh)
     low_thresh - max(init_net high_thresh), min (0)
    
    all other namespaces:
     high_thresh = max(init_net high_thresh), min(namespace's low_thresh)
     low_thresh = max(namespace's high_thresh), min(0)
    
    The major issue with having low_thresh > high_thresh is that we'll
    schedule eviction but never evict anything and thus rely only on the
    timers.
    Signed-off-by: default avatarNikolay Aleksandrov <nikolay@redhat.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    1bab4c75
ip_fragment.c 20.1 KB