From: Jan Beulich <jbeulich@suse.com>
To: Andrew Cooper <andrew.cooper3@citrix.com>
Cc: "Roger Pau Monné" <roger.pau@citrix.com>,
"Oleksii Kurochko" <oleksii.kurochko@gmail.com>,
"xen-devel@lists.xenproject.org" <xen-devel@lists.xenproject.org>
Subject: Re: [PATCH for-4.20? 1/3] AMD/IOMMU: drop stray MSI enabling
Date: Mon, 3 Feb 2025 09:41:00 +0100 [thread overview]
Message-ID: <14d1f7fb-4e4e-4f06-b3e6-8ab25de7f939@suse.com> (raw)
In-Reply-To: <cf5ae390-fb9d-4839-9423-d1ead9bd34bf@citrix.com>
On 02.02.2025 14:50, Andrew Cooper wrote:
> On 30/01/2025 11:11 am, Jan Beulich wrote:
>> While the 2nd of the commits referenced below should have moved the call
>> to amd_iommu_msi_enable() instead of adding another one, the situation
>> wasn't quite right even before: It can't have done any good to enable
>> MSI when no IRQ was allocated for it, yet.
>>
>> Fixes: 5f569f1ac50e ("AMD/IOMMU: allow enabling with IRQ not yet set up")
>> Fixes: d9e49d1afe2e ("AMD/IOMMU: adjust setup of internal interrupt for x2APIC mode")
>> Signed-off-by: Jan Beulich <jbeulich@suse.com>
>>
>> --- a/xen/drivers/passthrough/amd/iommu_init.c
>> +++ b/xen/drivers/passthrough/amd/iommu_init.c
>> @@ -902,8 +902,6 @@ static void enable_iommu(struct amd_iomm
>
> There's a call to amd_iommu_msi_enable() just out of context here which
> was added by the 2nd referenced commit.
>
> Given that it's asymmetric in an if() condition regarding xt_en, and the
> calls are only set_affinity() calls, why is this retained?
>
> (I think I know, and if it is the reason I suspect, then you're missing
> a very critical detail from the commit message.)
Hmm, you did read the commit message, didn't you? That commit should have
moved that call, rather than adding another one.
However, you have a point. It looks like 7a89f62dddee ("AMD IOMMU: make
interrupt work again") should already have removed that call. Prior to
that change request_irq()'s call (via setup_irq()) to iommu_msi_startup()
was in fact premature, as MSI address and data weren't set up yet (IOW
while still apparently redundant, the extra call served kind of a doc
purpose). Things apparently worked because the IOMMU itself wasn't
enabled yet, and hence shouldn't have raised any interrupts prior to MSI
being fully configured.
However, for S3 resume I think the call needs to stay there, as the
startup hook wouldn't be called in that case (which may be the detail
you're alluding to). Imo that wants solving differently though. Not sure
it's a good idea to do this right here, or perhaps better in a separate
change.
I've added
"The other call to amd_iommu_msi_enable(), just out of patch context,
needs to stay there until S3 resume is re-worked. For the boot path that
call should be unnecessary, as iommu{,_maskable}_msi_startup() will have
done it already (by way of invoking iommu_msi_unmask())."
as a 2nd paragraph to the description, in the hope that's what you're
after.
Jan
next prev parent reply other threads:[~2025-02-03 8:41 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-01-30 11:10 [PATCH for-4.20 0/3] AMD/IOMMU: assorted corrections Jan Beulich
2025-01-30 11:11 ` [PATCH for-4.20? 1/3] AMD/IOMMU: drop stray MSI enabling Jan Beulich
2025-01-31 18:46 ` Jason Andryuk
2025-02-02 13:50 ` Andrew Cooper
2025-02-03 8:41 ` Jan Beulich [this message]
2025-02-03 14:19 ` Andrew Cooper
2025-02-03 15:53 ` Jan Beulich
2025-02-03 16:19 ` Andrew Cooper
2025-01-30 11:12 ` [PATCH for-4.20 2/3] x86/PCI: init segments earlier Jan Beulich
2025-01-31 18:47 ` Jason Andryuk
2025-02-02 14:46 ` Andrew Cooper
2025-02-03 9:09 ` Jan Beulich
2025-02-03 15:31 ` Andrew Cooper
2025-02-03 12:45 ` Roger Pau Monné
2025-02-03 13:00 ` Jan Beulich
2025-02-03 13:03 ` Jan Beulich
2025-02-03 14:23 ` Andrew Cooper
2025-02-03 15:55 ` Jan Beulich
2025-01-30 11:13 ` [PATCH for-4.20? 3/3] AMD/IOMMU: log IVHD contents Jan Beulich
2025-01-31 18:47 ` Jason Andryuk
2025-02-02 13:57 ` Andrew Cooper
2025-01-31 11:18 ` [PATCH for-4.20 0/3] AMD/IOMMU: assorted corrections Oleksii Kurochko
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=14d1f7fb-4e4e-4f06-b3e6-8ab25de7f939@suse.com \
--to=jbeulich@suse.com \
--cc=andrew.cooper3@citrix.com \
--cc=oleksii.kurochko@gmail.com \
--cc=roger.pau@citrix.com \
--cc=xen-devel@lists.xenproject.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 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.