|   xen-ia64-devel
[Xen-ia64-devel] Re: [PATCH 11/15] ia64/pv_ops: paravirtualize	NR_IRQS 
| On Tue, Apr 22, 2008 at 02:05:59PM +0200, Jes Sorensen wrote:
> Isaku Yamahata wrote:
> >I'm willing to introduce something like PARAVIRT_NR_IRQS,
> >but I don't see how PARAVIRT_NR_IRQS solves the issues.
> >What I want here is to define by cpp
> >#define PARAVIRT_NR_IRQS                                                \
> >        max(                                                            \
> >                IA64_NATIVE_NR_IRQS,                                    \
> >                XEN_NR_IRQS,            /* only if CONFIG_XEN */        \
> >                LGUSET_NR_IRQS,         /* only if CONFIG_LGUSET */     \
> >                KVM_GUEST_NR_IRQS,      /* only if CONFIG_KVM_GUEST */  \
> >                MORE_FUTURE_VM_NR_IRQS, /* only if ...*/                \
> >                ....    \
> >        )
> >
> >Probably I'm missing something.
> >Could you suggest more concretly? Hopefully (pseudo) code snippet.
> 
> I'd rather have PARAVIRT_NR_IRQ set from Kconfig if possible given that
> all of these are constants anyway. If we cannot do that, then it would
> be better to do the #if FOO_NR_IRQ > PARAVIRT_NR_IRQ in the various
> header files for Xen/KVM/lguest so we don't get the clutter in the main
> makefile.
Unfotunately Kconfig doesn't support arithmetic comparison.
So do you want something like the followings?
irq.h:
#if (NR_VECTORS + 32 * NR_CPUS) < 1024
#define IA64_NATIVE_NR_IRQS (NR_VECTORS + 32 * NR_CPUS)
#else
#define IA64_NATIVE_NR_IRQS 1024
#endif
#define PARAVIRT_NR_IRQS        IA64_NATIVE_NR_IRQS
/* CAUTION:each asm/xxx/irq.h may redefine PARAVIRT_NR_IRQS */
#include <asm/xen/irq.h>
#include <asm/kvm/irq.h>
#include <asm/foo/irq.h>
...
#define NR_IRQS                 PARAVIRT_NR_IRQS
asm/foo/irq.h:
#define FOO_NR_IRQ      ...
#ifdef CONFIG_FOO
#if FOO_NR_IRQS > PARAVIRT_NR_IRQS
#undef PARAVIRT_NR_IRQS
#define PARAVIRT_NR_IRQS FOO_NR_IRQS
#endif
#endif
-- 
yamahata
_______________________________________________
Xen-ia64-devel mailing list
Xen-ia64-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-ia64-devel
 | 
 
| <Prev in Thread] | Current Thread | [Next in Thread> |  | 
[Xen-ia64-devel] [PATCH 15/15] ia64/pv_ops: add to hooks,	pv_time_ops, for steal time accounting., Isaku Yamahata
[Xen-ia64-devel] [PATCH 12/15] ia64/pv_ops: define initialization	hooks, pv_init_ops, for paravirtualized environment., Isaku Yamahata
[Xen-ia64-devel] [PATCH 07/15] ia64/pv_ops: define paravirtualized	instructions for native., Isaku Yamahata
[Xen-ia64-devel] [PATCH 13/15] ia64/pv_ops: add hooks,	pv_iosapic_ops, to paravirtualize iosapic., Isaku Yamahata
[Xen-ia64-devel] [PATCH 09/15] ia64/pv_ops: paravirtualize ivt.S, Isaku Yamahata
[Xen-ia64-devel] [PATCH 10/15] ia64/pv_ops: paravirtualize entry.S, Isaku Yamahata[Xen-ia64-devel] Re: [PATCH 04/15] ia64/pv_ops: introduce pv_info	which describes some random info., (continued)
 |  |  |