On 30/09/2019 11:36, Jan Beulich wrote: > 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 <jgr...@suse.com> >> Reviewed-by: Dario Faggioli <dfaggi...@suse.com> > x86 and applicable common code parts > Acked-by: Jan Beulich <jbeul...@suse.com> > > However, ... > >> +static void sched_context_switch(struct vcpu *vprev, struct vcpu *vnext, >> + s_time_t now) >> +{ >> + if ( unlikely(vprev == vnext) ) >> { >> - pcpu_schedule_unlock_irq(lock, cpu); >> TRACE_4D(TRC_SCHED_SWITCH_INFCONT, >> - next->domain->domain_id, next->unit_id, >> - now - prev->state_entry_time, >> - prev->next_time); >> - trace_continue_running(next->vcpu_list); >> - return continue_running(prev->vcpu_list); >> + vnext->domain->domain_id, vnext->sched_unit->unit_id, >> + now - vprev->runstate.state_entry_time, >> + vprev->sched_unit->next_time); >> + sched_context_switched(vprev, vnext); >> + trace_continue_running(vnext); >> + return continue_running(vprev); >> } > ... I don't recall if there weren't compiler (clang?) versions not > allowing (or at least warning about) use of this extension.
Which extension? > I'm > having difficulty thinking of a way to find a possible example use > elsewhere in our code, proving that this isn't the first instance. > Hence I wonder whether it wouldn't be better to avoid use of the > extension here. Gitlab can give us the answer easily. ~Andrew _______________________________________________ Xen-devel mailing list Xen-devel@lists.xenproject.org https://lists.xenproject.org/mailman/listinfo/xen-devel