Re: [RFC PATCH 15/35] subarch support for controlling interrupt delivery

Christian Limpach
2006-05-09T15:52:04Z

On Tue, May 09, 2006 at 07:49:42AM -0700, Martin J. Bligh wrote:
> >+#define __cli() \
> >+do { \
> >+ struct vcpu_info *_vcpu; \
> >+ preempt_disable(); \
> >+ _vcpu = &HYPERVISOR_shared_info->vcpu_info[__vcpu_id]; \
> >+ _vcpu->evtchn_upcall_mask = 1; \
> >+ preempt_enable_no_resched(); \
> >+ barrier(); \
> >+} while (0)
>
> Should be a real function

Yes, except it's not trivially done because if __cli was an inline
function, you need to have everything that is used in the declaration
defined when the function is declared as opposed to when the #define
gets used. I'll give it another try, but it very quickly becomes
#include hell.

Anybody want to comment on the performance impact of making
local_irq_* non-inline functions?

christian