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
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <1382379876.3284.76.camel@edumazet-glaptop.roam.corp.google.com>
Date:	Mon, 21 Oct 2013 11:24:36 -0700
From:	Eric Dumazet <eric.dumazet@...il.com>
To:	Jimmy PERCHET <jimmy.perchet@...rot.com>
Cc:	Giuseppe CAVALLARO <peppe.cavallaro@...com>, netdev@...r.kernel.org
Subject: Re: [PATCH RFC 5/5] net:stmmac: asynchronous tx_clean

On Mon, 2013-10-21 at 20:05 +0200, Jimmy PERCHET wrote:

> I understand your point. Nevertheless I think it is still possible
> to avoid serialization, and therefore increase performance, even if
> completions must remain in softirq. What do you think ?

I think this will break over time. This kind of 'optimizations' work on
a particular workload, and thats it. It reminds me the 'skb recycle'
thing.

The workload you try to optimize might conflict with other workloads.

Have you tried to reduce the 64 value in netif_napi_add() ?

> 
> In my patch I tried to avoid any race condition. (by updating both
> descriptor's cursors only once, for instance)
> Could you explain the possible race you see ?

Well, take a look at netif_queue_stopped(), netif_wake_queue(),
netif_queue_stopped() calls for a start.

Its really hard to make start_xmit() lockless (versus TX completion).

Adding atomic_t wont be enough (and btw thats often not needed at all)

drivers/net/ethernet/broadcom/tg3.c is a good reference if you really
want to do that properly.



--
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

Powered by Openwall GNU/*/Linux Powered by OpenVZ