On Thu, 2009-12-10 at 16:48 +0000, A C wrote:
>> Hello,
>>
>> We started to port Adeos for the IRQs part.
>>
>> Simple question: Why the function raw_irqs_disabled_flags(flags) is
>> the same with or without ipipe ? (as we saw in some arch).
>>
>Because the pipeline code must guarantee that, for all standard linux
>IRQ state accessors/modifiers (e.g. local_irq_save/restore(),
>raw_irqs_disabled_flags()) the same values are used to assert/test the
>interrupt on/off states (e.g. MSR_EE, X86_EFLAGS_IF and so on), in the
>virtualized IRQ flags, than the real IRQ flags linux uses when the
>pipeline is disabled, for any given arch.
>e.g. on x86, albeit ugly, it must be allowed to open-code:
>raw_local_save_flags(flags);
>if (flags & X86_EFLAGS_IF)
>interrupts_are_enabled();
>even if the pipeline is enabled.
>> (in the case with ipipe)
>> Why not use __ipipe_test_root() -in the same way as the function
>> __raw_local_save_flags()- to write the new function
>> raw_irqs_disabled_flags(flags)?
>Because this would break the above rule, since __ipipe_test_root()
>returns 0/1.
Hello,
Sorry but we do not still understand what is the exception with the
functionraw_irqs_disabled_flags(flags). In fact, we understand well all others
functions (raw_local_irq_disable(), raw_local_irq_enable()...) in the two
differents levels (virtualized IRQ flags and real IRQ flags). But with
raw_irqs_disabled_flags(flags) we do not see the rule that we will break if it
wasn't the same with the virtualized IRQ flags and with the real IRQ flags.
Regards
Adrien Chiron and Vincent Vanbesien
_______________________________________________
Adeos-main mailing list
[email protected]
https://mail.gna.org/listinfo/adeos-main