All of lore.kernel.org
 help / color / mirror / Atom feed
From: ebiederm@xmission.com (Eric W. Biederman)
To: Yinghai Lu <yinghai@kernel.org>
Cc: Ingo Molnar <mingo@elte.hu>, Thomas Gleixner <tglx@linutronix.de>,
	"H. Peter Anvin" <hpa@zytor.com>,
	Andrew Morton <akpm@linux-foundation.org>,
	Suresh Siddha <suresh.b.siddha@intel.com>,
	linux-kernel@vger.kernel.org,
	Jeremy Fitzhardinge <jeremy@goop.org>
Subject: Re: [PATCH  0/8] tip related: radix tree for spareseirq and logical flat clean up
Date: Sat, 13 Feb 2010 03:39:25 -0800	[thread overview]
Message-ID: <m18waxqs9e.fsf@fess.ebiederm.org> (raw)
In-Reply-To: <4B7676BB.8030608@kernel.org> (Yinghai Lu's message of "Sat\, 13 Feb 2010 01\:54\:03 -0800")

Yinghai Lu <yinghai@kernel.org> writes:

> please check
>
> Subject: [PATCH] x86: use vector_desc instead of vector_irq
>
> Eric pointed out that radix tree version of irq_to_desc will magnify delay on the path
> of handle_irq.
> use vector_desc to reduce the calling of irq_to_desc.

You have missed Xen's handling of handle_irq.  Let's just kill it like:


>From 0fd5a07f0d346aee37524108d74be7d70c0ab753 Mon Sep 17 00:00:00 2001
From: Eric W. Biederman <ebiederm@xmission.com>
Date: Sat, 13 Feb 2010 03:22:59 -0800
Subject: [PATCH] xen: Remove unnecessary arch specific xen irq functions.

Right now xen's use of the x86 and ia64 handle_irq is just bizarre and very
fragile as it is very non-obvious the function exists and is is used by
code out in drivers/....  Luckily using handle_irq is completly unnecessary,
and we can just use the generic irq apis instead.

This still leaves drivers/xen/events.c as a problematic user of the generic
irq apis it has "static struct irq_info irq_info[NR_IRQS]" but that can be
fixed some other time.

Signed-off-by: Eric W. Biederman <ebiederm@xmission.com>
---
 arch/ia64/include/asm/xen/events.h |    4 ----
 drivers/xen/events.c               |    8 ++++++--
 2 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/arch/ia64/include/asm/xen/events.h b/arch/ia64/include/asm/xen/events.h
index b8370c8..baa74c8 100644
--- a/arch/ia64/include/asm/xen/events.h
+++ b/arch/ia64/include/asm/xen/events.h
@@ -36,10 +36,6 @@ static inline int xen_irqs_disabled(struct pt_regs *regs)
 	return !(ia64_psr(regs)->i);
 }
 
-static inline void handle_irq(int irq, struct pt_regs *regs)
-{
-	__do_IRQ(irq);
-}
 #define irq_ctx_init(cpu)	do { } while (0)
 
 #endif /* _ASM_IA64_XEN_EVENTS_H */
diff --git a/drivers/xen/events.c b/drivers/xen/events.c
index ce602dd..2f84137 100644
--- a/drivers/xen/events.c
+++ b/drivers/xen/events.c
@@ -649,9 +649,13 @@ void xen_evtchn_do_upcall(struct pt_regs *regs)
 				int bit_idx = __ffs(pending_bits);
 				int port = (word_idx * BITS_PER_LONG) + bit_idx;
 				int irq = evtchn_to_irq[port];
+				struct irq_desc *desc;
 
-				if (irq != -1)
-					handle_irq(irq, regs);
+				if (irq != -1) {
+					desc = irq_to_desc(irq);
+					if (desc)
+						generic_handle_irq_desc(irq, desc);
+				}
 			}
 		}
 
-- 
1.6.5.2.143.g8cc62


  reply	other threads:[~2010-02-13 11:39 UTC|newest]

Thread overview: 43+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-02-13  2:49 [PATCH 0/8] tip related: radix tree for spareseirq and logical flat clean up Yinghai Lu
2010-02-13  2:49 ` [PATCH 1/8] irq: remove not need bootmem code Yinghai Lu
2010-02-13  2:49 ` [PATCH 2/8] radix: move radix init early Yinghai Lu
2010-02-13  2:49 ` [PATCH 3/8] sparseirq: change irq_desc_ptrs to static Yinghai Lu
2010-02-13  2:49 ` [PATCH 4/8] sparseirq: use radix_tree instead of ptrs array Yinghai Lu
2010-02-13  2:49 ` [PATCH 5/8] x86: remove arch_probe_nr_irqs Yinghai Lu
2010-02-13  2:49 ` [PATCH 6/8] use nr_cpus= to set nr_cpu_ids early Yinghai Lu
2010-02-13  2:49 ` [PATCH 7/8] x86: use num_processors for possible cpus Yinghai Lu
2010-02-13  2:49 ` [PATCH 8/8] x86: make 32bit apic flat to physflat switch like 64bit Yinghai Lu
2010-02-13  3:44 ` [PATCH 0/8] tip related: radix tree for spareseirq and logical flat clean up Eric W. Biederman
2010-02-13  3:49   ` H. Peter Anvin
2010-02-13  4:17     ` Eric W. Biederman
2010-02-13 22:12       ` Jeremy Fitzhardinge
2010-02-13 22:26         ` Eric W. Biederman
2010-02-13  9:54   ` Yinghai Lu
2010-02-13 11:39     ` Eric W. Biederman [this message]
2010-02-13 12:04     ` Eric W. Biederman
2010-02-13 22:40       ` Yinghai Lu
2010-02-13 23:14         ` Eric W. Biederman
2010-02-13 23:59           ` Yinghai Lu
2010-02-14  0:30             ` Eric W. Biederman
2010-02-14  0:49               ` Yinghai Lu
2010-02-18  2:49               ` [PATCH 1/3] xen: Remove unnecessary arch specific xen irq functions Yinghai Lu
2010-02-19  1:36                 ` [tip:x86/irq] " tip-bot for Eric W. Biederman
     [not found]               ` <4B7CA9A1.3020806@kernel.org>
2010-02-18  2:49                 ` [PATCH 0/3] radix tree spareirq addon cleanup Yinghai Lu
2010-02-18  2:50                 ` [PATCH 2/3] x86: use vector_desc instead of vector_irq Yinghai Lu
2010-02-18 17:22                   ` Eric W. Biederman
2010-02-23  6:39                     ` [PATCH -v3 1/2] " Yinghai Lu
2010-02-23  6:44                       ` [PATCH -v2 2/2] genericirq: change ack/mask in irq_chip to take irq_desc instead of irq Yinghai Lu
2010-02-24 21:36                         ` Eric W. Biederman
2010-02-24 22:07                           ` Yinghai Lu
2010-02-25  0:22                             ` Stephen Rothwell
2010-03-02 14:58                           ` Thomas Gleixner
2010-03-03  8:49                             ` Yinghai Lu
2010-03-03 10:26                               ` Thomas Gleixner
     [not found]                       ` <4B84F013.9040708@kernel.org>
2010-02-24  9:26                         ` [PATCH -v3 " Yinghai Lu
2010-02-24  9:27                       ` [PATCH -v4 1/2] x86: use vector_desc instead of vector_irq Yinghai Lu
2010-02-18  2:50                 ` [RFC PATCH 3/3] genericirq: change ack/mask in irq_chip to take irq_desc in addition to irq Yinghai Lu
2010-02-18 17:04                   ` Eric W. Biederman
2010-02-18 17:13                     ` H. Peter Anvin
2010-02-18 19:51                       ` Yinghai Lu
2010-02-13 12:26     ` [PATCH 0/8] tip related: radix tree for spareseirq and logical flat clean up Eric W. Biederman
2010-02-13 22:36       ` Yinghai Lu

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=m18waxqs9e.fsf@fess.ebiederm.org \
    --to=ebiederm@xmission.com \
    --cc=akpm@linux-foundation.org \
    --cc=hpa@zytor.com \
    --cc=jeremy@goop.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@elte.hu \
    --cc=suresh.b.siddha@intel.com \
    --cc=tglx@linutronix.de \
    --cc=yinghai@kernel.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.