On Wed Feb 5 19:07:30 2025 +0000, Elizabeth Figura wrote:
I don't think I understand? The cache doesn't store the owner; it's stored in the kernel object itself.
The owner tid is passed to the kernel when the kernel sync object is created, but it is only created once when `get_inproc_sync` is first called, and then stored in `mutex->inproc_sync` and returned in every future `get_inproc_sync` call.
OTOH, I see that `mutex->owner` is changed dynamically in `do_grab` and `do_release`, when mutex is first acquired, or last released, and it doesn't seem right to create the kernel sync object only once with whatever random owner is set at that moment? I would expect, if owner can change, that some mechanism would change or recreate the kernel sync with a different owner?