aboutsummaryrefslogtreecommitdiffstats
path: root/include/net/dst.h
diff options
context:
space:
mode:
authorPaolo Abeni <pabeni@redhat.com>2017-10-24 12:41:01 +0200
committerDavid S. Miller <davem@davemloft.net>2017-10-27 11:52:52 +0900
commit32d18ab1d44166cbb1dcaf8b359183636734ddb1 (patch)
tree35337519773d8a269fcbcc72b706f0d6fef57c51 /include/net/dst.h
parentMerge branch 'tcp-smc-rendezvous' (diff)
downloadlinux-dev-32d18ab1d44166cbb1dcaf8b359183636734ddb1.tar.xz
linux-dev-32d18ab1d44166cbb1dcaf8b359183636734ddb1.zip
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.h2
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;
}