[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <ea27aeb8-e983-c22c-1217-0a38dceaec1c@iogearbox.net>
Date: Tue, 15 Feb 2022 22:04:05 +0100
From: Daniel Borkmann <daniel@...earbox.net>
To: Martin KaFai Lau <kafai@...com>, bpf@...r.kernel.org,
netdev@...r.kernel.org
Cc: Alexei Starovoitov <ast@...nel.org>,
Andrii Nakryiko <andrii@...nel.org>,
David Miller <davem@...emloft.net>,
Eric Dumazet <edumazet@...gle.com>,
Jakub Kicinski <kuba@...nel.org>, kernel-team@...com,
Willem de Bruijn <willemb@...gle.com>
Subject: Re: [PATCH v4 net-next 3/8] net: Set skb->mono_delivery_time and
clear it after sch_handle_ingress()
On 2/11/22 8:12 AM, Martin KaFai Lau wrote:
[...]
> +
> +DECLARE_STATIC_KEY_FALSE(netstamp_needed_key);
> +
> +/* It is used in the ingress path to clear the delivery_time.
> + * If needed, set the skb->tstamp to the (rcv) timestamp.
> + */
> +static inline void skb_clear_delivery_time(struct sk_buff *skb)
> +{
> + if (unlikely(skb->mono_delivery_time)) {
> + skb->mono_delivery_time = 0;
> + if (static_branch_unlikely(&netstamp_needed_key))
> + skb->tstamp = ktime_get_real();
> + else
> + skb->tstamp = 0;
> + }
> }
>
> static inline void skb_clear_tstamp(struct sk_buff *skb)
> @@ -3946,6 +3961,14 @@ static inline void skb_clear_tstamp(struct sk_buff *skb)
> skb->tstamp = 0;
> }
>
> +static inline ktime_t skb_tstamp(const struct sk_buff *skb)
> +{
> + if (unlikely(skb->mono_delivery_time))
> + return 0;
> +
> + return skb->tstamp;
> +}
> +
> static inline u8 skb_metadata_len(const struct sk_buff *skb)
> {
Just small nit, but I don't think here and in other patches as well the conditional
for skb->mono_delivery_time should be marked unlikely(). For container workloads
this is very likely.
Powered by blists - more mailing lists