https://bugzilla.kernel.org/show_bug.cgi?id=218982

--- Comment #13 from Vasant Hegde (vasant.he...@amd.com) ---
Thanks for the dmesg Tony.

Looking into the dmesg :
[    0.416070] AMD-Vi: Extended features (0x246577efa2254afa, 0x0): PPR NX GT
[5] IA GA PC GA_vAPIC
[    0.416077] AMD-Vi: Interrupt remapping enabled
[    0.464738] AMD-Vi: Virtual APIC enabled

It has GT support and looking into code path again I can confirm GT feature
gets enabled in resume path.

Only other noticeable difference is X2APIC support. Looks like x2apic is not
enabled in BIOS. But driver will use MSI interrupt and it should work fine. (I
am referring to iommu_init_irq() code path).

By any chance do you see any message on console once you resume the system?

Just to double check, can you try out below change?  This is queued for v6.13
merge window. Basically this patch will skip copy_device_table() code path in
resume path (This is to rule out the resume code taking wrong path in
copy_device_table() function). 


-Vasant

commit 3f6eeada6930056c38f20964120ac402cf0030b9
Author: Vasant Hegde <vasant.he...@amd.com>
Date:   Wed Oct 16 08:49:58 2024 +0000

    iommu/amd: Do not try copy old DTE resume path

    In suspend/resume path, no need to copy old DTE (early_enable_iommus()).
    Just need to reload IOMMU hardware.

    This is the side effect of commit 3ac3e5ee5ed5 ("iommu/amd: Copy old
    trans table from old kernel") which changed early_enable_iommus() but
    missed to fix enable_iommus().

    Resume path continue to work as 'amd_iommu_pre_enabled' is set to false
    and copy_device_table() will fail. It will just re-loaded IOMMU. Hence I
    think we don't need to backport this to stable tree.

    Signed-off-by: Vasant Hegde <vasant.he...@amd.com>
    Link: https://lore.kernel.org/r/20241016084958.99727-1-vasant.he...@amd.com
    Signed-off-by: Joerg Roedel <jroe...@suse.de>

diff --git a/drivers/iommu/amd/init.c b/drivers/iommu/amd/init.c
index 43131c3a2172..3fa70169aace 100644
--- a/drivers/iommu/amd/init.c
+++ b/drivers/iommu/amd/init.c
@@ -2882,11 +2882,6 @@ static void enable_iommus_vapic(void)
 #endif
 }

-static void enable_iommus(void)
-{
-       early_enable_iommus();
-}
-
 static void disable_iommus(void)
 {
        struct amd_iommu *iommu;
@@ -2913,7 +2908,8 @@ static void amd_iommu_resume(void)
                iommu_apply_resume_quirks(iommu);

        /* re-load the hardware */
-       enable_iommus();
+       for_each_iommu(iommu)
+               early_enable_iommu(iommu);

        amd_iommu_enable_interrupts();
 }

-- 
You may reply to this email to add a comment.

You are receiving this mail because:
You are watching the assignee of the bug.

_______________________________________________
acpi-bugzilla mailing list
acpi-bugzilla@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/acpi-bugzilla

Reply via email to