On Mon, Dec 21, 2015 at 12:25 PM, Oleksandr Natalenko <oleksa...@natalenko.name> wrote: > Commit 3759824da87b30ce7a35b4873b62b0ba38905ef5 (tcp: PRR uses CRB mode by > default and SS mode conditionally) introduced changes to net/ipv4/tcp_input.c > tcp_cwnd_reduction() that, possibly, cause division by zero, and therefore, > kernel panic in interrupt handler [1]. > > Reverting 3759824da87b30ce7a35b4873b62b0ba38905ef5 seems to fix the issue. > > I'm able to reproduce the issue on 4.3.0–4.3.3 once per several day > (occasionally). > > What could be done to help in debugging this issue? Do you have ECN enabled (i.e. sysctl net.ipv4.tcp_ecn > 0)?
If so I suspect an ACK carrying ECE during CA_Loss causes entering CWR state w/o calling tcp_init_cwnd_reduct() to set tp->prior_cwnd. Can you try this debug / quick-fix patch and send me the error message if any? > > Regards, > Oleksandr. > > [1] http://i.piccy.info/ > i9/6f5cb187c4ff282d189f78c63f95af43/1450729403/283985/951663/panic.jpg
0001-tcp-debug-tcp_cwnd_reduction-div0.patch
Description: Binary data