]> Cypherpunks repositories - gostls13.git/commit
runtime: execute memory barrier conditionally when changing netpoll timers
authorDmitry Vyukov <dvyukov@google.com>
Wed, 31 Oct 2018 16:56:14 +0000 (17:56 +0100)
committerDmitry Vyukov <dvyukov@google.com>
Fri, 2 Nov 2018 12:53:20 +0000 (12:53 +0000)
commit31e7842f3d3f85f7aec5ca72f59befce9f58a3b6
tree8915fdc7b7d83b8d149ea590a220ac89212dd343
parentff51353c3887b9d83130d958fb503ff1f2291fde
runtime: execute memory barrier conditionally when changing netpoll timers

We only need the memory barrier in poll_runtime_pollSetDeadline only
when one of the timers has fired, which is not the expected case.
Memory barrier can be somewhat expensive on some archs,
so execute it only if one of the timers has in fact fired.

name                  old time/op  new time/op  delta
TCP4OneShotTimeout-6  17.0µs ± 0%  17.1µs ± 0%  +0.35%  (p=0.032 n=5+5)
SetReadDeadline-6      232ns ± 0%   230ns ± 0%  -1.03%  (p=0.000 n=4+5)

Update #25729

Change-Id: Ifce6f505b9e7ba3717bad8f454077a2e94ea6e75
Reviewed-on: https://go-review.googlesource.com/c/146343
Reviewed-by: Ian Lance Taylor <iant@golang.org>
src/runtime/netpoll.go