STRUCT LIBETH_XDPSQ_TIMER(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… 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