From: Bill Irwin <bill.irwin@oracle.com>
To: Bill Irwin <bill.irwin@oracle.com>
Cc: linux-kernel@vger.kernel.org, bunk@stusta.de, akpm@osdl.org,
gcoady@gmail.com, zlynx@acm.org, dgc@sgi.com,
alan@lxorguk.ukuu.org.uk, andi@firstfloor.org, hch@infradead.org,
jengelh@linux01.gwdg.de, zwane@infradead.org, neilb@suse.de,
jens.axboe@oracle.com, eric@provenscaling.com,
wli@holomorphy.com
Subject: [2/3] unconditional i386 IRQ stacks
Date: Mon, 30 Apr 2007 16:37:12 -0700 [thread overview]
Message-ID: <20070430233712.GI26598@holomorphy.com> (raw)
In-Reply-To: <20070430233309.GH26598@holomorphy.com>
IRQ stacks are a valuable stability feature. This patch makes them
unconditional, as there is no circumstance under which they do not
improve stability and they have no meaningful performance impact.
Signed-off-by: William Irwin <bill.irwin@oracle.com>
Index: stack-paranoia/include/asm-i386/irq.h
===================================================================
--- stack-paranoia.orig/include/asm-i386/irq.h 2007-04-30 14:29:14.390652748 -0700
+++ stack-paranoia/include/asm-i386/irq.h 2007-04-30 14:32:46.742754004 -0700
@@ -24,14 +24,9 @@
# define ARCH_HAS_NMI_WATCHDOG /* See include/linux/nmi.h */
#endif
-#ifdef CONFIG_4KSTACKS
- extern void irq_ctx_init(int cpu);
- extern void irq_ctx_exit(int cpu);
-# define __ARCH_HAS_DO_SOFTIRQ
-#else
-# define irq_ctx_init(cpu) do { } while (0)
-# define irq_ctx_exit(cpu) do { } while (0)
-#endif
+void irq_ctx_init(int);
+void irq_ctx_exit(int);
+#define __ARCH_HAS_DO_SOFTIRQ
#ifdef CONFIG_IRQBALANCE
extern int irqbalance_disable(char *str);
Index: stack-paranoia/arch/i386/kernel/irq.c
===================================================================
--- stack-paranoia.orig/arch/i386/kernel/irq.c 2007-04-30 14:31:14.717509785 -0700
+++ stack-paranoia/arch/i386/kernel/irq.c 2007-04-30 14:43:02.869865087 -0700
@@ -49,7 +49,6 @@
#endif
}
-#ifdef CONFIG_4KSTACKS
/*
* per-CPU IRQ handling contexts (thread information and stack)
*/
@@ -60,7 +59,6 @@
static DEFINE_PER_CPU(union irq_ctx *, hardirq_ctx);
static DEFINE_PER_CPU(union irq_ctx *, softirq_ctx);
-#endif
/*
* do_IRQ handles all normal device IRQ's (the special
@@ -73,10 +71,8 @@
/* high bit used in ret_from_ code */
int irq = ~regs->orig_eax;
struct irq_desc *desc = irq_desc + irq;
-#ifdef CONFIG_4KSTACKS
union irq_ctx *curctx, *irqctx;
u32 *isp;
-#endif
if (unlikely((unsigned)irq >= NR_IRQS)) {
printk(KERN_EMERG "%s: cannot handle IRQ %d\n",
@@ -100,9 +96,6 @@
}
}
#endif
-
-#ifdef CONFIG_4KSTACKS
-
curctx = (union irq_ctx *) current_thread_info();
irqctx = per_cpu(hardirq_ctx, smp_processor_id());
@@ -138,7 +131,6 @@
: "memory", "cc"
);
} else
-#endif
desc->handle_irq(irq, desc);
irq_exit();
@@ -146,8 +138,6 @@
return 1;
}
-#ifdef CONFIG_4KSTACKS
-
/*
* These should really be __section__(".bss.page_aligned") as well, but
* gcc's 3.0 and earlier don't handle that correctly.
@@ -251,7 +241,6 @@
}
EXPORT_SYMBOL(do_softirq);
-#endif
/*
* Interrupt statistics:
next prev parent reply other threads:[~2007-04-30 23:41 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-04-30 23:23 [0/3] i386 stack handling updates Bill Irwin
2007-04-30 23:33 ` [1/3] dynamically allocate IRQ stacks Bill Irwin
2007-04-30 23:37 ` Bill Irwin [this message]
2007-04-30 23:40 ` [3/3] use vmalloc() to arrange guard pages for stacks Bill Irwin
2007-05-01 15:07 ` Chuck Ebbert
2007-05-01 16:31 ` Bill Irwin
2007-05-01 16:40 ` Chuck Ebbert
2007-05-01 16:47 ` Bill Irwin
2007-05-01 17:04 ` [1/3] dynamically allocate IRQ stacks Heiko Carstens
2007-05-01 17:26 ` Bill Irwin
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20070430233712.GI26598@holomorphy.com \
--to=bill.irwin@oracle.com \
--cc=akpm@osdl.org \
--cc=alan@lxorguk.ukuu.org.uk \
--cc=andi@firstfloor.org \
--cc=bunk@stusta.de \
--cc=dgc@sgi.com \
--cc=eric@provenscaling.com \
--cc=gcoady@gmail.com \
--cc=hch@infradead.org \
--cc=jengelh@linux01.gwdg.de \
--cc=jens.axboe@oracle.com \
--cc=linux-kernel@vger.kernel.org \
--cc=neilb@suse.de \
--cc=wli@holomorphy.com \
--cc=zlynx@acm.org \
--cc=zwane@infradead.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox