On 30.09.2019 07:21, Juergen Gross wrote: > When switching sched units synchronize all vcpus of the new unit to be > scheduled at the same time. > > A variable sched_granularity is added which holds the number of vcpus > per schedule unit. > > As tasklets require to schedule the idle unit it is required to set the > tasklet_work_scheduled parameter of do_schedule() to true if any cpu > covered by the current schedule() call has any pending tasklet work. > > For joining other vcpus of the schedule unit we need to add a new > softirq SCHED_SLAVE_SOFTIRQ in order to have a way to initiate a > context switch without calling the generic schedule() function > selecting the vcpu to switch to, as we already know which vcpu we > want to run. This has the other advantage not to loose any other > concurrent SCHEDULE_SOFTIRQ events. > > Signed-off-by: Juergen Gross <[email protected]> > Reviewed-by: Dario Faggioli <[email protected]> > --- > RFC V2: > - move syncing after context_switch() to schedule.c > V2: > - don't run tasklets directly from sched_wait_rendezvous_in() > V3: > - adapt array size in sched_move_domain() (Jan Beulich) > - int -> unsigned int (Jan Beulich) > V4: > - renamed sd to sr in several places (Jan Beulich) > - swap stop_timer() and NOW() calls (Jan Beulich) > - context_switch() on ARM returns - handle that (Jan Beulich)
Especially because of this (previously overlooked) aspect I think I'd prefer an Arm maintainer ack here before committing no matter that ... > --- > xen/arch/arm/domain.c | 2 +- ... this is a rather minimal change. Jan _______________________________________________ Xen-devel mailing list [email protected] https://lists.xenproject.org/mailman/listinfo/xen-devel
