lkml.org 
[lkml]   [2003]   [Jan]   [2]   [last100]   RSS Feed
Views: [more markup]  [less markup]  [headers]  [forward] 
 
Messages in this thread
/
FromDavid Mosberger <>
DateThu, 2 Jan 2003 10:30:08 -0800
SubjectRe: [RFC] irq handling code consolidation (common part)
>>>>> On Tue, 24 Dec 2002 09:03:31 +0300, "Andrey Panin" <pazke@orbita1.ru> said:

  Andrey> Hi all, this patch moves some common parts of irq handling
  Andrey> code to one place.  Arch specific patches will follow. Patch
  Andrey> for i386 is tested and performed well, but other arch
  Andrey> specific patched are not. Please take a look.

  Andrey> Please CC me answering this letter, I'm not subscribed to
  Andrey> lkml currently.

+/*
+ * Controller mappings for all interrupt sources:
+ */
+irq_desc_t irq_desc[NR_IRQS] __cacheline_aligned = {
+	[0 ... NR_IRQS - 1] = {
+		.handler =	&no_irq_type,
+		.lock =		SPIN_LOCK_UNLOCKED,
+	}
+};
This isn't good.  For example, NUMA platforms with per-CPU irqs want
to allocate the irq descriptors in local memory.  On ia64, we
introduced a minimal irq-descriptor API for this purpose:

	/* Return a pointer to the irq descriptor for IRQ.  */
	static inline struct irq_desc * irq_desc (int irq);
	/* Extract the IA-64 vector that corresponds to IRQ.  */
	static inline ia64_vector irq_to_vector (int irq);
	/*
	 * Convert the local IA-64 vector to the corresponding irq number.
	 * This translation is done in the context of the interrupt domain
	 * that the currently executing CPU belongs to.
	 */
	static inline unsigned int local_vector_to_irq (ia64_vector vec);
I think the platform-independent part of the code really would only
need the first routine irq_desc().  The other two are ia64-specific.

BTW: if you haven't done so already, I'd suggest to take a look at
arch/ia64/kernel/irq.c.  I tried to keep this code as close as
possible to the x86 version.  There shouldn't be anything in there
that isn't wanted for a good reason.

Thanks,

	--david
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

\
 
 \ /
  Last update: 2005-03-22 12:32    [from the cache]
©2003-2008