[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH 2/4] xen: sched: optimize exclusive pinning case (Credit1 & 2)
On 9/15/17 6:35 PM, Dario Faggioli wrote: static unsigned int __read_mostly opt_migrate_resist = 500;integer_param("sched_credit2_migrate_resist", opt_migrate_resist); @@ -1453,6 +1459,26 @@ runq_tickle(const struct scheduler *ops, struct csched2_vcpu *new, s_time_t now) (unsigned char *)&d); }+ /*+ * Exclusive pinning is when a vcpu has hard-affinity with only one + * cpu, and there is no other vcpu that has hard-affinity with that + * same cpu. This is infrequent, but if it happens, is for achieving + * the most possible determinism, and least possible overhead for + * the vcpus in question. + * + * Try to identify the vast majority of these situations, and deal + * with them quickly. Sorry, if I have missed to review the earlier series on the same subject. But, I am not completely satisfied with the condition that pinning to apcpu is only possible if and only if no other vcpu has hard affinity of that pcpu. I think we can do away with this condition and give pinning a priority. Your thoughts please.. + */ + if ( unlikely((new->flags & CSFLAG_pinned) && + cpumask_test_cpu(cpu, &rqd->idle) && + !cpumask_test_cpu(cpu, &rqd->tickled)) ) + { + ASSERT(cpumask_cycle(cpu, new->vcpu->cpu_hard_affinity) == cpu); + SCHED_STAT_CRANK(tickled_idle_cpu_excl); + ipid = cpu; + goto tickle; + } + for_each_affinity_balance_step( bs ) { /* Just skip first step, if we don't have a soft affinity */ @@ -2826,6 +2852,19 @@ csched2_dom_cntl( return rc; }+static void+csched2_aff_cntl(const struct scheduler *ops, struct vcpu *v, + const cpumask_t *hard, const cpumask_t *soft) +{ + struct csched2_vcpu *svc = csched2_vcpu(v); + + /* Are we becoming exclusively pinned? */ + if ( cpumask_weight(hard) == 1 ) + __set_bit(__CSFLAG_pinned, &svc->flags); + else + __clear_bit(__CSFLAG_pinned, &svc->flags); +} + static int csched2_sys_cntl(const struct scheduler *ops, struct xen_sysctl_scheduler_op *sc) Looks fine. Anshul _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx https://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |