Re: [RFC PATCH bpf-next RESEND 00/16] bpf: Checkpoint/Restore In eBPF (CRIB)

From: Kumar Kartikeya Dwivedi
Date: Mon Jul 22 2024 - 21:01:01 EST


On Tue, 23 Jul 2024 at 02:58, Alexei Starovoitov
<alexei.starovoitov@xxxxxxxxx> wrote:
>
> On Mon, Jul 22, 2024 at 5:50 PM Kumar Kartikeya Dwivedi
> <memxor@xxxxxxxxx> wrote:
> >
> > >
> > > > Currently we cannot pass the pointer returned by the iterator next
> > > > method as argument to the KF_TRUSTED_ARGS kfuncs, because the pointer
> > > > returned by the iterator next method is not "valid".
> >
> > I've replied to this particular patch to explain what exact unsafety
> > it might introduce.
>
> What do you mean?
> I think we can make the return value from iter_next() trusted in
> certain cases.
> For example bpf_iter_task_next() returns task_struct and it
> can be safely marked as MEM_RCU, since the whole iterator is
> KF_RCU_PROTECTED.

Yes, iter_next is ok (see reply here:
https://lore.kernel.org/bpf/CAP01T74pq7pozpMi_LJUA8wehjpATMR3oM4vj7HHxohBPb0LbA@xxxxxxxxxxxxxx/).
But number 1 doesn't seem ok. Number 2 should now be possible if I'm
not mistaken.