All of lore.kernel.org
 help / color / mirror / Atom feed
From: Len Brown <lenb@kernel.org>
To: Lee Howard <faxguy@howardsilvan.com>
Cc: Shaohua Li <shaohua.li@intel.com>, linux-acpi@vger.kernel.org
Subject: Re: controlling ACPI IRQ routing
Date: Sat, 5 Jan 2008 00:48:29 -0500	[thread overview]
Message-ID: <200801050048.29908.lenb@kernel.org> (raw)
In-Reply-To: <477C269B.4080407@howardsilvan.com>

On Wednesday 02 January 2008 19:04, Lee Howard wrote:
> Shaohua Li wrote:
> > Currently vector is allocated when pci_enable_device is called. So which
> > vector is allocated depends on how many drivers already called the
> > routine. The first vector is 0x31, later higher priority (higher) vector
> > will be allocated. In latest kernel, a vector of a irq could be variable
> > when irq affinity is set, so it's much complex. There is no existing
> > method to reserve a vector for a device.
> 
> The systems I've been using are all single-processor AMD x86 or x86_64 
> systems.  So I doubt that IRQ affinity applies in these cases.
> 
> I've made the driver get "preloaded" through mkinitrd/initrd on 
> boot-time, but that doesn't seem to make a difference in device performance.
> 
> Is it possible to see in 'dmesg' output which vector was allocated to 
> which IRQ/device?

no.  the vectors are chosesn when the IOAPIC is programmed
and today, linux just prints out the GSI (which is the IOAPIC pin #)
and the IRQ, which is a corresponding data structure.

>> In IOAPIC mode, interrupt priority isn't related with the pin (in your
>> case, irq 16 or 19), but the vector of the pin.

>Just to help my understanding a bit... does the Linux ACPI driver 
>determine which IRQ numbers are given to certain devices?  And if so, 
>how does it make those assignments?

Yes.  It uses a PCI Routing Table (_PRT) in the DSDT.
The _PRT may either hard-code the relationship between
PCI interrupt pin (as is typical in IOAPIC mode)
or use a PCI Interrupt Link Device (as is common in PIC mode)
that can be programmed to a number of differet input pins.

This is used to minimize interrupt line sharing.
But on your system, you have no interrupt line sharing,
so that isnt' the problem.

-Len

  reply	other threads:[~2008-01-05  5:48 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-12-27 22:00 controlling ACPI IRQ routing Lee Howard
2007-12-28  4:05 ` Shaohua Li
2007-12-28  5:29   ` Lee Howard
2007-12-28  6:06     ` Shaohua Li
2007-12-29  8:39       ` Len Brown
2007-12-29 18:40         ` Lee Howard
2008-01-02 14:11           ` Dominique Michel
2008-01-05  5:51             ` Len Brown
2008-01-06 16:38               ` Lee Howard
2008-01-08 16:49                 ` Chuck Ebbert
2008-01-03  0:04       ` Lee Howard
2008-01-05  5:48         ` Len Brown [this message]
2008-01-02 23:59   ` Lee Howard

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=200801050048.29908.lenb@kernel.org \
    --to=lenb@kernel.org \
    --cc=faxguy@howardsilvan.com \
    --cc=linux-acpi@vger.kernel.org \
    --cc=shaohua.li@intel.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 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.