Search Linux Wireless

Re: debugging TXQs being empty

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,

Thanks!

On Thu, 2019-12-05 at 17:05 -0800, Kan Yan wrote:
> > Anyhow, do you have any tips on debugging this? This is still without
> > AQL code. The AQM stats for the AP look fine, basically everything is 0
> > except for "new-flows", "tx-bytes" and "tx-packets".
> 
> If the "backlog" field is also 0, then it is a sign that the TCP stack
> is not feeding packets fast enough.

Mostly, not always. One thing I do noticed there now is that I get like
64k packets into the driver.

Maybe somehow TSO is interacting badly with the TXQs and the tracking
here, since TSO makes the traffic *very* bursty? A 64k packet in the
driver will typically expand to 9 or 10 A-MSDUs I think?

> > One thing that does seem odd is that the new-flows counter is increasing
> > this rapidly - shouldn't we expect it to be like 10 new flows for 10 TCP
> > sessions? I see this counter increase by the thousands per second.
> 
> This could be normal. When a flow queue is completely drained, it will
> be deleted. Next packet will be in the "new_flows". This is another
> sign of the bottleneck maybe at TCP stack.

Right, Toke pointed that out too.

> >  CPU load is not an issue AFAICT, even with all the debugging being
> > written into the syslog (or journal or something) that's the only thing
> > that takes noticable CPU time - ~50% for systemd-journal and ~20% for
> > rsyslogd, <10% for the throughput testing program and that's about it.
> > The system has 4 threads and seems mostly idle.
> 
> What's CPU usage for software irq? Is CPU usage average of all cores? 
> Maybe the core that handles packet processing or softirq is maxed out
> even the average is fine.

Agree, I didn't really say that well. I'm really just ballparking this
by using 'top', but even the *most* loaded of the 4 CPUs (threads?) is
at >80% idle, <6% softirq and <12% sys for the duration of the test.

> Are you using iperf or netperf? increase the TCP windows size may
> help. Adjust things like "net.core.wmem_max" and "net.ipv4.tcp_mem"
> maybe necessary to enable iperf to use larger windows.

Chariot :)

Anyway, this had no effect. I'll go play with the TSO next, for some
reason our driver won't let me disable it dynamically (I guess I should
just fix that).

johannes




[Index of Archives]     [Linux Host AP]     [ATH6KL]     [Linux Wireless Personal Area Network]     [Linux Bluetooth]     [Wireless Regulations]     [Linux Netdev]     [Kernel Newbies]     [Linux Kernel]     [IDE]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite Hiking]     [MIPS Linux]     [ARM Linux]     [Linux RAID]

  Powered by Linux