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?No. I exposed my reasoning, asked you back, but got no answer.
-Andi
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).