STRUCT SRP_FR_POOL(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

✨ struct srp_fr_pool β€” NAME ✨

okay so bestie, gather round πŸ’– this is struct srp_fr_pool(9), like, from the Kernel API Manual β€” and it is literally a pool of fast registration descriptors. that's the whole vibe. no cap. 🫢


πŸ¦‹ SYNOPSIS πŸ¦‹

here's the struct in all its main-character glory, copied exactly so u don't have to trust me on vibes alone:

struct srp_fr_pool {
    int size;
    int max_page_list_len;
    spinlock_t lock;
    struct list_head        free_list;
    struct srp_fr_desc      desc[];
 };

πŸ‘‘ Members πŸ‘‘

every member, accounted for, no skips, no ✨selective reading✨:

  • size β€” how many descriptors live in this pool. that's the headcount, periodt. πŸ”₯
  • max_page_list_len β€” the maximum fast registration work request page list length. yes the whole phrase, it's giving "long name but she earned it" πŸ’…
  • lock β€” this one's job is literally just protecting free_list. a bodyguard. a bouncer. iconic behaviour honestly. πŸŽ€
  • free_list β€” the list of free descriptors. the available girlies. 🌸
  • desc β€” the fast registration descriptor pool itself. the whole point of the struct, lowkey the main event. ⭐

🌈 Description 🌈

here's the one rule, and it's the rule:

an entry is available for allocation if and only if it occurs in free_list. πŸ‘ˆ like, that's it. that's the whole contract. not in free_list? not available. in free_list? available. iykyk. πŸ’€βœ¨

πŸ’œ SEE ALSO πŸ’œ

go read these next, bestie, they're all in the kernel file ./drivers/infiniband/ulp/srp/ib_srp.h:

  • struct srp_rdma_ch(9)
  • struct srp_target_port(9)
  • struct srp_fr_desc(9)
  • struct srp_map_state(9)

k that's the whole page πŸ’– this lil doc came from ./drivers/infiniband/ulp/srp, dated October 2026, and she's officially struct srp_fr_pool(9). slay, go read ur structs, mwah πŸ§šπŸŽ€

πŸ“¦ where this page comes from