diff options
author | Paolo Abeni <pabeni@redhat.com> | 2017-10-24 13:41:01 +0300 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2017-10-27 05:52:52 +0300 |
commit | 32d18ab1d44166cbb1dcaf8b359183636734ddb1 (patch) | |
tree | 35337519773d8a269fcbcc72b706f0d6fef57c51 /include/net/dst.h | |
parent | a4484705b1b16174757f68f19d3427427f96b643 (diff) | |
download | linux-32d18ab1d44166cbb1dcaf8b359183636734ddb1.tar.xz |
net: updating dst lastusage is an unlikely event.
Since commit 0da4af00b2ed ("ipv6: only update __use and lastusetime
once per jiffy at most"), updating the dst lastuse field is an
unlikely action: it happens at most once per jiffy, out of
potentially millions of calls per second.
Mark explicitly the code as such, and let the compiler generate
better code.
Note: gcc 7.2 and several older versions do actually generate
different - better - code when the unlikely() hint is in place,
avoid jump in the fast path and keeping better code locality.
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'include/net/dst.h')
-rw-r--r-- | include/net/dst.h | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/include/net/dst.h b/include/net/dst.h index 5047e8053d6c..2f53ecc2c296 100644 --- a/include/net/dst.h +++ b/include/net/dst.h @@ -257,7 +257,7 @@ static inline void dst_hold(struct dst_entry *dst) static inline void dst_use_noref(struct dst_entry *dst, unsigned long time) { - if (time != dst->lastuse) { + if (unlikely(time != dst->lastuse)) { dst->__use++; dst->lastuse = time; } |