Re: [PATCH 1/4] amd-vi: fix IVMD memory type checks

2024-02-02 Thread oxjo
On Thursday, February 1st, 2024 at 18:01, Roger Pau Monne 
 wrote:

> The current code that parses the IVMD blocks is relaxed with regard to the
> restriction that such unity regions should always fall into memory ranges
> marked as reserved in the memory map.
>
> However the type checks for the IVMD addresses are inverted, and as a result
> IVMD ranges falling into RAM areas are accepted. Note that having such ranges
> in the first place is a firmware bug, as IVMD should always fall into reserved
> ranges.
>
> Fixes: ed6c77ebf0c1 ('AMD/IOMMU: check / convert IVMD ranges for being / to 
> be reserved')
> Signed-off-by: Roger Pau Monné roger@citrix.com
>
> ---
> Cc: o...@proton.me
> ---
> xen/drivers/passthrough/amd/iommu_acpi.c | 11 ---
> 1 file changed, 8 insertions(+), 3 deletions(-)
>
> diff --git a/xen/drivers/passthrough/amd/iommu_acpi.c 
> b/xen/drivers/passthrough/amd/iommu_acpi.c
> index 2e3b83014beb..ca70f4f3ae2c 100644
> --- a/xen/drivers/passthrough/amd/iommu_acpi.c
> +++ b/xen/drivers/passthrough/amd/iommu_acpi.c
> @@ -426,9 +426,14 @@ static int __init parse_ivmd_block(const struct 
> acpi_ivrs_memory ivmd_block)
> return -EIO;
> }
>
> - / Types which won't be handed out are considered good enough. /
> - if ( !(type & (RAM_TYPE_RESERVED | RAM_TYPE_ACPI |
> - RAM_TYPE_UNUSABLE)) )
> + /
> + * Types which aren't RAM are considered good enough.
> + * Note that a page being partially RESERVED, ACPI or UNUSABLE will
> + * force Xen into assuming the whole page as having that type in
> + * practice.
> + */
> + if ( type & (RAM_TYPE_RESERVED | RAM_TYPE_ACPI |
> + RAM_TYPE_UNUSABLE) )
> continue;
>
> AMD_IOMMU_ERROR("IVMD: page at %lx can't be converted\n", addr);

I tested the patch and it resolves the issue.
It eliminates the boot IVMD error message.
AMD-Vi is enabled and pci passthrough works.


Tested-by: oxjo 



Re: Issue iommu unrecognized on amd computer

2024-02-01 Thread oxjo
I put it on the linux command line indeed, here is the log with iommu=debug.

I can install Xen with a debug build or test a fix if needed.
I just need some guides because all I did for know is apt or dnf install Xen.


Le jeudi 1 février 2024 à 11:57, Jan Beulich  a écrit :

> On 01.02.2024 09:16, o...@proton.me wrote:
> 
> > Following our interaction on matrix, I send you the boot log `xl dmesg` 
> > output of my computer, booting with `iommu=debug` options on linux 
> > 6.6.13-200.fc39.
> 
> 
> There's no "iommu=debug" anywhere in sight:
> 
> (XEN) Command line: placeholder no-real-mode edd=off
> 
> Did you mistakenly put it on the Linux command line?
> 
> Nevertheless there are relevant messages already without the extra
> verbosity (and without you using a debug build of Xen, which would
> be preferable):
> 
> (XEN) AMD-Vi: Warning: IVMD: [c9f1c000,c9f42000) is not (entirely) in 
> reserved memory
> (XEN) AMD-Vi: Error: IVMD: page at c9f1c000 can't be converted
> (XEN) AMD-Vi: Error initialization
> 
> Quoting the respective entry from the memory map:
> 
> (XEN) [c8f58000, c9f57fff] (ACPI NVS)
> 
> Both Roger and I look to agree that this condition we have
> 
> if ( !(type & (RAM_TYPE_RESERVED | RAM_TYPE_ACPI |
> RAM_TYPE_UNUSABLE)) )
> 
> is inverted in some way. We merely need to agree in which way it
> wants adjusting.
> 
> Jan Xen 4.18.0
(XEN) Xen version 4.18.0 (mockbuild@) (gcc (GCC) 13.2.1 20231205 (Red Hat 
13.2.1-6)) debug=n Wed Dec 13 17:50:42 UTC 2023
(XEN) Latest ChangeSet: 
(XEN) build-id: ea5d1960a8d06f31b000355f4662169fe12d09a6
(XEN) Bootloader: GRUB 2.06
(XEN) Command line: placeholder no-real-mode edd=off iommu=debug
(XEN) Xen image load base address: 0xc1a0
(XEN) Video information:
(XEN)  VGA is graphics mode 1920x1080, 32 bpp
(XEN)  VBE/DDC methods: none; EDID transfer time: 0 seconds
(XEN) Disc information:
(XEN)  Found 0 MBR signatures
(XEN)  Found 1 EDD information structures
(XEN) CPU Vendor: AMD, Family 25 (0x19), Model 80 (0x50), Stepping 0 (raw 
00a50f00)
(XEN) Enabling Supervisor Shadow Stacks
(XEN)   - Disabling PV32 due to CET
(XEN) EFI RAM map:
(XEN)  [, 0009efff] (usable)
(XEN)  [0009f000, 0009] (reserved)
(XEN)  [0010, 09bf] (usable)
(XEN)  [09c0, 09db0fff] (reserved)
(XEN)  [09db1000, 09ef] (usable)
(XEN)  [09f0, 09f0efff] (ACPI NVS)
(XEN)  [09f0f000, c2d57fff] (usable)
(XEN)  [c2d58000, c8f57fff] (reserved)
(XEN)  [c8f58000, c9f57fff] (ACPI NVS)
(XEN)  [c9f58000, c9fd7fff] (ACPI data)
(XEN)  [c9fd8000, c9fd9fff] (usable)
(XEN)  [c9fda000, c9ff] (reserved)
(XEN)  [ca00, cbff] (usable)
(XEN)  [cc00, cdff] (reserved)
(XEN)  [cf00, cfff] (reserved)
(XEN)  [f800, fbff] (reserved)
(XEN)  [fdc0, fdcf] (reserved)
(XEN)  [fed8, fed80fff] (reserved)
(XEN)  [0001, 000fee2f] (usable)
(XEN)  [000fee30, 00102fff] (reserved)
(XEN) ACPI: RSDP C9FD7014, 0024 (r2 LENOVO)
(XEN) ACPI: XSDT C9FD5188, 0104 (r1 LENOVO TP-R25   1130 PTEC2)
(XEN) ACPI: FACP C3964000, 0114 (r6 LENOVO TP-R25   1130 PTEC2)
(XEN) ACPI: DSDT C394C000, 12791 (r1 LENOVO TP-R25   1130 INTL 20180313)
(XEN) ACPI: FACS C9DF8000, 0040
(XEN) ACPI: SSDT C5E74000, 00A2 (r1 LENOVO PID0Ssdt1 INTL 20180313)
(XEN) ACPI: SSDT C5E73000, 0752 (r1 LENOVO UsbCTabl1 INTL 20180313)
(XEN) ACPI: SSDT C5E66000, 7345 (r2 LENOVO TP-R25  2 MSFT  202)
(XEN) ACPI: MSDM C5B7B000, 0055 (r3 LENOVO TP-R25   1130 PTEC2)
(XEN) ACPI: BATB C5B66000, 004A (r2 LENOVO TP-R25   1130 PTEC2)
(XEN) ACPI: HPET C3963000, 0038 (r1 LENOVO TP-R25   1130 PTEC2)
(XEN) ACPI: APIC C3962000, 0138 (r2 LENOVO TP-R25   1130 PTEC2)
(XEN) ACPI: MCFG C3961000, 003C (r1 LENOVO TP-R25   1130 PTEC2)
(XEN) ACPI: SBST C396, 0030 (r1 LENOVO TP-R25   1130 PTEC2)
(XEN) ACPI: WSMT C395F000, 0028 (r1 LENOVO TP-R25   1130 PTEC2)
(XEN) ACPI: VFCT C393E000, D884 (r1 LENOVO TP-R25   1130 PTEC2)
(XEN) ACPI: SSDT C3938000, 5354 (r2 LENOVO TP-R25  1 AMD 1)
(XEN) ACPI: CRAT C3937000, 0EC0 (r1 LENOVO TP-R25   1130 PTEC2)
(XEN) ACPI: CDIT C3936000, 0029 (r1 LENOVO TP-R25   1130 PTEC2)
(XEN) ACPI: FPDT C5B67000, 0034 (r1 LENOVO TP-R25   1130 PTEC2)
(XEN) ACPI: SSDT C3935000, 0149 (r1 LENOVO TP-R25  1 INTL 20180313)
(XEN) ACPI: SSDT C3933000, 14C3 (r1 LENOVO TP-R25  1 INTL 20180313)
(XEN) ACPI: SSDT C3931000, 15A8 (r1 LENOVO TP-R25  1 INTL 20180313)
(XEN) ACPI: SSDT C392D000, 3B0E (r1 LENOVO TP-R25  1 INTL 20180313)
(XEN) ACPI: BGRT C392C000, 

Issue iommu unrecognized on amd computer

2024-02-01 Thread oxjo
Hi,

Following our interaction on matrix, I send you the boot log `xl dmesg` output 
of my computer, booting with `iommu=debug` options on linux 6.6.13-200.fc39.

My issue is everything works on qubes on my thinkpad L15 gen 4 with AMD Ryzen 7 
Pro 7730U, except iommu/amd-vi.
I can boot and use a vm but no pci passthrough.

I tried qubes 4.2, bare xen 17.2, xen 18 and I always have the same messages 
you can see in the logs with IVMD.

I'd be grateful if you can tell me within a week if it's an issue you think can 
be dealt with or no so I can decide what I do with this computer.

Best regards,
Ox Xen 4.18.0
(XEN) Xen version 4.18.0 (mockbuild@) (gcc (GCC) 13.2.1 20231205 (Red Hat 
13.2.1-6)) debug=n Wed Dec 13 17:50:42 UTC 2023
(XEN) Latest ChangeSet: 
(XEN) build-id: ea5d1960a8d06f31b000355f4662169fe12d09a6
(XEN) Bootloader: GRUB 2.06
(XEN) Command line: placeholder no-real-mode edd=off
(XEN) Xen image load base address: 0xc1a0
(XEN) Video information:
(XEN)  VGA is graphics mode 1920x1080, 32 bpp
(XEN)  VBE/DDC methods: none; EDID transfer time: 0 seconds
(XEN) Disc information:
(XEN)  Found 0 MBR signatures
(XEN)  Found 1 EDD information structures
(XEN) CPU Vendor: AMD, Family 25 (0x19), Model 80 (0x50), Stepping 0 (raw 
00a50f00)
(XEN) Enabling Supervisor Shadow Stacks
(XEN)   - Disabling PV32 due to CET
(XEN) EFI RAM map:
(XEN)  [, 0009efff] (usable)
(XEN)  [0009f000, 0009] (reserved)
(XEN)  [0010, 09bf] (usable)
(XEN)  [09c0, 09db0fff] (reserved)
(XEN)  [09db1000, 09ef] (usable)
(XEN)  [09f0, 09f0efff] (ACPI NVS)
(XEN)  [09f0f000, c2d57fff] (usable)
(XEN)  [c2d58000, c8f57fff] (reserved)
(XEN)  [c8f58000, c9f57fff] (ACPI NVS)
(XEN)  [c9f58000, c9fd7fff] (ACPI data)
(XEN)  [c9fd8000, c9fd9fff] (usable)
(XEN)  [c9fda000, c9ff] (reserved)
(XEN)  [ca00, cbff] (usable)
(XEN)  [cc00, cdff] (reserved)
(XEN)  [cf00, cfff] (reserved)
(XEN)  [f800, fbff] (reserved)
(XEN)  [fdc0, fdcf] (reserved)
(XEN)  [fed8, fed80fff] (reserved)
(XEN)  [0001, 000fee2f] (usable)
(XEN)  [000fee30, 00102fff] (reserved)
(XEN) ACPI: RSDP C9FD7014, 0024 (r2 LENOVO)
(XEN) ACPI: XSDT C9FD5188, 0104 (r1 LENOVO TP-R25   1130 PTEC2)
(XEN) ACPI: FACP C3964000, 0114 (r6 LENOVO TP-R25   1130 PTEC2)
(XEN) ACPI: DSDT C394C000, 12791 (r1 LENOVO TP-R25   1130 INTL 20180313)
(XEN) ACPI: FACS C9DF8000, 0040
(XEN) ACPI: SSDT C5E74000, 00A2 (r1 LENOVO PID0Ssdt1 INTL 20180313)
(XEN) ACPI: SSDT C5E73000, 0752 (r1 LENOVO UsbCTabl1 INTL 20180313)
(XEN) ACPI: SSDT C5E66000, 7345 (r2 LENOVO TP-R25  2 MSFT  202)
(XEN) ACPI: MSDM C5B7B000, 0055 (r3 LENOVO TP-R25   1130 PTEC2)
(XEN) ACPI: BATB C5B66000, 004A (r2 LENOVO TP-R25   1130 PTEC2)
(XEN) ACPI: HPET C3963000, 0038 (r1 LENOVO TP-R25   1130 PTEC2)
(XEN) ACPI: APIC C3962000, 0138 (r2 LENOVO TP-R25   1130 PTEC2)
(XEN) ACPI: MCFG C3961000, 003C (r1 LENOVO TP-R25   1130 PTEC2)
(XEN) ACPI: SBST C396, 0030 (r1 LENOVO TP-R25   1130 PTEC2)
(XEN) ACPI: WSMT C395F000, 0028 (r1 LENOVO TP-R25   1130 PTEC2)
(XEN) ACPI: VFCT C393E000, D884 (r1 LENOVO TP-R25   1130 PTEC2)
(XEN) ACPI: SSDT C3938000, 5354 (r2 LENOVO TP-R25  1 AMD 1)
(XEN) ACPI: CRAT C3937000, 0EC0 (r1 LENOVO TP-R25   1130 PTEC2)
(XEN) ACPI: CDIT C3936000, 0029 (r1 LENOVO TP-R25   1130 PTEC2)
(XEN) ACPI: FPDT C5B67000, 0034 (r1 LENOVO TP-R25   1130 PTEC2)
(XEN) ACPI: SSDT C3935000, 0149 (r1 LENOVO TP-R25  1 INTL 20180313)
(XEN) ACPI: SSDT C3933000, 14C3 (r1 LENOVO TP-R25  1 INTL 20180313)
(XEN) ACPI: SSDT C3931000, 15A8 (r1 LENOVO TP-R25  1 INTL 20180313)
(XEN) ACPI: SSDT C392D000, 3B0E (r1 LENOVO TP-R25  1 INTL 20180313)
(XEN) ACPI: BGRT C392C000, 0038 (r1 LENOVO TP-R25   1130 PTEC2)
(XEN) ACPI: SSDT C392B000, 024D (r1 LENOVO TP-R25  1 INTL 20180313)
(XEN) ACPI: SSDT C3929000, 14C4 (r1 LENOVO TP-R25  1 INTL 20180313)
(XEN) ACPI: SSDT C3928000, 0AB7 (r1 LENOVO TP-R25  1 INTL 20180313)
(XEN) ACPI: UEFI C9DF7000, 00C6 (r1 LENOVO TP-R25   1130 PTEC2)
(XEN) ACPI: IVRS C3927000, 01E4 (r2 LENOVO TP-R25   1130 PTEC2)
(XEN) ACPI: SSDT C5E72000, 0090 (r1 LENOVO TP-R25  1 INTL 20180313)
(XEN) ACPI: SSDT C5E71000, 098D (r1 LENOVO TP-R25  1 INTL 20180313)
(XEN) System RAM: 64302MB (65845476kB)
(XEN) No NUMA configuration found
(XEN) Faking a node at -000fee30
(XEN) Domain heap initialised
(XEN) vesafb: framebuffer at