IONIC_DV_PD_SET_RQCMB(3)

πŸ“¦
version 65.0 Β· 3 versions
, in arch rolling

πŸ’… IONIC_DV_PD_SET_RQCMB πŸ’…

okay so real talk, this one is from the Ionic Programmer's Manual (section 3, the library-calls girlies), and it's genuinely so useful if you're messing with CMB stuff. let me put you on πŸ’–

✨ NAME ✨

ionic_dv_pd_set_rqcmb β€” specify receive queue preference for controller memory bar. that's it, that's the whole vibe. it sets the preference, bestie, not the law (unless you make it the law, more on that in a sec πŸŽ€)

✨ SYNOPSIS ✨

#include <infiniband/ionic_dv.h>

int ionic_dv_pd_set_rqcmb(struct ibv_pd *ibpd, bool enable, bool expdb,
                           bool require);

like, look at her. four args, returns an int. main character energy fr 🌟

🌸 DESCRIPTION 🌸

so ionic_dv_pd_set_rqcmb() configures the controller memory bar (CMB) preferences for receive queues created under the protection domain ibpd. key word: created after this call. the queues that already exist? not invited to the party, sorry. πŸ™ˆ the new ones will use the CMB exactly according to the preferences you specify here.

when CMB is enabled, the receive queue ring buffer gets placed in device memory (that's the controller memory bar) instead of host memory β€” which can reduce doorbell latency. cute, right? less latency = more slay πŸ”₯

express doorbell (expdb) is an extra little optimization on top that further reduces doorbell overhead when the receive queue is placed in CMB. it's giving "deluxe edition" ✨

and then there's the require flag, which is the strict one. it controls whether creation should fail if the requested CMB preferences can't be met. when require is false, the driver just falls back to host memory if CMB is unavailable β€” very chill, very forgiving 🫢


πŸŽ€ ARGUMENTS πŸŽ€

  • ibpd β€” the protection domain to configure. must be an ionic protection domain, no exceptions, don't try it πŸ’…
  • enable β€” allow the use of the controller memory bar for receive queues. the master switch, basically πŸ‘‘
  • expdb β€” allow the use of express doorbell optimizations. only meaningful when enable is true (iykyk) ⭐
  • require β€” require that the CMB preferences are met. if it's true and the preferences can't be satisfied, queue creation will fail instead of falling back to host memory. also only meaningful when enable is true πŸ¦‹

🌈 RETURN VALUE 🌈

returns 0 on success ✨ β€” or a positive errno value on failure. and the failures are:

  • EPERM β€” ibpd is not an ionic protection domain. (told you. must be ionic. πŸ’€)
  • EINVAL β€” require is true with expdb true, but the device does not support express doorbell for receive queues. like asking for the express lane at a store that has no express lane 😭

πŸ¦‹ SEE ALSO πŸ¦‹

go read these next, bestie, they're all connected:

πŸ’œ AUTHORS πŸ’œ

Advanced Micro Devices, Inc. β€” absolute icons, no cap πŸ‘‘


okay that's the whole page!! this beauty comes from ionic, dated 2025-06-23, and it lives at IONIC_DV_PD_SET_RQCMB(3) in the Ionic Programmer's Manual. go forth and configure your receive queues responsibly, mwah πŸ’‹πŸŽ€

πŸ“¦ where this page comes from
  • arch rolling: rdma-core 65.0-1 Β· GPL-2.0-or-later OR LicenseRef-OpenIB.org-BSD-MIT AND GPL-2.0-or-later OR LicenseRef-OpenIB.org-BSD-FreeBSD AND GPL-2.0-or-later OR LicenseRef-Intel-BSD-3-Clause AND GPL-2.0-or-later OR LicenseRef-PathScale-BSD-Patent-License AND CC0-1.0 AND MIT AND BSD-2-Clause AND CPL-1.0 OR BSD-2-Clause OR GPL-2.0-or-later
  • πŸ’– girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms