All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jakub Sitnicki <jakub@cloudflare.com>
To: Jiayuan Chen <mrpre@163.com>
Cc: bpf@vger.kernel.org,  john.fastabend@gmail.com,
	 netdev@vger.kernel.org, martin.lau@linux.dev,  ast@kernel.org,
	 edumazet@google.com, davem@davemloft.net,  dsahern@kernel.org,
	 kuba@kernel.org, pabeni@redhat.com,
	 linux-kernel@vger.kernel.org,  song@kernel.org,
	andrii@kernel.org,  mhal@rbox.co,  yonghong.song@linux.dev,
	daniel@iogearbox.net,  xiyou.wangcong@gmail.com,
	 horms@kernel.org, corbet@lwn.net,  eddyz87@gmail.com,
	 cong.wang@bytedance.com, shuah@kernel.org,  mykolal@fb.com,
	 jolsa@kernel.org,  haoluo@google.com, sdf@fomichev.me,
	 kpsingh@kernel.org,  linux-doc@vger.kernel.org
Subject: Re: [PATCH bpf v7 2/5] bpf: fix wrong copied_seq calculation
Date: Mon, 20 Jan 2025 11:13:08 +0100	[thread overview]
Message-ID: <87a5bliyiz.fsf@cloudflare.com> (raw)
In-Reply-To: <j5piuelz2xt65bn42bxufmk4nmigvzjotbygwd5tin7t6cvrsj@gpon5o7px7tu> (Jiayuan Chen's message of "Mon, 20 Jan 2025 11:35:37 +0800")

On Mon, Jan 20, 2025 at 11:35 AM +08, Jiayuan Chen wrote:
> On Sat, Jan 18, 2025 at 11:29:04PM +0800, Jiayuan Chen wrote:
>> On Sat, Jan 18, 2025 at 03:50:22PM +0100, Jakub Sitnicki wrote:
>> > On Thu, Jan 16, 2025 at 10:05 PM +08, Jiayuan Chen wrote:
>> > > 'sk->copied_seq' was updated in the tcp_eat_skb() function when the
>> > > action of a BPF program was SK_REDIRECT. For other actions, like SK_PASS,
>> > > +}
>> > > +#endif /* CONFIG_BPF_STREAM_PARSER */
>> > > +
>> > >  int tcp_bpf_update_proto(struct sock *sk, struct sk_psock *psock, bool restore)
>> > >  {
>> > >  	int family = sk->sk_family == AF_INET6 ? TCP_BPF_IPV6 : TCP_BPF_IPV4;
>> > > @@ -681,6 +722,12 @@ int tcp_bpf_update_proto(struct sock *sk, struct sk_psock *psock, bool restore)
>> > >  
>> > >  	/* Pairs with lockless read in sk_clone_lock() */
>> > >  	sock_replace_proto(sk, &tcp_bpf_prots[family][config]);
>> > > +#if IS_ENABLED(CONFIG_BPF_STREAM_PARSER)
>> > > +	if (psock->progs.stream_parser && psock->progs.stream_verdict) {
>> > > +		psock->copied_seq = tcp_sk(sk)->copied_seq;
>> > > +		psock->read_sock = tcp_bpf_strp_read_sock;
>> > 
>> > Just directly set psock->strp.cb.read_sock to tcp_bpf_strp_read_sock.
>> > Then we don't need this intermediate psock->read_sock callback, which
>> > doesn't do anything useful.
>> >
>> Ok, I will do this.
>> (BTW, I intended to avoid bringing "struct strparser" into tcp_bpf.c so I
>> added a wrapper function instead in skmsg.c without calling it directly) 
>> 
> I find that tcp_bpf_update_proto is called before sk_psock_init_strp. Any
> assignment of psock->cb.strp will be overwritten in sk_psock_init_strp.

Or just don't set ->read_sock in strp_init.
It's being reset only because you made it so in patch 1 :-)

  reply	other threads:[~2025-01-20 10:13 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-01-16 14:05 [PATCH bpf v7 0/5] bpf: fix wrong copied_seq calculation and add tests Jiayuan Chen
2025-01-16 14:05 ` [PATCH bpf v7 1/5] strparser: add read_sock callback Jiayuan Chen
2025-01-18 14:56   ` Jakub Sitnicki
2025-01-16 14:05 ` [PATCH bpf v7 2/5] bpf: fix wrong copied_seq calculation Jiayuan Chen
2025-01-18 14:50   ` Jakub Sitnicki
2025-01-18 15:29     ` Jiayuan Chen
2025-01-20  3:35       ` Jiayuan Chen
2025-01-20 10:13         ` Jakub Sitnicki [this message]
2025-01-16 14:05 ` [PATCH bpf v7 3/5] bpf: disable non stream socket for strparser Jiayuan Chen
2025-01-18 15:03   ` Jakub Sitnicki
2025-01-18 15:32     ` Jiayuan Chen
2025-01-16 14:05 ` [PATCH bpf v7 4/5] selftests/bpf: fix invalid flag of recv() Jiayuan Chen
2025-01-16 14:05 ` [PATCH bpf v7 5/5] selftests/bpf: add strparser test for bpf Jiayuan Chen

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=87a5bliyiz.fsf@cloudflare.com \
    --to=jakub@cloudflare.com \
    --cc=andrii@kernel.org \
    --cc=ast@kernel.org \
    --cc=bpf@vger.kernel.org \
    --cc=cong.wang@bytedance.com \
    --cc=corbet@lwn.net \
    --cc=daniel@iogearbox.net \
    --cc=davem@davemloft.net \
    --cc=dsahern@kernel.org \
    --cc=eddyz87@gmail.com \
    --cc=edumazet@google.com \
    --cc=haoluo@google.com \
    --cc=horms@kernel.org \
    --cc=john.fastabend@gmail.com \
    --cc=jolsa@kernel.org \
    --cc=kpsingh@kernel.org \
    --cc=kuba@kernel.org \
    --cc=linux-doc@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=martin.lau@linux.dev \
    --cc=mhal@rbox.co \
    --cc=mrpre@163.com \
    --cc=mykolal@fb.com \
    --cc=netdev@vger.kernel.org \
    --cc=pabeni@redhat.com \
    --cc=sdf@fomichev.me \
    --cc=shuah@kernel.org \
    --cc=song@kernel.org \
    --cc=xiyou.wangcong@gmail.com \
    --cc=yonghong.song@linux.dev \
    /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.