public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Christoph Hellwig <hch@infradead.org>
To: Ingo Molnar <mingo@elte.hu>
Cc: Andrew Morton <akpm@osdl.org>,
	linux-kernel@vger.kernel.org, Scott Wood <scott@timesys.com>
Subject: Re: [patch] generic-hardirqs.patch, 2.6.9-rc1-bk14
Date: Wed, 8 Sep 2004 13:34:45 +0100	[thread overview]
Message-ID: <20040908133445.A31267@infradead.org> (raw)
In-Reply-To: <20040908120613.GA16916@elte.hu>; from mingo@elte.hu on Wed, Sep 08, 2004 at 02:06:13PM +0200

On Wed, Sep 08, 2004 at 02:06:13PM +0200, Ingo Molnar wrote:
> 
> the attached patch moves generic hardirq handling bits to
> kernel/hardirq.c. It is not a replacement for any of the existing IRQ
> functions, so architectures can use their existing hardirq code in an
> unmodified form. It is a library of generic functions that an
> architecture can make use of optionally.
> 
> I've fully converted x86's irq.c to use the new functions, and Scott
> Wood has done the same for ppc/ppc64 as well. (the arch-ppc* changes are
> not included in this patch because i couldnt test them myself in the
> current port of this patch - but the generic bits were tested on ppc.)
> 
> i have test-compiled and test-booted the patch on x86 and x64, on SMP &&
> PREEMPT and !SMP && !PREEMPT kernels. x64 needed only a single change (a
> setup_irq() prototype) to work fine, which makes me believe that the
> patch will not break other architectures either.
> 
> (a more complex version of this patch has been tested for weeks as part
> of the voluntary-preempt patches as well.)


> +++ linux/include/asm-x86_64/hardirq.h	
> @@ -25,8 +25,8 @@
>   * - ( bit 26 is the PREEMPT_ACTIVE flag. )
>   *
>   * PREEMPT_MASK: 0x000000ff
> - * HARDIRQ_MASK: 0x0000ff00
> - * SOFTIRQ_MASK: 0x00ff0000
> + * SOFTIRQ_MASK: 0x0000ff00
> + * HARDIRQ_MASK: 0x00ff0000
>   */
>  
>  #define PREEMPT_BITS	8
> @@ -99,4 +99,6 @@ do {									\
>    extern void synchronize_irq(unsigned int irq);
>  #endif /* CONFIG_SMP */
>  
> +extern int setup_irq(unsigned int irq, struct irqaction * new);

This doesn't apply anymore because most of <asm/hardirq.h> moved
to linux/hardirq.h in -mm and a the patch is on it's way to Linus.

> @@ -71,10 +74,21 @@ extern irq_desc_t irq_desc [NR_IRQS];
>  
>  #include <asm/hw_irq.h> /* the arch dependent stuff */
>  
> -extern int setup_irq(unsigned int , struct irqaction * );
> +
> +extern asmlinkage int generic_handle_IRQ_event(unsigned int irq, struct pt_regs *regs, struct irqaction *action);
> +extern void generic_synchronize_irq(unsigned int irq);
> +extern int generic_setup_irq(unsigned int irq, struct irqaction * new);
> +extern void generic_free_irq(unsigned int irq, void *dev_id);
> +extern void generic_disable_irq_nosync(unsigned int irq);
> +extern void generic_disable_irq(unsigned int irq);
> +extern void generic_enable_irq(unsigned int irq);
> +extern void generic_note_interrupt(int irq, irq_desc_t *desc, int action_ret);

Please don't introduce the generic_ names just to have every arch (in your
previous patches, that is) provide a wrapper with normal names again.


> --- linux/kernel/Makefile.orig	
> +++ linux/kernel/Makefile	
> @@ -3,7 +3,7 @@
>  #
>  
>  obj-y     = sched.o fork.o exec_domain.o panic.o printk.o profile.o \
> -	    exit.o itimer.o time.o softirq.o resource.o \
> +	    exit.o itimer.o time.o softirq.o hardirq.o resource.o \

And make hardirq.o dependent on some symbols the architectures set.
Else arches that don't use it carry tons of useless baggage around (and
in fact I'm pretty sure it wouldn't even compie for many)


  parent reply	other threads:[~2004-09-08 12:36 UTC|newest]

Thread overview: 38+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2004-09-08 12:06 [patch] generic-hardirqs.patch, 2.6.9-rc1-bk14 Ingo Molnar
2004-09-08 12:29 ` La Monte H.P. Yarroll
2004-09-08 13:25   ` Christoph Hellwig
2004-09-08 13:40     ` Ingo Molnar
2004-09-08 13:47       ` Christoph Hellwig
2004-09-08 12:34 ` Christoph Hellwig [this message]
2004-09-08 12:45   ` Ingo Molnar
2004-09-08 12:49     ` Christoph Hellwig
2004-09-08 13:05       ` Ingo Molnar
2004-09-08 13:12         ` Christoph Hellwig
2004-09-08 13:17           ` Ingo Molnar
2004-09-08 13:20             ` Christoph Hellwig
2004-09-08 13:32               ` Ingo Molnar
2004-09-09 17:56           ` Scott Wood
2004-09-08 12:57     ` William Lee Irwin III
2004-09-08 13:01       ` Christoph Hellwig
2004-09-08 13:09         ` William Lee Irwin III
2004-09-08 13:10         ` Ingo Molnar
2004-09-08 13:34       ` Zwane Mwaikambo
2004-09-08 13:31         ` Christoph Hellwig
2004-09-08 13:47           ` Zwane Mwaikambo
2004-09-08 14:09             ` Arjan van de Ven
2004-09-08 18:25               ` Ingo Molnar
2004-09-08 18:42                 ` Zwane Mwaikambo
2004-09-08 21:14                 ` [patch] generic-hardirqs-2.6.9-rc1-mm4.patch Ingo Molnar
2004-09-09 16:57                   ` Christoph Hellwig
2004-09-09 17:24                     ` Ingo Molnar
2004-09-09 17:53                       ` William Lee Irwin III
2004-09-09 17:54                         ` Arjan van de Ven
2004-09-09 17:56                           ` William Lee Irwin III
2004-09-09 20:10                           ` Russell King
2004-09-09 20:51                             ` Scott Wood
2004-09-09 21:00                               ` Russell King
2004-09-10  5:57                                 ` Arjan van de Ven
2004-09-09 20:24                   ` Rafael J. Wysocki
2004-09-09 20:40                     ` Andrew Morton
2004-09-09 20:49                       ` Ingo Molnar
2004-09-08 13:03     ` [patch] generic-hardirqs.patch, 2.6.9-rc1-bk14 Arjan van de Ven

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=20040908133445.A31267@infradead.org \
    --to=hch@infradead.org \
    --cc=akpm@osdl.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@elte.hu \
    --cc=scott@timesys.com \
    /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