a period, even when there is an idle core, making these VCPUs
unnecessarily starve for one period. Therefore, always make sure that we only
tickle PCPUs that have not been tickled already.
Signed-off-by: Haoran Li
Reviewed-by: Meng Xu
---
xen/common/sched_rt.c | 27
From: naroahlee
Bug Analysis:
When more than one idle VCPUs that have the same PCPU as their
previous running core invoke runq_tickle(), they will tickle the same
PCPU. The tickled PCPU will only pick at most one VCPU, i.e., the
highest-priority one, to execute. The other VCPUs will not be
schedu
.
However, only one VCPU is guranteed to be scheduled, because runq_pick()
would be executed only once in rt_schedule().
That means, another VCPU will lost (be descheduled) a Period.
Bug Analysis:
We need to exclude tickled VCPUs when trying to evaluate runq_tickle() case 1
Signed-off-by: Haoran Li