On Wed, Jul 17, 2024 at 5:00 PM Steven Rostedt <rostedt@xxxxxxxxxxx> wrote: > > On Wed, 17 Jul 2024 16:57:43 -0400 > Joel Fernandes <joel@xxxxxxxxxxxxxxxxx> wrote: > > > On Wed, Jul 17, 2024 at 11:20 AM Steven Rostedt <rostedt@xxxxxxxxxxx> wrote: > > > > > > On Wed, 17 Jul 2024 10:52:33 -0400 > > > Steven Rostedt <rostedt@xxxxxxxxxxx> wrote: > > > > > > > We could possibly add a new sched class that has a dynamic priority. > > > > > > It wouldn't need to be a new sched class. This could work with just a > > > task_struct flag. > > > > > > It would only need to be checked in pick_next_task() and > > > try_to_wake_up(). It would require that the shared memory has to be > > > allocated by the host kernel and always present (unlike rseq). But this > > > coming from a virtio device driver, that shouldn't be a problem. > > > > Problem is its not only about preemption, if we set the vCPU boosted > > to RT class, and another RT task is already running on the same CPU, > > That can only happen on wakeup (interrupt). As the point of lazy > priority changing, it is only done when the vCPU is running. True, but I think it will miss stuff related to load balancing, say if the "boost" is a higher CFS priority. Then someone has to pull the running vCPU thread to another CPU etc... IMO it is better to set the priority/class externally and let the scheduler deal with it. Let me think some more about your idea though.. thanks, - Joel