STRUCT ACTION_MANAGER(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

✨ struct action_manager(9) ✨

okay so bestie, we're in the Kernel API Manual today and the star of the show is struct action_manager β€” yes that's section 9 of the manual, iykyk πŸ’…


🌸 NAME 🌸

struct action_manager β€” the actual definition of an action manager. that's it, that's the vibe check πŸ¦‹


πŸŽ€ SYNOPSIS πŸŽ€

struct action_manager {
    struct vdo_completion completion;
    struct admin_state state;
    struct action actions[2];
    struct action *current_action;
    zone_count_t zones;
    vdo_action_scheduler_fn scheduler;
    vdo_zone_thread_getter_fn get_zone_thread_id;
    thread_id_t initiator_thread_id;
    void *context;
    zone_count_t acting_zone;
 };

literally the whole struct, laid out, no cap 🫢


πŸ’– MEMBERS πŸ’–

okay so every single field, and what it's giving:

  • completion β€” the completion for performing actions. it's the whole reason this manager gets to do things ✨
  • state β€” the state of this action manager. current mood, basically 🌈
  • actions β€” the two action slots. yes, 2. both of them. πŸ’…
  • current_action β€” the current action slot. the one holding the aux right now 🎢
  • zones β€” the number of zones in which an action is to be applied. so many zones, so little time 😭
  • scheduler β€” a function to schedule a default next action. it plans ahead, main character energy fr fr πŸ‘‘
  • get_zone_thread_id β€” a function to get the id of the thread on which to apply an action to a zone. it's the find-my-friend function for threads πŸ”₯
  • initiator_thread_id β€” the ID of the thread on which actions may be initiated. this is the thread, the originator, the one who starts things 🧚
  • context β€” opaque data associated with this action manager. mysterious. iconic. we don't look inside πŸ™ˆ
  • acting_zone β€” the zone currently being acted upon. right here, right now, this one 🌸

πŸ‘‘ SEE ALSO πŸ‘‘

bestie these are the friends you should also go read, all of them, don't skip:

Kernel file ./drivers/md/dm-vdo/action-manager.c, struct action(9), vdo_make_action_manager(9), vdo_schedule_default_action(9), vdo_schedule_action(9), vdo_schedule_operation(9), vdo_schedule_operation_with_context(9)


πŸ’€ friendly reminder: everything above is exactly as written in the page β€” the fields, the functions, the file path. I'm hyping it up, not editing it. don't come for me 🫢

and that's the whole page diva!! this one's straight out of ./drivers/md/dm-vdo, version dated October 2026, filed under struct action_manager(9) β€” go slay your kernel reading list πŸ’œβœ¨

πŸ“¦ where this page comes from