From: Grant Grundler <iod00d@hp.com>
To: linux-ia64@vger.kernel.org
Subject: Re: [PATCH] Vector sharing (Large I/O system support)
Date: Thu, 15 Jul 2004 20:43:29 +0000 [thread overview]
Message-ID: <20040715204329.GE14769@cup.hp.com> (raw)
In-Reply-To: <40F5E291.7050803@jp.fujitsu.com>
On Thu, Jul 15, 2004 at 10:49:05AM +0900, Kenji Kaneshige wrote:
> Hi,
>
> Current ia64 linux cannot handle greater than 184 interrupt
> sources because of the lack of vectors. The following patch
> enables ia64 linux to handle greater than 184 interrupt sources
> by allowing the same vector number to be shared by multiple
> IOSAPIC's RTEs.
Kenji,
Some questions about this patch.
The patch uses "pin" to describe IOSAPIC inputs.
Doesn't PCI use "pin" to describe PCI device IRQ outputs?
I'm wondering if it's just me who's confused (likely).
...
> diff -Naurp linux-2.6.8-rc1/arch/ia64/kernel/iosapic.c linux-2.6.8-rc1-changed/arch/ia64/kernel/iosapic.c
> --- linux-2.6.8-rc1/arch/ia64/kernel/iosapic.c 2004-07-14 15:07:23.811416574 +0900
> +++ linux-2.6.8-rc1-changed/arch/ia64/kernel/iosapic.c 2004-07-14 15:08:02.630001886 +0900
> @@ -103,15 +103,23 @@ static spinlock_t iosapic_lock = SPIN_LO
>
> /* These tables map IA-64 vectors to the IOSAPIC pin that generates this vector. */
>
> -static struct iosapic_intr_info {
> +struct iosapic_pin {
> + struct list_head pin_list; /* IOSAPIC pins which share the same vector */
> char *addr; /* base address of IOSAPIC */
> - u32 low32; /* current value of low word of Redirection table entry */
> unsigned int gsi_base; /* first GSI assigned to this IOSAPIC */
> - char rte_index; /* IOSAPIC RTE index (-1 => not an IOSAPIC interrupt) */
> + char rte_index; /* IOSAPIC RTE index */
> +};
> +
> +static struct iosapic_intr_info {
> + struct list_head pin_head; /* List head of IOSAPIC pins */
> + struct iosapic_pin pin; /* First entry of IOSAPIC pins list */
It's not obvious to me why both pin_head and pin are necessary.
"struct iosapic_pin" includes a list_head definition.
Would pin.pin_list be sufficient as list head?
BTW, one could avoid the pin/line confusion by naming the above "irte_list"
or something like that. This all directly deals with programming the
IOSAPIC irte.
> -} iosapic_intr_info[IA64_NUM_VECTORS];
> + unsigned char type : 1; /* Vector type */
> +} iosapic_intr_info[IA64_NUM_VECTORS] __cacheline_aligned;
Do you have any data showing accesses to iosapic_intr_info is
ping-ponging between CPUs?
I mostly see read-only access and don't think that will cause
such ping-pong behaviour.
thanks,
grant
next prev parent reply other threads:[~2004-07-15 20:43 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2004-07-15 1:49 [PATCH] Vector sharing (Large I/O system support) Kenji Kaneshige
2004-07-15 20:43 ` Grant Grundler [this message]
2004-07-16 15:48 ` Kenji Kaneshige
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=20040715204329.GE14769@cup.hp.com \
--to=iod00d@hp.com \
--cc=linux-ia64@vger.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox