lkml.org 
[lkml]   [2019]   [Mar]   [26]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[RFC 3/4] net/fib: Check budget before should_{inflate,halve}()
    Date
    Those functions are compute-costly, if we're out of budget - better
    omit additional computations.

    Signed-off-by: Dmitry Safonov <dima@arista.com>
    ---
    net/ipv4/fib_trie.c | 4 ++--
    1 file changed, 2 insertions(+), 2 deletions(-)

    diff --git a/net/ipv4/fib_trie.c b/net/ipv4/fib_trie.c
    index d90cf9dfd443..2ce2739e7693 100644
    --- a/net/ipv4/fib_trie.c
    +++ b/net/ipv4/fib_trie.c
    @@ -868,7 +868,7 @@ static struct key_vector *resize(struct trie *t, struct key_vector *tn,
    /* Double as long as the resulting node has a number of
    * nonempty nodes that are above the threshold.
    */
    - while (should_inflate(tp, tn) && *budget) {
    + while (*budget && should_inflate(tp, tn)) {
    tp = inflate(t, tn, budget);
    if (!tp) {
    #ifdef CONFIG_IP_FIB_TRIE_STATS
    @@ -894,7 +894,7 @@ static struct key_vector *resize(struct trie *t, struct key_vector *tn,
    /* Halve as long as the number of empty children in this
    * node is above threshold.
    */
    - while (should_halve(tp, tn) && *budget) {
    + while (*budget && should_halve(tp, tn)) {
    tp = halve(t, tn, budget);
    if (!tp) {
    #ifdef CONFIG_IP_FIB_TRIE_STATS
    --
    2.21.0
    \
     
     \ /
      Last update: 2019-03-26 16:31    [W:2.626 / U:0.820 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site