STRUCT FC_EXCH_POOL(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ¦‹ struct fc_exch_pool(9) πŸ¦‹

Okay bestie, welcome to the Kernel API Manual ✨ β€” this page is the one and only struct fc_exch_pool(9), and we are gonna get into it πŸ’….

πŸ’– NAME πŸ’–

struct fc_exch_pool β€” Per cpu exchange pool. That's the name, and it's lowkey iconic ✨.

✨ SYNOPSIS ✨

Here's the struct in all its glory, no edits, no cap:

struct fc_exch_pool {
    spinlock_t lock;
    struct list_head ex_list;
    u16 next_index;
    u16 total_exches;
    u16 left;
    u16 right;
 };

πŸŽ€ Members πŸŽ€

  • lock β€” Exch pool lock. It's the lock for the exchange pool, periodt.
  • ex_list β€” List of exchanges. The actual list of exchanges, bestie.
  • next_index β€” Next possible free exchange index. Exactly what it says on the label.
  • total_exches β€” Total allocated exchanges. The total count of allocated exchanges.
  • left β€” Cache of free slot in exch array. A cached free slot in the exch array.
  • right β€” Cache of free slot in exch array. Another cached free slot in the exch array.

🌸 Description 🌸

So this structure is out here managing per cpu exchanges in an array of exchange pointers 🫢. That array is allocated followed by the struct fc_exch_pool memory, for the assigned range of exchanges to the per cpu pool. Literally the whole point, and it ate πŸ’….

πŸ’… SEE ALSO πŸ’…

The Kernel file ./drivers/scsi/libfc/fc_exch.c is the main character here, and it brought the whole squad πŸ‘‘:


Source/version and date, cute sign-off style: ./drivers/scsi/libfc, October 2026. Bye bestie, go read that kernel file πŸ’œ.

πŸ“¦ where this page comes from