[dns-operations] Open source release of the DNS-STATS Compactor

Robert Edmonds edmonds at mycre.ws
Thu Jun 22 18:37:00 UTC 2017


Jim Hague wrote:
> So, in summary, on old Trusty kernels and current Jessie, if you are
> using a pcap loop with select(), set a pcap timeout and set the select()
> timeout to the same period. It looks like it makes things better; I
> can't be sure it cures the problem.

This sounds like a TPACKET_V3 bug that was fixed in upstream kernel 3.19
(and likely not backported to Jessie's 3.16 kernel).


https://github.com/torvalds/linux/commit/da413eec729dae5dcb150e2eb34c5e7e5e4e1b49

Author:     Dan Collins <dan at dcollins.co.nz>
AuthorDate: Fri Dec 19 16:49:25 2014 +1300
Commit:     David S. Miller <davem at davemloft.net>
CommitDate: Mon Dec 22 15:41:15 2014 -0500

    packet: Fixed TPACKET V3 to signal poll when block is closed rather than every packet

    Make TPACKET_V3 signal poll when block is closed rather than for every
    packet. Side effect is that poll will be signaled when block retire
    timer expires which didn't previously happen. Issue was visible when
    sending packets at a very low frequency such that all blocks are retired
    before packets are received by TPACKET_V3. This caused avoidable packet
    loss. The fix ensures that the signal is sent when blocks are closed
    which covers the normal path where the block is filled as well as the
    path where the timer expires. The case where a block is filled without
    moving to the next block (ie. all blocks are full) will still cause poll
    to be signaled.

    Signed-off-by: Dan Collins <dan at dcollins.co.nz>
    Signed-off-by: David S. Miller <davem at davemloft.net>

-- 
Robert Edmonds



More information about the dns-operations mailing list