nldsq_cursor_next_task(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… NAME πŸ’…

okay bestie, welcome to the nldsq_cursor_next_task(9) page in the Kernel API Manual. This is the iterate to the next task given a cursor in a non-local DSQ situation. You've got a cursor, you've got a non-local DSQ, and you want the next task. That's the whole main character energy. ✨

πŸ¦‹ SYNOPSIS πŸ¦‹

struct task_struct * nldsq_cursor_next_task (struct scx_dsq_list_node
       *cursor , struct scx_dispatch_q *dsq );

That's the signature, character for character. No cap. 🫢

πŸŽ€ ARGUMENTS πŸŽ€

  • cursor β€” a scx_dsq_list_node initialized with INIT_DSQ_LIST_CURSOR. It's your little "where am I" bookmark bestie. πŸ’–
  • dsq β€” the non-local dsq being iterated. The DSQ you're strolling through. πŸ¦‹

πŸ’– DESCRIPTION πŸ’–

Okay so nldsq_cursor_next_task finds the next task in a cursor based iteration. The caller must have initialized cursor using INIT_DSQ_LIST_CURSOR, and can release the DSQ lock between the iteration steps. Yes, between steps β€” that's allowed, bestie. πŸ’…

Only tasks which were queued before cursor was initialized are visible. This bounds the iteration and guarantees that vtime never jumps in the other direction while iterating. So if a task shows up after your cursor got initialized, it's not visible here. That's the bound, and it's iconic for keeping vtime from yeeting the other way. 😭

🌈 SEE ALSO 🌈

Kernel file ./kernel/sched/ext/ext.c is the home base 🏠, and here's the whole linked-up squad β€” every single one, no skips:


mwah πŸ’‹ that's the whole page, bestie. Footer energy: source/version ./kernel/sched/ext, date October 2026, page nldsq_cursor_next_task(9) β€” bye 🫢

πŸ“¦ where this page comes from