All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Daniel Xu" <dxu@dxuuu.xyz>
To: "Florian Westphal" <fw@strlen.de>,
	"Toke Høiland-Jørgensen" <toke@kernel.org>
Cc: "bpf@vger.kernel.org" <bpf@vger.kernel.org>,
	"Alexei Starovoitov" <ast@kernel.org>,
	"Daniel Borkmann" <daniel@iogearbox.net>,
	"Andrii Nakryiko" <andrii@kernel.org>,
	"Kumar Kartikeya Dwivedi" <memxor@gmail.com>,
	pablo@netfilter.org, netfilter-devel@vger.kernel.org,
	netdev@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH bpf-next 2/3] bpf: Add support for writing to nf_conn:mark
Date: Wed, 17 Aug 2022 12:28:55 -0600	[thread overview]
Message-ID: <5c7ac2ab-942f-4ee7-8a9c-39948a40681c@www.fastmail.com> (raw)
In-Reply-To: <20220815224011.GA9821@breakpoint.cc>

Hi Florian,

On Mon, Aug 15, 2022, at 4:40 PM, Florian Westphal wrote:
> Toke Høiland-Jørgensen <toke@kernel.org> wrote:
>> > Support direct writes to nf_conn:mark from TC and XDP prog types. This
>> > is useful when applications want to store per-connection metadata. This
>> > is also particularly useful for applications that run both bpf and
>> > iptables/nftables because the latter can trivially access this metadata.
>> >
>> > One example use case would be if a bpf prog is responsible for advanced
>> > packet classification and iptables/nftables is later used for routing
>> > due to pre-existing/legacy code.
>> >
>> > Signed-off-by: Daniel Xu <dxu@dxuuu.xyz>
>> 
>> Didn't we agree the last time around that all field access should be
>> using helper kfuncs instead of allowing direct writes to struct nf_conn?
>
> I don't see why ct->mark needs special handling.
>
> It might be possible we need to change accesses on nf/tc side to use
> READ/WRITE_ONCE though.

I reviewed some of the LKMM literature and I would concur that
READ/WRITE_ONCE() is necessary. Especially after this patchset.

However, it's unclear to me if this is a latent issue. IOW: is reading
ct->mark protected by a lock? I only briefly looked but it doesn't
seem like it.

I'll do some more digging.

In the meantime, I'll send out a v2 on this patchset and I'll plan on
sending out a followup patchset for adding READ/WRITE_ONCE()
to ct->mark accesses.

Thanks,
Daniel

  parent reply	other threads:[~2022-08-17 18:29 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-08-15 19:35 [PATCH bpf-next 0/3] Support direct writes to nf_conn:mark Daniel Xu
2022-08-15 19:35 ` [PATCH bpf-next 1/3] bpf: Remove duplicate PTR_TO_BTF_ID RO check Daniel Xu
2022-08-15 19:35 ` [PATCH bpf-next 2/3] bpf: Add support for writing to nf_conn:mark Daniel Xu
2022-08-15 22:25   ` Toke Høiland-Jørgensen
2022-08-15 22:40     ` Florian Westphal
2022-08-15 22:47       ` Alexei Starovoitov
2022-08-16 10:43         ` Toke Høiland-Jørgensen
2022-08-17 18:28       ` Daniel Xu [this message]
2022-08-17 18:34         ` Florian Westphal
2022-08-17 18:41           ` Daniel Xu
2022-08-15 22:41     ` Daniel Xu
2022-08-16  1:15   ` kernel test robot
2022-08-18 20:01   ` kernel test robot
2022-08-15 19:35 ` [PATCH bpf-next 3/3] selftests/bpf: Add tests " Daniel Xu

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=5c7ac2ab-942f-4ee7-8a9c-39948a40681c@www.fastmail.com \
    --to=dxu@dxuuu.xyz \
    --cc=andrii@kernel.org \
    --cc=ast@kernel.org \
    --cc=bpf@vger.kernel.org \
    --cc=daniel@iogearbox.net \
    --cc=fw@strlen.de \
    --cc=linux-kernel@vger.kernel.org \
    --cc=memxor@gmail.com \
    --cc=netdev@vger.kernel.org \
    --cc=netfilter-devel@vger.kernel.org \
    --cc=pablo@netfilter.org \
    --cc=toke@kernel.org \
    /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.