When SYNC_WAKE syscall executed and sync priority changes sync owner gets stopped and then run.
In such cases owner may be scheduled for execution on a new core before SYNC_WAKE processing ends, thus single process becomes current on 2 cores at the same time and process execution gets ruined!
The same thing can be applied to any process, doing some syscall when it's priority gets changed!
SOLUTION: Process migration must be done ONLY in scheduler virtual interrupt!
When SYNC_WAKE syscall executed and sync priority changes sync owner gets stopped and then run.
In such cases owner may be scheduled for execution on a new core before SYNC_WAKE processing ends, thus single process becomes current on 2 cores at the same time and process execution gets ruined!
The same thing can be applied to any process, doing some syscall when it's priority gets changed!
SOLUTION: Process migration must be done ONLY in scheduler virtual interrupt!