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, 28 Sep 2014 02:22:33 +0200 From: Hannes Frederic Sowa <hannes@...essinduktion.org> To: Eric Dumazet <eric.dumazet@...il.com> Cc: Or Gerlitz <gerlitz.or@...il.com>, Alexei Starovoitov <ast@...mgrid.com>, "David S. Miller" <davem@...emloft.net>, Jesper Dangaard Brouer <brouer@...hat.com>, Eric Dumazet <edumazet@...gle.com>, John Fastabend <john.r.fastabend@...el.com>, Linux Netdev List <netdev@...r.kernel.org>, Amir Vadai <amirv@...lanox.com>, Or Gerlitz <or.gerlitz@...il.com> Subject: Re: [PATCH net-next] mlx4: optimize xmit path On Sun, Sep 28, 2014, at 02:05, Eric Dumazet wrote: > On Sun, 2014-09-28 at 01:44 +0200, Hannes Frederic Sowa wrote: > > Hi Eric, > > > > On Sun, Sep 28, 2014, at 00:56, Eric Dumazet wrote: > > > - ring->cons += txbbs_skipped; > > > + > > > + /* we want to dirty this cache line once */ > > > + ACCESS_ONCE(ring->last_nr_txbb) = last_nr_txbb; > > > + ACCESS_ONCE(ring->cons) = ring_cons + txbbs_skipped; > > > + > > > > Impressive work! > > > > I wonder if another macro might be useful for those kind of > > dereferences, because ACCESS_ONCE is associated with correctness in my > > mind and those usages only try to optimize access patterns. > > Does OPTIMIZER_HIDE_VAR generate the same code? > > > If we have > > ring->cons += txbbs_skipped; > > Then compiler might issue a RMW instruction. > > And this is bad in this case. > > I really want to _write_ into this location, and its fast because I > already have in ring_cons the content I fetched maybe hundred of > nanoseconds before, or even thousand of nanoseconds before. > > ACCESS_ONCE(XXXX) = y > > Is not only for correctness. > > It exactly documents the fact that we want to perform a single write. > > I believe it is time that people understand how useful is this helper > (Less than 700 occurrences in the whole kernel today, not including > Documentation/*) Understood, thanks. For me ACCESS_ONCE was something which slowed down code till today. Also I have the feeling that instruction scheduling in the compiler could do a better job in some places... Now I wonder if it is worth it playing around with the restrict keyword and strict-aliasing in networking. ;) Bye, Hannes -- 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