[Lguest] [PATCH 3/25][V3] irq_flags / halt routines

Avi Kivity avi at qumranet.com
Thu Aug 16 01:13:23 EST 2007


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).


-- 
error compiling committee.c: too many arguments to function




More information about the Lguest mailing list