[DCCP] ACKVEC: Optimization - Do not traverse records if none will be found
Do not traverse the list of ack vector records [proportional to window size] when we know we will not find what we are looking for. This is especially useful because ack vectors are checked twice: 1) Upon parsing of options. 2) Upon notification of a new ack. All of the work will occur during check #1. Therefore, when check #2 is performed, no new work will be done. This is now "detected" and there is no performance hit when doing #2. Signed-off-by: Andrea Bittau <a.bittau@cs.ucl.ac.uk> Signed-off-by: Gerrit Renker <gerrit@erg.abdn.ac.uk> Signed-off-by: Arnaldo Carvalho de Melo <acme@mandriva.com>
This commit is contained in:
committed by
David S. Miller
parent
09dbc3895e
commit
d23ca15a21
@@ -383,7 +383,8 @@ void dccp_ackvec_check_rcv_ackno(struct dccp_ackvec *av, struct sock *sk,
|
|||||||
(unsigned long long)avr->dccpavr_ack_ackno);
|
(unsigned long long)avr->dccpavr_ack_ackno);
|
||||||
dccp_ackvec_throw_record(av, avr);
|
dccp_ackvec_throw_record(av, avr);
|
||||||
break;
|
break;
|
||||||
}
|
} else if (avr->dccpavr_ack_seqno > ackno)
|
||||||
|
break; /* old news */
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user