[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] IOMMU/AMD-Vi not working after XSA-36 with 970A-UD3



On Saturday, 4. May 2013 22:54:57 Eric Shelton wrote:
> I have the same motherboard with I/O virtualization running.  You are
> welcome to follow my path if you wish.  I detailed the issues with the
> 970A-UD3 motherboard in response to [1], so it should give you a clear
> idea as to the defect and whether you consider what I am doing meets
> your goals.  My view is that the particular misconfiguration with this
> board, in which the ACPI IVRS table lists an unused northbridge
> IOAPIC, is reasonably ignored as done in the below patch.
> 
> My xen boot line is as follows:
> kernel /boot/xen.gz dom0_mem=2048M loglvl=all guest_loglvl=all
> apic_verbosity=debug e820-verbose=1 iommu=debug,verbose
> 
> I have patched iommu_acpi.c as follows:
> --- orig/xen/drivers/passthrough/amd/iommu_acpi.c 2013-05-04
> 21:18:18.148000000 -0400
> +++
> xen-unstable-3f28d0077788e7f8cd3ee25b023a4225d7e26e87/xen/drivers/passthrou
> gh/amd/iommu_acpi.c 2013-04-23 22:27:28.028000000 -0400
> @@ -679,8 +679,9 @@
>                                      special->handle);
>                  else
>                  {
> -                    printk(XENLOG_ERR "IVHD Error: Conflicting
> IO-APIC %#x entries\n",
> +                    printk(XENLOG_ERR "ignored - IVHD Error:
> Conflicting IO-APIC %#x entries\n",
>                             special->handle);
> +                    break;
>                      if ( amd_iommu_perdev_intremap )
>                          return 0;
>                  }
> @@ -702,12 +703,14 @@
>              }
>              break;
>          }
> + /*
>          if ( apic == nr_ioapics )
>          {
>              printk(XENLOG_ERR "IVHD Error: Invalid IO-APIC %#x\n",
>                     special->handle);
>              return 0;
>          }
> + */
>          break;
>      case ACPI_IVHD_HPET:
>          /* set device id of hpet */
> 
> xl dmesg reports the following:
> (XEN) Xen version 4.3-unstable (root@) (gcc (Gentoo 4.6.3 p1.11,
> pie-0.5.2) 4.6.3) debug=y Tue Apr 23 22:28:54 EDT 2013
> (XEN) Latest ChangeSet: unavailable
> (XEN) Bootloader: GNU GRUB 0.97
> (XEN) Command line: dom0_mem=2048M loglvl=all guest_loglvl=all
> apic_verbosity=debug e820-verbose=1 iommu=debug,verbose
> . . .
> (XEN) ACPI: IOAPIC (id[0x08] address[0xfec00000] gsi_base[0])
> (XEN) IOAPIC[0]: apic_id 8, version 33, address 0xfec00000, GSI 0-23
> . . .
> (XEN) AMD-Vi: IVHD Device Entry: type 0x48 id 0 flags 0xd7
> (XEN) AMD-Vi: IVHD Special: 0000:00:14.0 variety 0x1 handle 0x8
> (XEN) AMD-Vi: IVHD Device Entry: type 0x48 id 0 flags 0xd7
> (XEN) AMD-Vi: IVHD Special: 0000:00:14.0 variety 0x2 handle 0
> (XEN) AMD-Vi: IVHD Device Entry: type 0x48 id 0 flags 0
> (XEN) AMD-Vi: IVHD Special: 0000:00:00.1 variety 0x1 handle 0x8
> (XEN) ignored - IVHD Error: Conflicting IO-APIC 0x8 entries
> (XEN) AMD-Vi: IOMMU 0 Enabled.
> (XEN) AMD-Vi: Enabling per-device vector maps
> (XEN) I/O virtualisation enabled
> (XEN)  - Dom0 mode: Relaxed
> (XEN) Interrupt remapping enabled

Perhaps I missed something but as your approach ignores the improper entry for 
the northbridge it should behave similar to using the patched BIOS (F8c) which 
removes this entry from the IVRS table?

At all I use the patched BIOS w/o any patches for Xen and w/o the 
'iommu=amd-iommu-perdev-intremap' parameter and I/O virtualisation  becomes 
enabled (Xen version 4.2.x ChangeSet 26064:754008dbaa6c):

(XEN) AMD-Vi: IOMMU 0 Enabled.
(XEN) AMD-Vi: Enabling per-device vector maps
(XEN) I/O virtualisation enabled
(XEN)  - Dom0 mode: Relaxed
(XEN) Interrupt remapping enabled

Regards
Hans


_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.