On Fri, 2019-08-09 at 16:58 +0200, Juergen Gross wrote: > In order to prepare for multiple vcpus per schedule unit move struct > task_slice in schedule() from the local stack into struct sched_unit > of the currently running unit. To make access easier for the single > schedulers add the pointer of the currently running unit as a > parameter > of do_schedule(). > > While at it switch the tasklet_work_scheduled parameter of > do_schedule() from bool_t to bool. > > As struct task_slice is only ever modified with the local schedule > lock held it is safe to directly set the different units in struct > sched_unit instead of using an on-stack copy for returning the data. > > Signed-off-by: Juergen Gross > --- > > diff --git a/xen/common/schedule.c b/xen/common/schedule.c > index e4d0dd4b65..d2fc89d983 100644 > --- a/xen/common/schedule.c > +++ b/xen/common/schedule.c > @@ -1751,9 +1749,7 @@ static void schedule(void) > TRACE_4D(TRC_SCHED_SWITCH_INFCONT, > next->domain->domain_id, next->unit_id, > now - prev->state_entry_time, > - next_slice.time); > - trace_continue_running(next->vcpu_list); > - return continue_running(prev->vcpu_list); > + prev->next_time); > } > Mmm... I'm sorry, but I'm not sure I understand what is going on here. Do you mind explaining why we're not calling continue_running() any longer (and why this happens in this patch)? Thanks and Regards -- Dario Faggioli, Ph.D http://about.me/dario.faggioli Virtualization Software Engineer SUSE Labs, SUSE https://www.suse.com/ ------------------------------------------------------------------- <> (Raistlin Majere)