summaryrefslogtreecommitdiffstats
path: root/drivers/net/ethernet/ti/davinci_emac.c
diff options
context:
space:
mode:
authorEric Dumazet2012-01-03 01:00:11 +0100
committerDavid S. Miller2012-01-03 19:03:20 +0100
commitfa0f5aa74316c636427ac92dad0bc5714c34ca17 (patch)
tree64fcb6a7f4043cdaea4a13b730a1ca651190e314 /drivers/net/ethernet/ti/davinci_emac.c
parentsch_qfq: accurate wsum handling (diff)
downloadkernel-qcow2-linux-fa0f5aa74316c636427ac92dad0bc5714c34ca17.tar.gz
kernel-qcow2-linux-fa0f5aa74316c636427ac92dad0bc5714c34ca17.tar.xz
kernel-qcow2-linux-fa0f5aa74316c636427ac92dad0bc5714c34ca17.zip
net_sched: qdisc_alloc_handle() can be too slow
When trying to allocate ~32768 qdiscs using autohandle mechanism, we can fill the space managed by kernel (handles in [8000-FFFF]:0000 range) But O(N^2) qdisc_alloc_handle() loops 0x10000 times instead of 0x8000 time tc add qdisc add dev eth0 parent 10:7fff pfifo limit 10 RTNETLINK answers: Cannot allocate memory real 1m54.826s user 0m0.000s sys 0m0.004s INFO: rcu_sched_state detected stall on CPU 0 (t=60000 jiffies) Half number of loops, and add a cond_resched() call. We hold rtnl at this point. Signed-off-by: Eric Dumazet <eric.dumazet@gmail.com> CC: Dave Taht <dave.taht@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/ethernet/ti/davinci_emac.c')
0 files changed, 0 insertions, 0 deletions