Marcelo Tosatti wrote:
On Mon, Jul 07, 2008 at 03:27:16PM -0300, Glauber Costa wrote:
I agree.  A paravirt solution solves the problem.
Please, look at the patch I've attached.

It does  __delay with host help. This may have the nice effect of not
busy waiting for long-enough delays, and may well.

It is _completely_ PoC, just to show the idea. It's ugly, broken,
obviously have to go through pv-ops, etc.

Also, I intend to add a lpj field in the kvm clock memory area. We
could do just this later, do both, etc.

If we agree this is a viable solution, I'll start working on a patch

This stops interrupts from being processed during the delay. And also there are cases like this recently introduced break:

                /* Allow RT tasks to run */
                preempt_enable();
                rep_nop();
                preempt_disable();

I think it would be better to just pass the lpj value via paravirt and
let the guest busy-loop as usual.

I agree. VMI and Xen already pass a cpu_khz paravirt value. Something similar would probably do the trick.

It may be worthwhile having udelay() or spinlocks call into KVM if they've been spinning long enough but I think that's a separate discussion.

Regards,

Anthony Liguori

--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to