STRUCT COREDUMP_REQ(9)
π NAME π
struct coredump_req β bestie, it's literally the message the kernel sends to userspace β¨ (yes, the kernel is the one sliding into your DMs here, not the other way around).
This page lives in the Kernel API Manual section, so you already know it's that deep-kernel, uapi-adjacent lore π«Ά
β¨ SYNOPSIS β¨
struct coredump_req {
__u32 size;
__u32 size_ack;
__u64 mask;
};
Look at her. Three fields, zero notes, absolute main character energy π
π Members π
sizeβ the size ofstruct coredump_reqitself. It's the "how much can you even read, babe" hint πsize_ackβ the known size ofstruct coredump_ackon this kernel. Very "here's how much room you've got to reply" of her πmaskβ supported features. The bitmask of what's actually on the menu π₯
π¦ DESCRIPTION π¦
Okay so when a coredump happens, the kernel will connect to the coredump socket and send a coredump request to the coredump server. That's the whole vibe β kernel hits up the coredump server like "hey, something went down, you're gonna wanna see this" π
The size member is set to the size of struct coredump_req, and it provides a hint to userspace about how much data can be read. Think of it as the kernel being polite and telling you the portion size before you commit π
Userspace may use MSG_PEEK to peek the size of struct coredump_req and then choose to consume it in one go. Peek first, commit later β the iconique move π
Userspace may also simply read a COREDUMP_ACK_SIZE_VER0 request. Yeah, just read it, no drama, no ceremony.
And if the size the kernel sends is larger, userspace simply discards any remaining data. Not me leaving the leftovers on the plate π
The coredump_req->mask member is set to the currently known features. Userspace may only set coredump_ack->mask to the bits raised by the kernel in coredump_req->mask. No cap β you can't just make up feature bits and expect the kernel to gas you up. Stay in your lane, use the bits you were given β
The coredump_req->size_ack member is set by the kernel to the size of struct coredump_ack that the kernel knows. Userspace may only send up to coredump_req->size_ack bytes to the kernel and must set coredump_ack->size accordingly.
β οΈ lowkey a boundary issue if you ignore it: respectsize_ack, and always setcoredump_ack->sizeto match what you actually send. The kernel is not doing guesswork for you π
π SEE ALSO π
- Kernel file
./tools/include/uapi/linux/coredump.h struct coredump_ack(9)enum coredump_mark(9)
Alright bestie, that's the whole page π¦ go forth and peek responsibly β¨
source: ./tools/include/uapi/linux Β· version/date: October 2026 Β· struct coredump_req(9) β mwah, that's a wrap ππ
π¦ 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