__rt_mutex_slowlock(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

🌸 NAME 🌸

Okay bestie, welcome to __rt_mutex_slowlock(9), straight outta the Kernel API Manual. This is the locking slowpath that gets invoked when lock::wait_lock is already held. Yes, you read that right β€” it's giving β€œdeep kernel locking business” energy, and we're gonna get through it together. πŸ’…


✨ SYNOPSIS ✨

int __rt_mutex_slowlock (struct rt_mutex_base *lock , struct ww_acquire_ctx *ww_ctx , unsigned int state , enum rtmutex_chainwalk chwalk , struct rt_mutex_waiter *waiter , struct wake_q_head *wake_q );

It's declared to return int, and every single parameter is accounted for below. No cap. 🫢


πŸŽ€ ARGUMENTS πŸŽ€

  • lock β€” the rtmutex to block lock. That's the lock we're doing the whole slowpath thing for. πŸ”₯
  • ww_ctx β€” the WW mutex context pointer. It's giving β€œcontext, but for WW mutexes.” ✨
  • state β€” the task state for sleeping. You know, the vibe the task is in while it snoozes. 😴
  • chwalk β€” indicator whether a full or partial chainwalk is requested. So it literally tells you which chainwalk flavor we're dealing with. πŸ¦‹
  • waiter β€” initializer waiter for blocking. This is the waiter that gets initialized for the blocking situation. πŸŽ€
  • wake_q β€” the wake_q to wake tasks after we release the wait_lock. So after the wait_lock is released, this is the wake queue doing the waking. πŸ‘‘

πŸ’œ SEE ALSO πŸ’œ


Signed off from ./kernel/locking, October 2026 edition β€” source/version and date noted, bestie. Bye and slay your locking journey. πŸ’–βœ¨

πŸ“¦ where this page comes from