libnvmf_con...et_io_queues(9)

πŸ“¦ version 3.2, in arch rolling

πŸ’… NAME πŸ’…

libnvmf_context_set_io_queues β€” bestie, this is the one that sets up your whole I/O queue topology for the context ✨

Ok so real talk, this page is from the libnvme API manual (yes, the libnvme girlies are thriving) and honestly? It's giving "one setter to rule them all" πŸŽ€


✨ SYNOPSIS ✨

int libnvmf_context_set_io_queues (struct libnvmf_context *fctx , int
nr_io_queues , int nr_write_queues , int nr_poll_queues , int queue_size
, bool disable_sqflow );

πŸ¦‹ ARGUMENTS πŸ¦‹

  • fctx β€” the Fabrics context πŸ’œ like, the whole vibe lives in here
  • nr_io_queues β€” how many I/O queues you want, periodt
  • nr_write_queues β€” how many write-only queues (yes, they exist, and they eat)
  • nr_poll_queues β€” how many polling queues 🌸
  • queue_size β€” number of entries per I/O queue (this is the SQSIZE in the Connect command, iykyk πŸ‘‘)
  • disable_sqflow β€” ngl this one just disables SQ flow control negotiation πŸ™ˆ

🌈 DESCRIPTION 🌈

Okay so this is a convenience setter for the five parameters that together define the I/O queue structure used when you establish a controller connection πŸ”₯ All five of them feed directly into the Connect command at queue creation time β€” no detours, no middleman, straight in πŸ’…

And here's the part that lowkey trips people up: nr_write_queues and nr_poll_queues are additive 🫢 So the total I/O queues is literally:

nr_io_queues + nr_write_queues + nr_poll_queues

Like, do not just eyeball nr_io_queues and call it a day, you'll be off by however many extras you threw in 😭

Also! If you only need to change a subset of these, there are individual accessors waiting for you, and they're all iconic in their own right:

  • libnvmf_context_set_nr_io_queues
  • _set_nr_write_queues
  • _set_nr_poll_queues
  • _set_queue_size
  • _set_disable_sqflow

Use the big one when you're changing everything, use the little ones when you're just touching up one thing ✨ main character energy either way.


⭐ RETURN ⭐

0 on success, negative error code otherwise. That's it, that's the whole vibe check πŸ’–


🧚 Friendly reminder bestie: the two extra queue counts are additive to the total β€” don't let that sneak up on you πŸŽ€

And that's the page! Big kisses from the libnvme API manual, dated October 2026 β€” go forth and queue responsibly πŸ¦‹βœ¨πŸ’œ

πŸ“¦ where this page comes from