aboutsummaryrefslogtreecommitdiffstats
path: root/debian/wireshark-common.lintian-overrides
diff options
context:
space:
mode:
authorDarius Davis <darius@vmware.com>2021-02-21 20:54:40 +1000
committerDarius Davis <darius@vmware.com>2021-02-22 17:00:54 +1000
commitf895014f6869f201b013c35a0e234cdd0137d170 (patch)
tree7c2250e5b16c5992d745adcb02cad842e6cf3340 /debian/wireshark-common.lintian-overrides
parent297246093b1639fe989b1060e847df878050bc9e (diff)
reassemble: Improve perf of free_all_reassembled_fragments.
When we're walking the list of fragments to free, if we encounter FD_VISITED_FREE, we can conclude traversal of this fragment list immediately (and go to the next hash bucket), since everything subsequent to this point in the list has already been processed by free_all_reassembled_fragments. This trims an O(n^2) hash table iteration down to O(n). Before this change, a very ugly 1.1 GByte TFTP capture (with lots of out-of-order and retransmitted blocks) takes 4 hours to process with tftp.defragment=TRUE -- output completes after 1.25 hours, and then about 2.75 hours of time is spent doing repeated list traversals within free_all_reassembled_fragments...(!) With this change, the same test completes in 1.25 hours, with the cleanup taking just 71 msec. Tested also with reassemble_test under Valgrind; No issues/leaks were reported.
Diffstat (limited to 'debian/wireshark-common.lintian-overrides')
0 files changed, 0 insertions, 0 deletions