[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH v2 09/48] xen/sched: move some per-vcpu items to struct sched_unit
On 09.08.2019 16:57, Juergen Gross wrote: > V2: > - move affinity_broken back to struct vcpu (Jan Beulich) But this alone won't work: Now a 2nd vCPU in a unit will clobber what a 1st one may have set as an affinity override. I don't think you can get away without a per-vCPU CPU mask, or a combination of per-vCPU and per-unit state flags. > @@ -971,26 +986,29 @@ static int cpu_disable_scheduler_check(unsigned int cpu) > void sched_set_affinity( > struct vcpu *v, const cpumask_t *hard, const cpumask_t *soft) > { > - sched_adjust_affinity(dom_scheduler(v->domain), v->sched_unit, hard, > soft); > + struct sched_unit *unit = v->sched_unit; > + > + sched_adjust_affinity(dom_scheduler(unit->domain), unit, hard, soft); In a situation like this I think it would be better to use v->domain (I don't think you mean to remove struct vcpu's field). v has just been de-referenced, so v->domain being in cache is more likely than unit->domain, and there's then also no data dependency of the second load on the first one. Jan _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxxx https://lists.xenproject.org/mailman/listinfo/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |