Re: [patch net-next] net: sched: move block device tracking into tcf_block_get/put_ext()

Jamal Hadi Salim
2024-01-04T18:23:01Z

On Thu, Jan 4, 2024 at 1:03 PM Jiri Pirko <jiri@resnulli.us> wrote:
>
> Thu, Jan 04, 2024 at 05:10:58PM CET, jhs@mojatatu.com wrote:
> >On Thu, Jan 4, 2024 at 7:58 AM Jiri Pirko <jiri@resnulli.us> wrote:
> >>
> >> From: Jiri Pirko <jiri@nvidia.com>
> >>
> >> Inserting the device to block xarray in qdisc_create() is not suitable
> >> place to do this. As it requires use of tcf_block() callback, it causes
> >> multiple issues. It is called for all qdisc types, which is incorrect.
> >>
> >> So, instead, move it to more suitable place, which is tcf_block_get_ext()
> >> and make sure it is only done for qdiscs that use block infrastructure
> >> and also only for blocks which are shared.
> >>
> >> Symmetrically, alter the cleanup path, move the xarray entry removal
> >> into tcf_block_put_ext().
> >>
> >> Fixes: 913b47d3424e ("net/sched: Introduce tc block netdev tracking infra")
> >> Reported-by: Ido Schimmel <idosch@nvidia.com>
> >> Closes: https://lore.kernel.org/all/ZY1hBb8GFwycfgvd@shredder/
> >> Reported-by: Kui-Feng Lee <sinquersw@gmail.com>
> >> Closes: https://lore.kernel.org/all/ce8d3e55-b8bc-409c-ace9-5cf1c4f7c88e@gmail.com/
> >> Reported-and-tested-by: syzbot+84339b9e7330daae4d66@syzkaller.appspotmail.com
> >> Closes: https://lore.kernel.org/all/0000000000007c85f5060dcc3a28@google.com/
> >> Reported-and-tested-by: syzbot+806b0572c8d06b66b234@syzkaller.appspotmail.com
> >> Closes: https://lore.kernel.org/all/00000000000082f2f2060dcc3a92@google.com/
> >> Reported-and-tested-by: syzbot+0039110f932d438130f9@syzkaller.appspotmail.com
> >> Closes: https://lore.kernel.org/all/0000000000007fbc8c060dcc3a5c@google.com/
> >> Signed-off-by: Jiri Pirko <jiri@nvidia.com>
> >
> >Did you get a chance to run the tdc tests?
>
> I ran the TC ones we have in the net/forwarding directory.
> I didn't manage to run the tdc. Readme didn't help me much.
> How do you run the suite?

For next time:
make -C tools/testing/selftests TARGETS=tc-testing run_tests

We'll let you off the hook this time. We'll do the rest of the testing.

cheers,
jamal