public inbox for linux-ia64@vger.kernel.org
 help / color / mirror / Atom feed
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

  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