debuggers.hg

changeset 20902:8e1385f1e8a7

x86: reduce EOI stack's size in per-cpu area.

Only dynamic vectors uses EOI stack, so the size
can be safely reducd to NR_DYNAMIC_VECTORS.

Signed-off-by : Xiantao Zhang <xiantao.zhang@intel.com>
author Keir Fraser <keir.fraser@citrix.com>
date Tue Jan 26 15:53:52 2010 +0000 (2010-01-26)
parents 58b45bb15137
children 66587cc5f1e1
files xen/arch/x86/irq.c
line diff
     1.1 --- a/xen/arch/x86/irq.c	Tue Jan 26 15:53:01 2010 +0000
     1.2 +++ b/xen/arch/x86/irq.c	Tue Jan 26 15:53:52 2010 +0000
     1.3 @@ -753,8 +753,8 @@ struct pending_eoi {
     1.4      u32 vector:8; /* vector awaiting EOI */
     1.5  };
     1.6  
     1.7 -static DEFINE_PER_CPU(struct pending_eoi, pending_eoi[NR_VECTORS]);
     1.8 -#define pending_eoi_sp(p) ((p)[NR_VECTORS-1].vector)
     1.9 +static DEFINE_PER_CPU(struct pending_eoi, pending_eoi[NR_DYNAMIC_VECTORS]);
    1.10 +#define pending_eoi_sp(p) ((p)[NR_DYNAMIC_VECTORS-1].vector)
    1.11  
    1.12  static inline void set_pirq_eoi(struct domain *d, unsigned int irq)
    1.13  {
    1.14 @@ -816,7 +816,7 @@ static void __do_IRQ_guest(int irq)
    1.15      {
    1.16          sp = pending_eoi_sp(peoi);
    1.17          ASSERT((sp == 0) || (peoi[sp-1].vector < vector));
    1.18 -        ASSERT(sp < (NR_VECTORS-1));
    1.19 +        ASSERT(sp < (NR_DYNAMIC_VECTORS-1));
    1.20          peoi[sp].irq = irq;
    1.21          peoi[sp].vector = vector;
    1.22          peoi[sp].ready = 0;