Re: [PATCH 3/25][V3] irq_flags / halt routines

From: Glauber de Oliveira Costa
Date: Wed Aug 15 2007 - 11:16:37 EST


Avi Kivity escreveu:
Glauber de Oliveira Costa wrote:
Andi Kleen escreveu:
On Wed, Aug 15, 2007 at 11:18:25AM -0300, Glauber de Oliveira Costa wrote:
Didn't we agree this should be a pvops client?

-Andi

No. I exposed my reasoning, asked you back, but got no answer.
I'll do it again:

This operations are just manipulating bits, and are doing no
privileged operations at all. Nothing that can be paravirtualized, in

It's talking to a Hypervisor. That is privileged enough.
Please do that change. If you add so many more ifdefs it's your
duty to keep the overall number low.

Again, this is the code of such function:

static inline int raw_irqs_disabled_flags(unsigned long flags)
{
return !(flags & X86_EFLAGS_IF);
}
so all it is doing is getting a parameter (flags), and bitmasking it. It is not talking to any hypervisor. I can't see your point. Unless you are
arguing that it _should_ be talking to a hypervisor. Is that your point?

It is talking to a hypervisor. This hypervisor does full virtualization, except that it allows the guest to hide eflags.IF inside eflags.AC as an optimization (otherwise you need to do binary translation to overcome popf silently disregarding IF on the stack).

You can regard eflags.AC as the paravirtualized eflags.IF (Xen for example has a per-vcpu memory flag for the same).


Thanks Avi, I understand it now.
Andi, I will update it and resend shortly.



-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/