From: Thomas Gleixner <tglx@linutronix.de>
To: Ramon Fried <rfried.dev@gmail.com>
Cc: hkallweit1@gmail.com, Bjorn Helgaas <bhelgaas@google.com>,
maz@kernel.org, lorenzo.pieralisi@arm.com,
linux-pci@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: MSI irqchip configured as IRQCHIP_ONESHOT_SAFE causes spurious IRQs
Date: Fri, 17 Jan 2020 18:11:23 +0100 [thread overview]
Message-ID: <87sgke1004.fsf@nanos.tec.linutronix.de> (raw)
In-Reply-To: <CAGi-RUJkr0gPbynYe+Gkk-JoeyCHdSvd9zdgCv4Hij5vfGVMEA@mail.gmail.com>
Ramon,
Ramon Fried <rfried.dev@gmail.com> writes:
> On Fri, Jan 17, 2020 at 4:38 PM Thomas Gleixner <tglx@linutronix.de> wrote:
>> This is wrong. MSI is edge type, not level and you are really mixing up
>> the concepts here.
>>
>> The fact that the MSI block raises a level interrupt on the output side
>> has absolutely nothing to do with the type of the MSI interrupt itself.
>>
>> MSI is edge type by definition and this does not change just because
>> there is a translation unit between the MSI interrupt and the CPU
>> controller.
>>
>> The actual MSI interrupts do not even know about the existance of that
>> MSI block at all. They do not care, as all they need to know is a
>> message and an address. When an interrupt is raised in the device the
>> MSI chip associated to the device (PCI or something else) writes this
>> message to the address exactly ONCE. And this exactly ONCE defines the
>> edge nature of MSI.
>
> OK, now I understand my mistake. thanks.
:)
>> A proper designed MSI device should not send another message before the
>> interrupt handler which is associated to the device has handled the
>> interrupt at the device level.
>
> By "MSI device" you mean the MSI controller in the SOC or the endpoint
> that sends the MSI ?
The device which incorporates the MSI endpoint.
Thanks,
tglx
next prev parent reply other threads:[~2020-01-17 17:11 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-12-09 10:27 MSI irqchip configured as IRQCHIP_ONESHOT_SAFE causes spurious IRQs Ramon Fried
2020-01-02 8:19 ` Ramon Fried
2020-01-13 14:59 ` Ramon Fried
2020-01-14 12:15 ` Thomas Gleixner
2020-01-14 21:38 ` Ramon Fried
2020-01-14 21:40 ` Ramon Fried
2020-01-14 22:54 ` Thomas Gleixner
2020-01-16 0:19 ` Ramon Fried
2020-01-16 1:39 ` Thomas Gleixner
2020-01-16 7:58 ` Ramon Fried
2020-01-16 9:32 ` Thomas Gleixner
2020-01-17 13:32 ` Ramon Fried
2020-01-17 14:38 ` Thomas Gleixner
2020-01-17 15:43 ` Ramon Fried
2020-01-17 17:11 ` Thomas Gleixner [this message]
2020-01-17 20:01 ` Ramon Fried
2020-01-17 22:47 ` Thomas Gleixner
2020-01-20 8:02 ` Ramon Fried
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=87sgke1004.fsf@nanos.tec.linutronix.de \
--to=tglx@linutronix.de \
--cc=bhelgaas@google.com \
--cc=hkallweit1@gmail.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pci@vger.kernel.org \
--cc=lorenzo.pieralisi@arm.com \
--cc=maz@kernel.org \
--cc=rfried.dev@gmail.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox