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

Glauber de Oliveira Costa gcosta at redhat.com
Thu Aug 16 01:17:15 EST 2007


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.






More information about the Lguest mailing list