lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening linux-cve-announce PHC | |
Open Source and information security mailing list archives
| ||
|
Date: Sun, 10 Nov 2013 21:55:26 -0800 From: Eric Dumazet <eric.dumazet@...il.com> To: Sujith Manoharan <sujith@...jith.org> Cc: Eric Dumazet <edumazet@...gle.com>, netdev@...r.kernel.org Subject: Re: TCP performance regression On Mon, 2013-11-11 at 11:00 +0530, Sujith Manoharan wrote: > Hi, > > The commit, "tcp: TSQ can use a dynamic limit" causes a large > performance drop in TCP transmission with the wireless driver ath9k. > > With a 2-stream card (AR9462), the usual throughput is around 195 Mbps. > But, with this commit, it drops to ~125 Mbps, occasionally reaching 130. > > If the commit is reverted, performance is normal again and I can get > 190+ Mbps. Apparently, ath10k is also affected and a 250 Mbps drop > is seen (from an original 740 Mbps). I am afraid this commit shows bugs in various network drivers. All drivers doing TX completion using a timer are buggy. Random example : drivers/net/ethernet/marvell/mvneta.c #define MVNETA_TX_DONE_TIMER_PERIOD 10 /* Trigger tx done timer in MVNETA_TX_DONE_TIMER_PERIOD msecs */ static void mvneta_add_tx_done_timer(struct mvneta_port *pp) { if (test_and_set_bit(MVNETA_F_TX_DONE_TIMER_BIT, &pp->flags) == 0) { pp->tx_done_timer.expires = jiffies + msecs_to_jiffies(MVNETA_TX_DONE_TIMER_PERIOD); add_timer(&pp->tx_done_timer); } } Holding skb 10 ms before TX completion is totally wrong and must be fixed. If really NIC is not able to trigger an interrupt after TX completion, then driver should call skb_orphan() in its ndo_start_xmit() -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@...r.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists