STRUCT OP_REQ_QINFO(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

🌸 struct op_req_qinfo(9) β€” like, the whole vibe 🌸

okay so bestie, welcome to the Kernel API Manual entry for struct op_req_qinfo πŸ’… no cap, this is the Operational Request Queue Information struct and it's literally the main character of the operation request queue. buckle up πŸŽ€


✨ NAME ✨

struct op_req_qinfo β€” Operational Request Queue Information πŸ¦‹


✨ SYNOPSIS ✨

here's the whole shape of her, copied exactly, don't @ me:

struct op_req_qinfo {
    u16 ci;
    u16 pi;
    u16 num_requests;
    u16 qid;
    u16 reply_qid;
    u16 num_segments;
    u16 segment_qd;
    spinlock_t q_lock;
    struct segments *q_segments;
    void *q_segment_list;
    dma_addr_t q_segment_list_dma;
    u16 last_full_host_tag;
    u64 qfull_io_count;
    u32 qfull_instances;
 };

🫢 MEMBERS 🫢

okay so let's meet the cast, member by member, everyone gets their moment ⭐

  • ci β€” the consumer index πŸ’–
  • pi β€” the producer index ✨
  • qid β€” the Queue Id, and it starts from 1 (not zero, bestie, 1) πŸŽ€
  • reply_qid β€” the Associated reply queue Id 🌸
  • num_segments β€” Number of discontiguous memory segments πŸ¦‹
  • segment_qd β€” Depth of each segments πŸ’…
  • q_lock β€” Concurrent queue access lock πŸ”₯ (yes she's a spinlock_t, we stan a lock)
  • q_segments β€” Segment descriptor pointer πŸ‘‘
  • q_segment_list β€” Segment list base virtual address 🌈
  • q_segment_list_dma β€” Segment list base DMA address ⭐
  • last_full_host_tag β€” Hosttag of last IO returned to SML due to queue full πŸ’€
  • qfull_io_count β€” Number of IOs returned back to SML due to queue full 😭
  • qfull_instances β€” Total queue full occurrences. One occurrence starts with queue full detection and ends with queue full breaks πŸ™ˆ
tiny note fr fr: num_requests is chilling in the struct definition up there in the SYNOPSIS, but the original Members list doesn't give it a description β€” so I'm not gonna make one up, iykyk 🧚

πŸ’œ SEE ALSO πŸ’œ

Kernel file ./drivers/scsi/mpi3mr/mpi3mr.h and the whole friend group, all of them, no gatekeeping:

struct mpi3mr_nvme_pt_sge(9), struct mpi3mr_buf_map(9), struct mpi3mr_compimg_ver(9), struct segments(9), struct op_reply_qinfo(9), struct mpi3mr_intr_info(9), struct mpi3mr_throttle_group_info(9), struct mpi3mr_hba_port(9), struct mpi3mr_sas_port(9), struct mpi3mr_sas_phy(9), struct mpi3mr_sas_node(9), struct mpi3mr_enclosure_node(9), struct tgt_dev_sas_sata(9), struct tgt_dev_pcie(9), struct tgt_dev_vd(9), union _form_spec_inf(9), struct mpi3mr_tgt_dev(9), mpi3mr_tgtdev_get(9), mpi3mr_free_tgtdev(9), mpi3mr_tgtdev_put(9), struct mpi3mr_stgt_priv_data(9), struct mpi3mr_drv_cmd(9), union mpi3mr_trigger_data(9), struct trigger_event_data(9), struct diag_buffer_desc(9), struct dma_memory_desc(9), struct chain_element(9), struct scmd_priv(9), struct mpi3mr_ioc(9), struct mpi3mr_fwevt(9), struct delayed_dev_rmhs_node(9), struct delayed_evt_ack_node(9)


and that's the whole page, bestie 🌟 huge thank you to the source /drivers/scsi/mpi3mr β€” this one dropped October 2026 and it's filed right back under struct op_req_qinfo(9) where it belongs πŸ’– slay, bye! πŸ‘‹βœ¨

πŸ“¦ where this page comes from