Re: [RFC PATCH 1/2] RDMA/rxe: drive UDP tunnel socket lifetime from the GID table

Zhu Yanjun <[email protected]> Mon, 27 Jul 2026 20:42:07 -0700
Newsgroups org.kernel.vger.linux-rdma,org.kernel.vger.linux-kernel
Message-ID <[email protected]>
在 2026/7/27 12:55, Serhat Kumral 写道:
> I was pointed at Weimin Xiong's "RDMA/rxe: Hold netdev reference for
> transmit skbs" (v3, [email protected]) and
> tested with it applied.
> 
> That patch and this series conflict in rxe_notify(). Its hunk carries
> "rxe_net_del(&rxe->ib_dev);" as a context line, and this series removes
> that call together with the function, so neither order applies with a
> plain git apply. I resolved it by keeping both rxe_flush_qps() calls and
> dropping the rxe_net_del() line:
> 
> 	case NETDEV_GOING_DOWN:
> 		/* Start draining TX queues before the netdev disappears. */
> 		rxe_flush_qps(rxe);
> 		break;
> 	case NETDEV_UNREGISTER:
> 		rxe_flush_qps(rxe);
> 		ib_unregister_device_queued(&rxe->ib_dev);
> 		break;
> 
> If the tree where the crash appears resolves it differently, that
> difference is worth seeing.

[root@fedora linux]# git log --oneline f2ec6312bf..HEAD
c7b5816e800a (HEAD -> master) Merge branch 'master' of 
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux
668b9a3b586c RDMA/rxe: Hold netdev reference for transmit skbs

This is the command line
"
[    0.000000] Command line: 
BOOT_IMAGE=(hd0,gpt2)/vmlinuz-7.2.0-rc3-rxe-l2+ 
root=UUID=511002c6-ecb8-4356-bd0b-7c54cc92384f ro rootflags=subvol=root 
rhgb quiet crashkernel=2G
"

Zhu Yanjun

> 
> Four kernels on f2ec6312bf71, same config and toolchain as before, 120
> runs of rxe_rping_between_netns.sh each:
> 
>    f2ec6312bf71                            120/120
>    + this series                           120/120
>    + the netdev reference patch            120/120
>    + the netdev reference patch + series   120/120
> 
> No KASAN report, GPF, Oops, refcount warning, lockdep splat, hung task or
> RCU stall in any of them. The module symbol tables confirm each kernel
> carries what it should: rxe_flush_qps only in the two with the netdev
> reference patch, rxe_add_gid and rxe_del_gid only in the two with this
> series.
> 
> Four kernels reporting nothing made me doubt the setup rather than the
> result, so I checked that it reports faults at all: a deliberate NULL
> pointer dereference injected into the rxe transmit path, during the same
> selftest, gives
> 
>    [   69.131350] Oops: general protection fault, kernel NULL pointer
>      dereference 0x39: 0000 [#1] SMP KASAN NOPTI
>    [   69.141660] Workqueue: rxe_wq do_work [rdma_rxe]
> 
> It reaches the console I capture, my filters count it, and the iteration
> is recorded as failed. From userspace the selftest just hangs.
> 
> So it still does not reproduce here.
> 
> thanks,
> serhat