STRUCT ZFCP_DBF(9)
π struct zfcp_dbf(9) β the Kernel API Manual, bestie edition π
okay so this page is all about struct zfcp_dbf(9). yes the manual name is in the title, we're not copying the header line again, we're being chill about it. it lives in the Kernel API Manual and honestly? it's giving main character energy for the whole zfcp tracing situation β¨
πΈ NAME πΈ
struct zfcp_dbf β the main dbf trace structure. that's it, that's the whole vibe. it's the big container that holds all the trace areas together, no cap π
β¨ SYNOPSIS β¨
struct zfcp_dbf {
debug_info_t *pay;
debug_info_t *rec;
debug_info_t *hba;
debug_info_t *san;
debug_info_t *scsi;
spinlock_t pay_lock;
spinlock_t rec_lock;
spinlock_t hba_lock;
spinlock_t san_lock;
spinlock_t scsi_lock;
struct zfcp_dbf_pay pay_buf;
struct zfcp_dbf_rec rec_buf;
struct zfcp_dbf_hba hba_buf;
struct zfcp_dbf_san san_buf;
struct zfcp_dbf_scsi scsi_buf;
};
like, look at that struct. five pointers, five locks, five pre-allocated buffers. it's symmetrical, it's organized, it ate π«Ά
π Members π
so here's the whole cast, one by one. each trace area gets a reference, a lock, and a buffer. iconic symmetry fr fr π¦
payβ reference to the payload trace area πrecβ reference to the recovery trace areahbaβ reference to the hba trace areasanβ reference to the san trace areascsiβ reference to the scsi trace area
and now the locks, aka the bodyguards π each one protects its own trace buffer:
pay_lockβ lock protecting the payload trace bufferrec_lockβ lock protecting the recovery trace bufferhba_lockβ lock protecting the hba trace buffersan_lockβ lock protecting the san trace bufferscsi_lockβ lock protecting the scsi trace buffer
and lastly the buffers themselves, already allocated and ready to go before anything even happens π₯:
pay_bufβ pre-allocated buffer for payloadrec_bufβ pre-allocated buffer for recoveryhba_bufβ pre-allocated buffer for hbasan_bufβ pre-allocated buffer for sanscsi_bufβ pre-allocated buffer for scsi
lowkey the pattern here is: reference + lock + buffer, times five. once you clock that, the whole struct is unlocked in your brain π§ β¨
π SEE ALSO π
bestie there is a whole friend group of related stuff, and the source of truth lives in the kernel file ./drivers/s390/scsi/zfcp_dbf.h (struct). go read it, iykyk π
the squad, in the exact order the page lists them:
zfcp_dbf_rec_trigger(9)struct zfcp_dbf_rec_running(9)enum zfcp_dbf_rec_id(9)struct zfcp_dbf_rec(9)enum zfcp_dbf_san_id(9)struct zfcp_dbf_hba_res(9)struct zfcp_dbf_hba_uss(9)struct zfcp_dbf_hba_uas(9)struct zfcp_dbf_hba_fces(9)enum zfcp_dbf_hba_id(9)struct zfcp_dbf_hba(9)enum zfcp_dbf_scsi_id(9)struct zfcp_dbf_scsi(9)struct zfcp_dbf_pay(9)zfcp_dbf_hba_fsf_resp_suppress(9)zfcp_dbf_hba_fsf_response(9)zfcp_dbf_scsi_result(9)zfcp_dbf_scsi_fail_send(9)zfcp_dbf_scsi_abort(9)zfcp_dbf_scsi_devreset(9)zfcp_dbf_scsi_nullcmnd(9)
that's the whole page, no filler, no gatekeeping π
sign-off time π β this one comes from ./drivers/s390/scsi, dated October 2026, and its manual identity is struct zfcp_dbf(9). go forth and trace responsibly, bestie πβ¨πΈ
π¦ where this page comes from
- nixpkgs unstable: linux-manual 7.3.1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms