From: mark.rutland@arm.com (Mark Rutland)
To: linux-arm-kernel@lists.infradead.org
Subject: Why MSI is limited to 32 MSI's per device
Date: Tue, 14 Jun 2016 16:45:07 +0100 [thread overview]
Message-ID: <20160614154507.GA14781@leverpostej> (raw)
In-Reply-To: <loom.20160614T164843-937@post.gmane.org>
On Tue, Jun 14, 2016 at 02:58:36PM +0000, valmiki wrote:
> Hi,
>
> Why MSI interrupts are limited to 32 per device ?
> We have 16 bit data, with which we can have 2^16 combinaitons of different
> data, which in turn those many MSI vectors.
I assume you're specifically asking w.r.t. PCI.
Conventional PCI allowed devices to have up to 32 MSIs, no more. PCI
devices are only permitted to choose up to the low 5 bits of an MSI
payload. The remaining bits are shared by all MSIs.
> Other than increase in number interrupts to 2048 in MSI-X, what advantage we
> get by using MSI-X over MSI.
As alluded to below, MSI-X allows MSIs to be targeted at different
doorbell addresses, and provides full control of the payload of each
MSI.
There may be other gains that I am not aware of.
> I read MSI-X interrupts can be targeted to different CPU's in an SMP system.
> why can't MSI interrupts can be targeted to different processors ?
Conventional PCI has a single doorbell address per device. I believe
that x86 had a doorbell per-cpu, and hence all MSIs for a device
targeted the same CPU. I'm not entirely certain on that, nor whether
things have changed.
Whether or not that holds elsewhere depends on your MSI controller and
IRQ controllers.
Thanks,
Mark.
next prev parent reply other threads:[~2016-06-14 15:45 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-06-14 14:58 Why MSI is limited to 32 MSI's per device valmiki
2016-06-14 15:45 ` Mark Rutland [this message]
2016-06-15 6:39 ` valmiki
2016-06-15 12:49 ` Arnd Bergmann
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=20160614154507.GA14781@leverpostej \
--to=mark.rutland@arm.com \
--cc=linux-arm-kernel@lists.infradead.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