Messages in this thread |  | | | Date | Mon, 20 Feb 2012 17:32:00 +0530 | | From | Srivatsa Vaddagiri <> | | Subject | Re: [RFC PATCH 0/4] Gang scheduling in CFS |
| |
* Nikunj A Dadhania <nikunj@linux.vnet.ibm.com> [2012-02-20 17:23:16]:
> On Mon, 20 Feb 2012 11:51:13 +0100, Peter Zijlstra <peterz@infradead.org> wrote: > > On Mon, 2012-02-20 at 13:38 +0530, Nikunj A Dadhania wrote: > > > +#ifdef CONFIG_PARAVIRT_FLUSH_TLB > > > + while (!cpumask_empty(to_cpumask(f->flush_cpumask)) && --loop) > > > + cpu_relax(); > > > + if (!loop && !cpumask_empty(to_cpumask(f->flush_cpumask))) > > > + halt(); > > > > > > That's just vile, you don't need to wait for it, all you need to make > > sure is that when that vcpu wakes up it does the flush. > > > Yes, but we are not sure the vcpu will be sleeping or running. In the > case where vcpus are running, it might be beneficial to wait a while.
I guess one possibility is for host scheduler to export run/preempt information to guest OS, as was discussed in the context of this thread as well:
http://lkml.org/lkml/2010/4/6/223
Essentially guest OS will know (using such exported information) which of its vcpus are currently running and thus do a busy-wait for them.
- vatsa
|  |