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 PHC | |
Open Source and information security mailing list archives
| ||
|
Date: Sun, 15 May 2016 11:19:53 +0200 From: Francois Romieu <romieu@...zoreil.com> To: Shuyu Wei <wsy2220@...il.com> Cc: wxt@...k-chips.com, davem@...emloft.net, heiko@...ech.de, linux-rockchip@...ts.infradead.org, netdev@...r.kernel.org Subject: Re: [PATCH] ethernet:arc: Fix racing of TX ring buffer Shuyu Wei <wsy2220@...il.com> : [...] > I don't think taking txbd_curr and txbd_dirty only as hints is a good idea. > That could be a big waste, since tx_clean have to go through all the txbds. Sorry if my point was not clear: arc_emac_tx_clean() does not need to change (at least not for the reason given in the commit message) :o) Current code: static void arc_emac_tx_clean(struct net_device *ndev) { [...] for (i = 0; i < TX_BD_NUM; i++) { unsigned int *txbd_dirty = &priv->txbd_dirty; struct arc_emac_bd *txbd = &priv->txbd[*txbd_dirty]; struct buffer_state *tx_buff = &priv->tx_buff[*txbd_dirty]; struct sk_buff *skb = tx_buff->skb; unsigned int info = le32_to_cpu(txbd->info); if ((info & FOR_EMAC) || !txbd->data || !skb) break; ^^^^^ -> the "break" statement prevents reading all txbds. At most one extra descriptor is read and this driver isn't in the Mpps business. > I tried your advice, Tx throughput can only reach 5.52MB/s. Even with the original code above ? > Leaving one sent packet in tx_clean is acceptable if we respect to txbd_curr > and txbd_dirty, since the ignored packet will be cleaned when new packets > arrive. There is no reason to leave tx packet roting in the first place. Really. I doubt it would help bql for one. Packet may rot because of unexpected hardware behavior and driver should cope with it when it is diagnosed, sure. However, you don't want the driver to opens it own unbounded window. Next packet: 10 us, 10 ms, 10 s ? -- Ueimor
Powered by blists - more mailing lists