> On 14 Dec 2019, at 11:56, Kevin 'ldir' Darbyshire-Bryant 
> <l...@darbyshire-bryant.me.uk> wrote:
> 
> 
> 
>> On 14 Dec 2019, at 10:35, Kevin 'ldir' Darbyshire-Bryant 
>> <l...@darbyshire-bryant.me.uk> wrote:
>> 
>> 
>> 
>>> On 14 Dec 2019, at 10:01, Thibaut <ha...@slashdirt.org> wrote:
>>> 
>>> 
>>> 
>>>> 
>>>> That's extremely odd.  That commit should only affect traffic carrying the 
>>>> LE DSCP, which is not the default.
>>>> 
>>>> Perhaps it was not actually the code change, but triggering a rebuild of 
>>>> the module?
>>> 
>>> No. I tried with and without multiple times: I built, installed, manually 
>>> unloaded the module, made sure it was unloaded, loaded the new build; just 
>>> to make sure as I noticed the module doesn’t print anything in dmesg when 
>>> it’s loaded (feature request: print the current build version when loading, 
>>> that would be most helpful in these circumstances).
>>> 
>>> There is absolutely no doubt that on my router, with this commit CAKE is 
>>> broken, without it isn’t.
>>> 
>>> Here’s tc -s output with the broken version:
>>> 
>>> tc -s qdisc show dev wan
>>> qdisc cake 800f: root refcnt 2 bandwidth 1200Kbit diffserv3 dual-srchost 
>>> nat nowash ack-filter split-gso rtt 100.0ms atm overhead 48 no-sce
>>> Sent 7711782 bytes 5454 pkt (dropped 144, overlimits 15493 requeues 0)
>>> backlog 1616b 2p requeues 0
>>> memory used: 140864b of 4Mb
>>> capacity estimate: 1200Kbit
>>> min/max network layer size:           40 /    1500
>>> min/max overhead-adjusted size:      106 /    1749
>>> average network hdr offset:           14
>>> 
>>>                 Bulk  Best Effort        Voice
>>> thresh         75Kbit     1200Kbit      300Kbit
>>> target        242.2ms       15.1ms       60.6ms
>>> interval      484.5ms      110.1ms      155.6ms
>>> pk_delay          0us       60.0ms       26.8ms
>>> av_delay          0us       36.7ms        2.0ms
>>> sp_delay          0us       17.8ms        1.7ms
>>> backlog            0b        1514b         102b
>>> pkts                0         5467          133
>>> bytes               0      7913444        17970
>>> way_inds            0            0            0
>>> way_miss            0           44            2
>>> way_cols            0            0            0
>>> sce                 0            0            0
>>> marks               0            0            0
>>> drops               0          144            0
>>> ack_drop            0            0            0
>>> sp_flows            0            0            1
>>> bk_flows            0            1            0
>>> un_flows            0            0            0
>>> max_len             0         3028         1118
>>> quantum           300          300          300
>>> 
>>> qdisc ingress ffff: parent ffff:fff1 ----------------
>>> Sent 218759 bytes 3710 pkt (dropped 0, overlimits 0 requeues 0)
>>> backlog 0b 0p requeues 0
>>> 
>>> Here’s the same output with the unbroken version:
>>> 
>>> tc -s qdisc show dev wan
>>> qdisc cake 8011: root refcnt 2 bandwidth 1200Kbit diffserv3 dual-srchost 
>>> nat nowash ack-filter split-gso rtt 100.0ms atm overhead 48 no-sce
>>> Sent 3342962 bytes 2328 pkt (dropped 110, overlimits 6422 requeues 0)
>>> backlog 4542b 3p requeues 0
>>> memory used: 83328b of 4Mb
>>> capacity estimate: 1200Kbit
>>> min/max network layer size:           40 /    1500
>>> min/max overhead-adjusted size:      106 /    1749
>>> average network hdr offset:           14
>>> 
>>>                 Bulk  Best Effort        Voice
>>> thresh         75Kbit     1200Kbit      300Kbit
>>> target        242.2ms       15.1ms       60.6ms
>>> interval      484.5ms      110.1ms      155.6ms
>>> pk_delay          0us       56.8ms        9.9ms
>>> av_delay          0us       36.7ms        854us
>>> sp_delay          0us        9.4ms        680us
>>> backlog            0b        4542b           0b
>>> pkts                0         2403           38
>>> bytes               0      3509764         4280
>>> way_inds            0            0            0
>>> way_miss            0           17            1
>>> way_cols            0            0            0
>>> sce                 0            0            0
>>> marks               0            0            0
>>> drops               0          110            0
>>> ack_drop            0            0            0
>>> sp_flows            0            0            1
>>> bk_flows            0            1            0
>>> un_flows            0            0            0
>>> max_len             0         1514          294
>>> quantum           300          300          300
>>> 
>>> qdisc ingress ffff: parent ffff:fff1 ----------------
>>> Sent 106781 bytes 1896 pkt (dropped 0, overlimits 0 requeues 0)
>>> backlog 0b 0p requeues 0
>>> 
>>> 
>>> HTH
>>> Thibaut
>> 
>> Which shows most traffic going through Best Effort, whereas the LE DSCP 
>> would put it in Bulk, so at this point I’m failing to see the connection 
>> between that commit (which changes 3 lookup tables) and the behaviour change.
>> 
>> Can we see output from ’tc -s qdisc’ for the non-broken case please?
> 
> Brain fart!  The 2 different versions are there and we soe no difference in 
> traffic/tin allocation.  However, could we see the ifb4wan instances of cake 
> for both b0rken and unb0rken cases please?

The plot thickens. I was eventually able to reproduce the same buggy behavior 
without the HEAD commit, *sigh*

It appears that the bug happens randomly between consecutive module 
loads/unloads. It also appears that once the module is loaded in a “working 
state” it keeps working fine.

I’m wondering if this could be an “use of uninitialized data” type of bug.

Still digging.
Thibaut
_______________________________________________
Cake mailing list
Cake@lists.bufferbloat.net
https://lists.bufferbloat.net/listinfo/cake

Reply via email to