From: Martin KaFai Lau <martin.lau@linux.dev>
To: "Abhishek Chauhan (ABC)" <quic_abchauha@quicinc.com>
Cc: Willem de Bruijn <willemdebruijn.kernel@gmail.com>,
"David S. Miller" <davem@davemloft.net>,
Eric Dumazet <edumazet@google.com>,
Jakub Kicinski <kuba@kernel.org>, Paolo Abeni <pabeni@redhat.com>,
netdev@vger.kernel.org, linux-kernel@vger.kernel.org,
Andrew Halaney <ahalaney@redhat.com>,
Martin KaFai Lau <martin.lau@kernel.org>,
Daniel Borkmann <daniel@iogearbox.net>, bpf <bpf@vger.kernel.org>,
kernel@quicinc.com
Subject: Re: [RFC PATCH bpf-next v1 3/3] net: Add additional bit to support userspace timestamp type
Date: Wed, 10 Apr 2024 16:25:57 -0700 [thread overview]
Message-ID: <fcdf6dc6-81ff-48b8-822b-80c097efc07d@linux.dev> (raw)
In-Reply-To: <f28de1e7-4a9b-4a97-b4f9-723425725b58@quicinc.com>
On 4/10/24 1:25 PM, Abhishek Chauhan (ABC) wrote:
>>> @@ -830,6 +833,9 @@ enum skb_tstamp_type {
>>> * delivery_time in mono clock base (i.e. EDT). Otherwise, the
>>> * skb->tstamp has the (rcv) timestamp at ingress and
>>> * delivery_time at egress.
>>> + * delivery_time in mono clock base (i.e., EDT) or a clock base chosen
>>> + * by SO_TXTIME. If zero, skb->tstamp has the (rcv) timestamp at
>>> + * ingress.
>>> * @napi_id: id of the NAPI struct this skb came from
>>> * @sender_cpu: (aka @napi_id) source CPU in XPS
>>> * @alloc_cpu: CPU which did the skb allocation.
>>> @@ -960,7 +966,7 @@ struct sk_buff {
>>> /* private: */
>>> __u8 __mono_tc_offset[0];
>>> /* public: */
>>> - __u8 tstamp_type:1; /* See SKB_MONO_DELIVERY_TIME_MASK */
>>> + __u8 tstamp_type:2; /* See SKB_MONO_DELIVERY_TIME_MASK */
>>> #ifdef CONFIG_NET_XGRESS
>>> __u8 tc_at_ingress:1; /* See TC_AT_INGRESS_MASK */
The above "tstamp_type:2" change shifted the tc_at_ingress bit.
TC_AT_INGRESS_MASK needs to be adjusted.
>>> __u8 tc_skip_classify:1;
>>
>> With pahole, does this have an effect on sk_buff layout?
>>
> I think it does and it also impacts BPF testing. Hence in my cover letter i have mentioned that these
> changes will impact BPF. My level of expertise is very limited to BPF hence the reason for RFC.
> That being said i am actually trying to understand/learn BPF instructions to know things better.
> I think we need to also change the offset SKB_MONO_DELIVERY_TIME_MASK and TC_AT_INGRESS_MASK
>
>
> #ifdef __BIG_ENDIAN_BITFIELD
> #define SKB_MONO_DELIVERY_TIME_MASK (1 << 7) //Suspecting changes here too
> #define TC_AT_INGRESS_MASK (1 << 6) // and here
> #else
> #define SKB_MONO_DELIVERY_TIME_MASK (1 << 0)
> #define TC_AT_INGRESS_MASK (1 << 1) (this might have to change to 1<<2 )
This should be (1 << 2) now. Similar adjustment for the big endian.
> #endif
> #define SKB_BF_MONO_TC_OFFSET offsetof(struct sk_buff, __mono_tc_offset)
>
> Also i suspect i change in /selftests/bpf/prog_tests/ctx_rewrite.c
ctx_rewrite.c tests the bpf ctx rewrite code. In this particular case, it tests
the bpf_convert_tstamp_read() and bpf_convert_tstamp_write() generate the
correct bpf instructions.
e.g. "w11 &= 3;" is testing the following in bpf_convert_tstamp_read():
*insn++ = BPF_ALU32_IMM(BPF_AND, tmp_reg,
TC_AT_INGRESS_MASK | SKB_MONO_DELIVERY_TIME_MASK);
The existing "TC_AT_INGRESS_MASK | SKB_MONO_DELIVERY_TIME_MASK" is 0x3
and it should become 0x5 if my hand counts correctly.
The patch set cannot be applied to the bpf-next:
https://patchwork.kernel.org/project/netdevbpf/patch/20240409210547.3815806-4-quic_abchauha@quicinc.com/
, so bpf CI cannot run to reproduce the issue.
next prev parent reply other threads:[~2024-04-10 23:26 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-04-09 21:05 [RFC PATCH bpf-next v1 0/3] Rename mono_delivery_time to Abhishek Chauhan
2024-04-09 21:05 ` [RFC PATCH bpf-next v1 1/3] net: Rename mono_delivery_time to tstamp_type for scalabilty Abhishek Chauhan
2024-04-10 15:30 ` Willem de Bruijn
2024-04-10 19:04 ` Abhishek Chauhan (ABC)
2024-04-09 21:05 ` [RFC PATCH bpf-next v1 2/3] net: assign enum to skb->tstamp_type to distinguish between tstamp Abhishek Chauhan
2024-04-10 15:35 ` Willem de Bruijn
2024-04-10 19:07 ` Abhishek Chauhan (ABC)
2024-04-09 21:05 ` [RFC PATCH bpf-next v1 3/3] net: Add additional bit to support userspace timestamp type Abhishek Chauhan
2024-04-10 15:42 ` Willem de Bruijn
2024-04-10 20:25 ` Abhishek Chauhan (ABC)
2024-04-10 22:58 ` Willem de Bruijn
2024-04-10 23:25 ` Martin KaFai Lau [this message]
2024-04-10 23:39 ` Abhishek Chauhan (ABC)
2024-04-12 21:14 ` Abhishek Chauhan (ABC)
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=fcdf6dc6-81ff-48b8-822b-80c097efc07d@linux.dev \
--to=martin.lau@linux.dev \
--cc=ahalaney@redhat.com \
--cc=bpf@vger.kernel.org \
--cc=daniel@iogearbox.net \
--cc=davem@davemloft.net \
--cc=edumazet@google.com \
--cc=kernel@quicinc.com \
--cc=kuba@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=martin.lau@kernel.org \
--cc=netdev@vger.kernel.org \
--cc=pabeni@redhat.com \
--cc=quic_abchauha@quicinc.com \
--cc=willemdebruijn.kernel@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.