STRUCT LIBETH_XDPSQ_TIMER(9)
π NAME π
struct libeth_xdpsq_timer β the timer bestie that cleans up your XDPSQs when interrupts are not the vibe π§Ήβ¨
β¨ SYNOPSIS β¨
struct libeth_xdpsq_timer {
void *xdpsq;
struct libeth_xdpsq_lock *lock;
struct delayed_work dwork;
};
π Members π
xdpsqβ the queue this timer belongs to, like its emotional support queue fr fr π«Άlockβ the lock for the queue, keeps everything from getting messy πdworkβ the work that actually performs the cleanups, the main character doing the labor πͺ
πΈ Description πΈ
Okay so picture this: some XDPSQs don't use interrupts, they're doing lazy cleaning instead β meaning they only tidy up when there's literally no space left to send the current queued frame/bulk π. Those ones absolutely have to fire up timers, no cap, so they can make sure there are no stale buffers just sitting there needing to be freed. It's giving "I'll get to it eventually" but make it kernel-safe π¦
ngl this is the whole point of the struct β no timers, no cleanup, and then stale buffers are just chilling there rent free π
π₯ SEE ALSO π₯
Kernel file ./include/net/libeth/types.h:
struct libeth_rq_napi_stats(9)struct libeth_sq_napi_stats(9)struct libeth_xdpsq_napi_stats(9)struct libeth_xdpsq_lock(9)struct libeth_xdp_buff_stash(9)
That's the whole vibe, bestie π this page came from ./include/net/libeth, dated October 2026, and it's literally section 9 of the Kernel API Manual β slay ππ
π¦ 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