|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH RFC v1 42/74] sched/null: skip vCPUs on the waitqueue that are blocked
>>> On 04.01.18 at 14:05, <wei.liu2@xxxxxxxxxx> wrote:
> From: Roger Pau Monne <roger.pau@xxxxxxxxxx>
>
> Avoid scheduling vCPUs that are blocked, there's no point in assigning
> them to a pCPU because they are not going to run anyway.
>
> Since blocked vCPUs are not assigned to pCPUs after this change, force
> a rescheduling when a vCPU is brought up if it's on the waitqueue.
> Also when scheduling try to pick a vCPU from the runqueue if the pCPU
> is running idle.
I don't think the description adequately describes the changes,
perhaps (in part) because ...
> Changes since v1:
> - Force a rescheduling when a vCPU is brought up.
> - Try to pick a vCPU from the runqueue if running the idle vCPU.
... it wasn't updated after making these adjustments.
> --- a/xen/common/sched_null.c
> +++ b/xen/common/sched_null.c
> @@ -574,6 +574,8 @@ static void null_vcpu_wake(const struct scheduler *ops,
> struct vcpu *v)
> {
> /* Not exactly "on runq", but close enough for reusing the counter */
> SCHED_STAT_CRANK(vcpu_wake_onrunq);
> + /* Force a rescheduling in case some CPU is idle can pick this vCPU
> */
> + cpumask_raise_softirq(&cpu_online_map, SCHEDULE_SOFTIRQ);
> return;
> }
I don't understand: Isn't the null scheduler not moving around
vCPU-s at all? At least that's what the comment at the top of the
file says, unless I'm mis-interpreting it. If so, how can "some CPU
(...) pick this vCPU"?
> @@ -781,6 +784,10 @@ static struct task_slice null_schedule(const struct
> scheduler *ops,
> {
> list_for_each_entry( wvc, &prv->waitq, waitq_elem )
> {
> + if ( test_bit(_VPF_down, &wvc->vcpu->pause_flags) )
> + /* Skip vCPUs that are down. */
> + continue;
"Down" != "blocked" (as per the description).
Overall it's not really being made clear what problem there is that
this patch is intended to solve.
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 |