__rxe_init_mcg(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’« __rxe_init_mcg(9) πŸ’«

okay so bestie, welcome to the Kernel API Manual ✨ β€” this is the page for __rxe_init_mcg, and no cap, it's a little cutie. Let's get into it πŸŽ€


🌸 NAME 🌸

__rxe_init_mcg β€” initialize a new mcg πŸ’…


✨ SYNOPSIS ✨

void __rxe_init_mcg (struct rxe_dev *rxe , union ib_gid *mgid , struct
rxe_mcg *mcg );

like, that's the whole signature. she's not returning anything, she's void, she just does her thing 🫢


πŸ¦‹ ARGUMENTS πŸ¦‹

  • rxe β€” the rxe device, bestie. this is the device we're working with πŸ’–
  • mgid β€” the multicast address, but as a gid πŸ‘‘
  • mcg β€” the brand new mcg object. freshly made. iconic 🌟

πŸ”₯ DESCRIPTION πŸ”₯

so what she actually does is initialize the mcg fields. that's the whole vibe πŸ’…

here's the part that matters, though β€” the mcg is private at this point and it is not yet visible in mcg_tree. because of that, this call may totally run without rxe->mcg_lock, no stress, no drama 🧚

then later, __rxe_publish_mcg is the one that makes it visible β€” and that happens under the lock, once the mcg is actually ready. so like, init first, publish later, lock only when publishing. periodt ✨

lowkey the whole point: don't go looking for it in mcg_tree yet, she hasn't been introduced to the tree πŸ’€

🌈 SEE ALSO 🌈

kernel file ./drivers/infiniband/sw/rxe/rxe_mcast.c β€” and honestly the whole friend group πŸ’œ:


and that's the page!! πŸ“ this one lives in ./drivers/infiniband/sw/rxe, dated October 2026, and it's __rxe_init_mcg(9) all the way down πŸ’– slay, go initialize some mcg πŸŽ€πŸ«ΆπŸ’…

πŸ“¦ where this page comes from