Performance Bottlenecks

Developer page meant for tracking (potential) performance issues.

autofp runmode

Autofp has 3 potential bottlenecks:

1. every packet traverses 2 threads, the pkt acq/decode/flow and the stream/detect/output.

2. because of (1) there is a queue between them, requiring locks

3. both threads in (1) require a flow lock, leading to contention (the new lock profiling code shows that nicely)

On the flip side, autofp does somewhat intelligent flow based load balancing, based on how busy a thread is.

potential solutions

Move (core of) flow handling to stream/detect/output thread so that we don't need a flow lock in the pkt acq thread.