Re: [patch 4/4] sched/mmcid: Optimize transitional CIDs when scheduling out

From: Mathieu Desnoyers

Date: Fri Jan 30 2026 - 10:52:03 EST


On 2026-01-29 16:20, Thomas Gleixner wrote:
During the investigation of the various transition mode issues
instrumentation revealed that the amount of bitmap operations can be
significantly reduced when a task with a transitional CID schedules out
after the fixup function completed and disabled the transition mode.

At that point the mode is stable and therefore it is not required to drop
the transitional CID back into the pool. As the fixup is complete the
potential exhaustion of the CID pool is not longer possible, so the CID can
be transferred to the scheduling out task or to the CPU depending on the
current ownership mode. This is now possible because mm_cid::mode contains
both the ownership state and the transition bit so the racy snapshot is
valid under all circumstances because a subsequent modification of the
mode is serialized by the corresponding runqueue lock.

AFAIU the mc->mode updates are serialized by the mm->mm_cid.lock
and not the runqueue locks. What am I missing ?

[...]

+ /*
+ * If transition mode is done, transfer ownership when the CID is
+ * within the convergion range. Otherwise the next schedule in will

convergence

+ * have to allocate or converge

add final ".".

Thanks,

Mathieu

--
Mathieu Desnoyers
EfficiOS Inc.
https://www.efficios.com