net: add skb_mstamp infrastructure
authorEric Dumazet <edumazet@google.com>
Wed, 26 Feb 2014 22:02:11 +0000 (14:02 -0800)
committerDavid S. Miller <davem@davemloft.net>
Wed, 26 Feb 2014 22:08:39 +0000 (17:08 -0500)
commit363ec392352e55c61ce2799c3f15f89f9429bba7
tree7457074aafefd96ae6885038c040cad8d31853d9
parent20d8435a1cffa04992f1db6b199a5f0ccec2ff06
net: add skb_mstamp infrastructure

ktime_get() is too expensive on some cases, and we'd like to get
usec resolution timestamps in TCP stack.

This patch adds a light weight facility using a combination of
local_clock() and jiffies samples.

Instead of :

        u64 t0, t1;

        t0 = ktime_get();
        // stuff
        t1 = ktime_get();
        delta_us = ktime_us_delta(t1, t0);

use :
        struct skb_mstamp t0, t1;

        skb_mstamp_get(&t0);
        // stuff
        skb_mstamp_get(&t1);
        delta_us = skb_mstamp_us_delta(&t1, &t0);

Note : local_clock() might have a (bounded) drift between cpus.

Do not use this infra in place of ktime_get() without understanding the
issues.

Signed-off-by: Eric Dumazet <edumazet@google.com>
Cc: Stephen Hemminger <stephen@networkplumber.org>
Cc: Yuchung Cheng <ycheng@google.com>
Cc: Neal Cardwell <ncardwell@google.com>
Cc: Larry Brakmo <brakmo@google.com>
Cc: Julian Anastasov <ja@ssi.bg>
Signed-off-by: David S. Miller <davem@davemloft.net>
include/linux/skbuff.h