All of lore.kernel.org
 help / color / mirror / Atom feed
* XSA-36 / howto fix broken IVRS ACPI table
@ 2013-03-12 19:04 Hans Mueller
  2013-03-12 19:41 ` Boris Ostrovsky
  2013-04-23 17:11 ` Hans Mueller
  0 siblings, 2 replies; 8+ messages in thread
From: Hans Mueller @ 2013-03-12 19:04 UTC (permalink / raw)
  To: xen-devel

[-- Attachment #1: Type: text/plain, Size: 3507 bytes --]

Hello,

since applying the patches related to XSA-36 Xen recognizes a broken IVRS ACPI 
table and disables I/O virtualisation.

I contacted the manufacturer of the mainboard/BIOS and they want to help me by 
providing a patched BIOS - so far so good.

However, they need details about what to fix, which I don't know either.

Could you pls. give me some hints which I can forward to the manufacturer 
support?

Thanks a lot & best regards
Hans



PS: Hardware is a Gigabyte GA-970A-UD3(rev. 1.0), BIOS F7 (tested F8a, too).

PPS: I know about 'no-amd-iommu-perdev-intremap' - this does not really help 
as e.g. heavy i/o on a usb device in one domain causes other domains to 
disable the related irq etc. ...



>From the support mail:
"Our hardware team replied:

Please inform us what settings or specific detail he needs to modify on IVRS 
ACPI Table.
They will try to patch it in a special BIOS and ask customer to check. 
Or maybe you can ask Xen for a proper IVRS ACPI Table form/example and send to 
us.
We can study on this and provide a special BIOS."



>From 'xl dmesg':
(XEN) AMD-Vi: Found MSI capability block at 0x54
(XEN) AMD-Vi: ACPI Table:
(XEN) AMD-Vi:  Signature IVRS
(XEN) AMD-Vi:  Length 0xd0
(XEN) AMD-Vi:  Revision 0x1
(XEN) AMD-Vi:  CheckSum 0x9b
(XEN) AMD-Vi:  OEM_Id AMD  
(XEN) AMD-Vi:  OEM_Table_Id RD890S
(XEN) AMD-Vi:  OEM_Revision 0x202031
(XEN) AMD-Vi:  Creator_Id AMD 
(XEN) AMD-Vi:  Creator_Revision 0x0
(XEN) AMD-Vi: IVRS Block: type 0x10 flags 0x3e len 0xa0 id 0x2
(XEN) AMD-Vi: IVHD Device Entry: type 0x3 id 0x0 flags 0x0
(XEN) AMD-Vi:  Dev_Id Range: 0x0 -> 0x2
(XEN) AMD-Vi: IVHD Device Entry: type 0x2 id 0x10 flags 0x0
(XEN) AMD-Vi: IVHD Device Entry: type 0x3 id 0x100 flags 0x0
(XEN) AMD-Vi:  Dev_Id Range: 0x100 -> 0x101
(XEN) AMD-Vi: IVHD Device Entry: type 0x2 id 0x38 flags 0x0
(XEN) AMD-Vi: IVHD Device Entry: type 0x2 id 0x200 flags 0x0
(XEN) AMD-Vi: IVHD Device Entry: type 0x2 id 0x48 flags 0x0
(XEN) AMD-Vi: IVHD Device Entry: type 0x2 id 0x300 flags 0x0
(XEN) AMD-Vi: IVHD Device Entry: type 0x2 id 0x88 flags 0x0
(XEN) AMD-Vi: IVHD Device Entry: type 0x3 id 0x90 flags 0x0
(XEN) AMD-Vi:  Dev_Id Range: 0x90 -> 0x92
(XEN) AMD-Vi: IVHD Device Entry: type 0x3 id 0x98 flags 0x0
(XEN) AMD-Vi:  Dev_Id Range: 0x98 -> 0x9a
(XEN) AMD-Vi: IVHD Device Entry: type 0x2 id 0xa0 flags 0xd7
(XEN) AMD-Vi: IVHD Device Entry: type 0x2 id 0xa3 flags 0x0
(XEN) AMD-Vi: IVHD Device Entry: type 0x2 id 0xa4 flags 0x0
(XEN) AMD-Vi: IVHD Device Entry: type 0x0 id 0x0 flags 0x0
(XEN) AMD-Vi: IVHD Device Entry: type 0x43 id 0x400 flags 0x0
(XEN) AMD-Vi:  Dev_Id Range: 0x400 -> 0x4ff alias 0xa4
(XEN) AMD-Vi: IVHD Device Entry: type 0x2 id 0xa5 flags 0x0
(XEN) AMD-Vi: IVHD Device Entry: type 0x2 id 0xa8 flags 0x0
(XEN) AMD-Vi: IVHD Device Entry: type 0x3 id 0x500 flags 0x0
(XEN) AMD-Vi:  Dev_Id Range: 0x500 -> 0x5ff
(XEN) AMD-Vi: IVHD Device Entry: type 0x3 id 0xb0 flags 0x0
(XEN) AMD-Vi:  Dev_Id Range: 0xb0 -> 0xb2
(XEN) AMD-Vi: IVHD Device Entry: type 0x0 id 0x0 flags 0x0
(XEN) AMD-Vi: IVHD Device Entry: type 0x48 id 0x0 flags 0xd7
(XEN) AMD-Vi: IVHD Special: 0000:00:14.0 variety 0x1 handle 0x8
(XEN) AMD-Vi: IVHD Device Entry: type 0x48 id 0x0 flags 0xd7
(XEN) AMD-Vi: IVHD Special: 0000:00:14.0 variety 0x2 handle 0x0
(XEN) AMD-Vi: IVHD Device Entry: type 0x48 id 0x0 flags 0x0
(XEN) AMD-Vi: IVHD Special: 0000:00:00.1 variety 0x1 handle 0x8
(XEN) IVHD Error: Conflicting IO-APIC 0x8 entries
(XEN) AMD-Vi: Error initialization
(XEN) I/O virtualisation disabled

[-- Attachment #2: xl.dmesg --]
[-- Type: text/plain, Size: 23039 bytes --]

 __  __            _  _    ____    ____                    
 \ \/ /___ _ __   | || |  |___ \  |___ \    _ __  _ __ ___ 
  \  // _ \ '_ \  | || |_   __) |   __) |__| '_ \| '__/ _ \
  /  \  __/ | | | |__   _| / __/ _ / __/|__| |_) | | |  __/
 /_/\_\___|_| |_|    |_|(_)_____(_)_____|  | .__/|_|  \___|
                                           |_|             
(XEN) Xen version 4.2.2-pre (@sec.chaos) (gcc (Gentoo Hardened 4.6.3 p1.11, pie-0.5.2) 4.6.3) Sun Mar  3 16:35:02 CET 2013
(XEN) Latest ChangeSet: Wed Feb 13 17:00:15 2013 +0000 26013:e28ffa5410df
(XEN) Bootloader: GNU GRUB 0.97
(XEN) Command line: ucode=-1 dom0_mem=1024M,max:1024M com1=115200,8n1,0x3f8,4 console=com1 cpufreq=xen:ondemand loglvl=all guest_loglvl=all apic_verbosity=debug e820-verbose=1 iommu=debug,verbose
(XEN) Video information:
(XEN)  VGA is text mode 80x25, font 8x16
(XEN)  VBE/DDC methods: V2; EDID transfer time: 1 seconds
(XEN)  EDID info not retrieved because of reasons unknown
(XEN) Disc information:
(XEN)  Found 7 MBR signatures
(XEN)  Found 6 EDD information structures
(XEN) Initial Xen-e820 RAM map:
(XEN)  0000000000000000 - 0000000000094000 (usable)
(XEN)  00000000000f0000 - 0000000000100000 (reserved)
(XEN)  00000000fec00000 - 0000000100000000 (reserved)
(XEN)  00000000e0000000 - 00000000f0000000 (reserved)
(XEN)  000000000009f800 - 00000000000a0000 (reserved)
(XEN)  00000000bfe00000 - 00000000bff00000 (reserved)
(XEN)  0000000000100000 - 00000000bfda0000 (usable)
(XEN)  00000000bfdd1000 - 00000000bfe00000 (ACPI data)
(XEN)  00000000bfda0000 - 00000000bfdd1000 (ACPI NVS)
(XEN)  0000000100000000 - 0000000440000000 (usable)
(XEN) Xen-e820 RAM map:
(XEN)  0000000000000000 - 0000000000094000 (usable)
(XEN)  000000000009f800 - 00000000000a0000 (reserved)
(XEN)  00000000000f0000 - 0000000000100000 (reserved)
(XEN)  0000000000100000 - 00000000bfda0000 (usable)
(XEN)  00000000bfda0000 - 00000000bfdd1000 (ACPI NVS)
(XEN)  00000000bfdd1000 - 00000000bfe00000 (ACPI data)
(XEN)  00000000bfe00000 - 00000000bff00000 (reserved)
(XEN)  00000000e0000000 - 00000000f0000000 (reserved)
(XEN)  00000000fec00000 - 0000000100000000 (reserved)
(XEN)  0000000100000000 - 0000000440000000 (usable)
(XEN) ACPI: RSDP 000F6B80, 0014 (r0 GBT   )
(XEN) ACPI: RSDT BFDD1000, 004C (r1 GBT    GBTUACPI 42302E31 GBTU  1010101)
(XEN) ACPI: FACP BFDD1080, 0074 (r1 GBT    GBTUACPI 42302E31 GBTU  1010101)
(XEN) ACPI: DSDT BFDD1100, 792A (r1 GBT    GBTUACPI     1000 MSFT  3000000)
(XEN) ACPI: FACS BFDA0000, 0040
(XEN) ACPI: SSDT BFDD8B00, 088C (r1 PTLTD  POWERNOW        1  LTP        1)
(XEN) ACPI: MSDM BFDD93C0, 0055 (r3 GBT    GBTUACPI 42302E31 GBTU  1010101)
(XEN) ACPI: HPET BFDD9440, 0038 (r1 GBT    GBTUACPI 42302E31 GBTU       98)
(XEN) ACPI: MCFG BFDD9480, 003C (r1 GBT    GBTUACPI 42302E31 GBTU  1010101)
(XEN) ACPI: MATS BFDD9500, 0034 (r1 GBT                    0             0)
(XEN) ACPI: TAMG BFDD9570, 0202 (r1 GBT    GBT   B0 5455312E BG\x01\x01 53450101)
(XEN) ACPI: APIC BFDD8A40, 00BC (r1 GBT    GBTUACPI 42302E31 GBTU  1010101)
(XEN) ACPI: MATS BFDD9780, 61FD (r1        MATS RCM 80000001 INTL 20061109)
(XEN) ACPI: IVRS BFDDF9F0, 00D0 (r1  AMD     RD890S   202031 AMD         0)
(XEN) System RAM: 16381MB (16774352kB)
(XEN) No NUMA configuration found
(XEN) Faking a node at 0000000000000000-0000000440000000
(XEN) Domain heap initialised
(XEN) found SMP MP-table at 000f4c60
(XEN) DMI 2.4 present.
(XEN) APIC boot state is 'xapic'
(XEN) Using APIC driver default
(XEN) ACPI: PM-Timer IO Port: 0x808
(XEN) ACPI: ACPI SLEEP INFO: pm1x_cnt[804,0], pm1x_evt[800,0]
(XEN) ACPI:                  wakeup_vec[bfda000c], vec_size[20]
(XEN) ACPI: Local APIC address 0xfee00000
(XEN) ACPI: LAPIC (acpi_id[0x00] lapic_id[0x00] enabled)
(XEN) Processor #0 0:5 APIC version 16
(XEN) ACPI: LAPIC (acpi_id[0x01] lapic_id[0x01] enabled)
(XEN) Processor #1 0:5 APIC version 16
(XEN) ACPI: LAPIC (acpi_id[0x02] lapic_id[0x02] enabled)
(XEN) Processor #2 0:5 APIC version 16
(XEN) ACPI: LAPIC (acpi_id[0x03] lapic_id[0x03] enabled)
(XEN) Processor #3 0:5 APIC version 16
(XEN) ACPI: LAPIC (acpi_id[0x04] lapic_id[0x04] disabled)
(XEN) ACPI: LAPIC (acpi_id[0x05] lapic_id[0x05] disabled)
(XEN) ACPI: LAPIC (acpi_id[0x06] lapic_id[0x06] disabled)
(XEN) ACPI: LAPIC (acpi_id[0x07] lapic_id[0x07] disabled)
(XEN) ACPI: LAPIC_NMI (acpi_id[0x00] dfl dfl lint[0x1])
(XEN) ACPI: LAPIC_NMI (acpi_id[0x01] dfl dfl lint[0x1])
(XEN) ACPI: LAPIC_NMI (acpi_id[0x02] dfl dfl lint[0x1])
(XEN) ACPI: LAPIC_NMI (acpi_id[0x03] dfl dfl lint[0x1])
(XEN) ACPI: LAPIC_NMI (acpi_id[0x04] dfl dfl lint[0x1])
(XEN) ACPI: LAPIC_NMI (acpi_id[0x05] dfl dfl lint[0x1])
(XEN) ACPI: LAPIC_NMI (acpi_id[0x06] dfl dfl lint[0x1])
(XEN) ACPI: LAPIC_NMI (acpi_id[0x07] dfl dfl lint[0x1])
(XEN) ACPI: IOAPIC (id[0x08] address[0xfec00000] gsi_base[0])
(XEN) IOAPIC[0]: apic_id 8, version 33, address 0xfec00000, GSI 0-23
(XEN) ACPI: INT_SRC_OVR (bus 0 bus_irq 0 global_irq 2 dfl dfl)
(XEN) ACPI: INT_SRC_OVR (bus 0 bus_irq 9 global_irq 9 low level)
(XEN) ACPI: IRQ0 used by override.
(XEN) ACPI: IRQ2 used by override.
(XEN) ACPI: IRQ9 used by override.
(XEN) Enabling APIC mode:  Flat.  Using 1 I/O APICs
(XEN) ACPI: HPET id: 0x10b9a201 base: 0xfed00000
(XEN) Table is not found!
(XEN) Using ACPI (MADT) for SMP configuration information
(XEN) SMP: Allowing 8 CPUs (4 hotplug CPUs)
(XEN) mapped APIC to ffff82c3ffdfe000 (fee00000)
(XEN) mapped IOAPIC to ffff82c3ffdfd000 (fec00000)
(XEN) IRQ limits: 24 GSI, 760 MSI/MSI-X
(XEN) Using scheduler: SMP Credit Scheduler (credit)
(XEN) Detected 3020.338 MHz processor.
(XEN) Initing memory sharing.
(XEN) AMD Fam10h machine check reporting enabled
(XEN) PCI: MCFG configuration 0: base e0000000 segment 0000 buses 00 - ff
(XEN) PCI: MCFG area at e0000000 reserved in E820
(XEN) PCI: Using MCFG for segment 0000 bus 00-ff
(XEN) AMD-Vi: Found MSI capability block at 0x54
(XEN) AMD-Vi: ACPI Table:
(XEN) AMD-Vi:  Signature IVRS
(XEN) AMD-Vi:  Length 0xd0
(XEN) AMD-Vi:  Revision 0x1
(XEN) AMD-Vi:  CheckSum 0x9b
(XEN) AMD-Vi:  OEM_Id AMD  
(XEN) AMD-Vi:  OEM_Table_Id RD890S
(XEN) AMD-Vi:  OEM_Revision 0x202031
(XEN) AMD-Vi:  Creator_Id AMD 
(XEN) AMD-Vi:  Creator_Revision 0x0
(XEN) AMD-Vi: IVRS Block: type 0x10 flags 0x3e len 0xa0 id 0x2
(XEN) AMD-Vi: IVHD Device Entry: type 0x3 id 0x0 flags 0x0
(XEN) AMD-Vi:  Dev_Id Range: 0x0 -> 0x2
(XEN) AMD-Vi: IVHD Device Entry: type 0x2 id 0x10 flags 0x0
(XEN) AMD-Vi: IVHD Device Entry: type 0x3 id 0x100 flags 0x0
(XEN) AMD-Vi:  Dev_Id Range: 0x100 -> 0x101
(XEN) AMD-Vi: IVHD Device Entry: type 0x2 id 0x38 flags 0x0
(XEN) AMD-Vi: IVHD Device Entry: type 0x2 id 0x200 flags 0x0
(XEN) AMD-Vi: IVHD Device Entry: type 0x2 id 0x48 flags 0x0
(XEN) AMD-Vi: IVHD Device Entry: type 0x2 id 0x300 flags 0x0
(XEN) AMD-Vi: IVHD Device Entry: type 0x2 id 0x88 flags 0x0
(XEN) AMD-Vi: IVHD Device Entry: type 0x3 id 0x90 flags 0x0
(XEN) AMD-Vi:  Dev_Id Range: 0x90 -> 0x92
(XEN) AMD-Vi: IVHD Device Entry: type 0x3 id 0x98 flags 0x0
(XEN) AMD-Vi:  Dev_Id Range: 0x98 -> 0x9a
(XEN) AMD-Vi: IVHD Device Entry: type 0x2 id 0xa0 flags 0xd7
(XEN) AMD-Vi: IVHD Device Entry: type 0x2 id 0xa3 flags 0x0
(XEN) AMD-Vi: IVHD Device Entry: type 0x2 id 0xa4 flags 0x0
(XEN) AMD-Vi: IVHD Device Entry: type 0x0 id 0x0 flags 0x0
(XEN) AMD-Vi: IVHD Device Entry: type 0x43 id 0x400 flags 0x0
(XEN) AMD-Vi:  Dev_Id Range: 0x400 -> 0x4ff alias 0xa4
(XEN) AMD-Vi: IVHD Device Entry: type 0x2 id 0xa5 flags 0x0
(XEN) AMD-Vi: IVHD Device Entry: type 0x2 id 0xa8 flags 0x0
(XEN) AMD-Vi: IVHD Device Entry: type 0x3 id 0x500 flags 0x0
(XEN) AMD-Vi:  Dev_Id Range: 0x500 -> 0x5ff
(XEN) AMD-Vi: IVHD Device Entry: type 0x3 id 0xb0 flags 0x0
(XEN) AMD-Vi:  Dev_Id Range: 0xb0 -> 0xb2
(XEN) AMD-Vi: IVHD Device Entry: type 0x0 id 0x0 flags 0x0
(XEN) AMD-Vi: IVHD Device Entry: type 0x48 id 0x0 flags 0xd7
(XEN) AMD-Vi: IVHD Special: 0000:00:14.0 variety 0x1 handle 0x8
(XEN) AMD-Vi: IVHD Device Entry: type 0x48 id 0x0 flags 0xd7
(XEN) AMD-Vi: IVHD Special: 0000:00:14.0 variety 0x2 handle 0x0
(XEN) AMD-Vi: IVHD Device Entry: type 0x48 id 0x0 flags 0x0
(XEN) AMD-Vi: IVHD Special: 0000:00:00.1 variety 0x1 handle 0x8
(XEN) IVHD Error: Conflicting IO-APIC 0x8 entries
(XEN) AMD-Vi: Error initialization
(XEN) I/O virtualisation disabled
(XEN) Getting VERSION: 80050010
(XEN) Getting VERSION: 80050010
(XEN) Getting ID: 0
(XEN) Getting LVT0: 700
(XEN) Getting LVT1: 400
(XEN) enabled ExtINT on CPU#0
(XEN) ENABLING IO-APIC IRQs
(XEN)  -> Using new ACK method
(XEN) init IO_APIC IRQs
(XEN)  IO-APIC (apicid-pin) 8-0, 8-16, 8-17, 8-18, 8-19, 8-20, 8-21, 8-22, 8-23 not connected.
(XEN) ..TIMER: vector=0xF0 apic1=0 pin1=2 apic2=-1 pin2=-1
(XEN) number of MP IRQ sources: 15.
(XEN) number of IO-APIC #8 registers: 24.
(XEN) testing the IO APIC.......................
(XEN) IO APIC #8......
(XEN) .... register #00: 00000000
(XEN) .......    : physical APIC id: 00
(XEN) .......    : Delivery Type: 0
(XEN) .......    : LTS          : 0
(XEN) .... register #01: 00178021
(XEN) .......     : max redirection entries: 0017
(XEN) .......     : PRQ implemented: 1
(XEN) .......     : IO APIC version: 0021
(XEN) .... register #02: 00000000
(XEN) .......     : arbitration: 00
(XEN) .... register #03: 01000000
(XEN) .......     : Boot DT    : 0
(XEN) .... IRQ redirection table:
(XEN)  NR Log Phy Mask Trig IRR Pol Stat Dest Deli Vect:   
(XEN)  00 000 00  1    0    0   0   0    0    0    00
(XEN)  01 001 01  0    0    0   0   0    1    1    28
(XEN)  02 001 01  0    0    0   0   0    1    1    F0
(XEN)  03 001 01  0    0    0   0   0    1    1    30
(XEN)  04 001 01  0    0    0   0   0    1    1    F1
(XEN)  05 001 01  0    0    0   0   0    1    1    38
(XEN)  06 001 01  0    0    0   0   0    1    1    40
(XEN)  07 001 01  0    0    0   0   0    1    1    48
(XEN)  08 001 01  0    0    0   0   0    1    1    50
(XEN)  09 001 01  1    1    0   1   0    1    1    58
(XEN)  0a 001 01  0    0    0   0   0    1    1    60
(XEN)  0b 001 01  0    0    0   0   0    1    1    68
(XEN)  0c 001 01  0    0    0   0   0    1    1    70
(XEN)  0d 001 01  0    0    0   0   0    1    1    78
(XEN)  0e 001 01  0    0    0   0   0    1    1    88
(XEN)  0f 001 01  0    0    0   0   0    1    1    90
(XEN)  10 000 00  1    0    0   0   0    0    0    00
(XEN)  11 000 00  1    0    0   0   0    0    0    00
(XEN)  12 000 00  1    0    0   0   0    0    0    00
(XEN)  13 000 00  1    0    0   0   0    0    0    00
(XEN)  14 000 00  1    0    0   0   0    0    0    00
(XEN)  15 000 00  1    0    0   0   0    0    0    00
(XEN)  16 000 00  1    0    0   0   0    0    0    00
(XEN)  17 000 00  1    0    0   0   0    0    0    00
(XEN) Using vector-based indexing
(XEN) IRQ to pin mappings:
(XEN) IRQ240 -> 0:2
(XEN) IRQ40 -> 0:1
(XEN) IRQ48 -> 0:3
(XEN) IRQ241 -> 0:4
(XEN) IRQ56 -> 0:5
(XEN) IRQ64 -> 0:6
(XEN) IRQ72 -> 0:7
(XEN) IRQ80 -> 0:8
(XEN) IRQ88 -> 0:9
(XEN) IRQ96 -> 0:10
(XEN) IRQ104 -> 0:11
(XEN) IRQ112 -> 0:12
(XEN) IRQ120 -> 0:13
(XEN) IRQ136 -> 0:14
(XEN) IRQ144 -> 0:15
(XEN) .................................... done.
(XEN) Using local APIC timer interrupts.
(XEN) calibrating APIC timer ...
(XEN) ..... CPU clock speed is 3020.3063 MHz.
(XEN) ..... host bus clock speed is 201.3536 MHz.
(XEN) ..... bus_scale = 0x0000CE33
(XEN) Platform timer is 14.318MHz HPET
(XEN) Allocated console ring of 32 KiB.
(XEN) microcode: collect_cpu_info: patch_id=0x10000c8
(XEN) microcode: size 12404, block size 960, offset 284
(XEN) microcode: CPU0 patch does not match (patch is 1022, cpu base id is 1043) 
(XEN) microcode: size 12404, block size 960, offset 1252
(XEN) microcode: CPU0 patch does not match (patch is 1020, cpu base id is 1043) 
(XEN) microcode: size 12404, block size 960, offset 2220
(XEN) microcode: CPU0 patch does not match (patch is 1062, cpu base id is 1043) 
(XEN) microcode: size 12404, block size 960, offset 3188
(XEN) microcode: size 12404, block size 960, offset 4156
(XEN) microcode: CPU0 patch does not match (patch is 1081, cpu base id is 1043) 
(XEN) microcode: size 12404, block size 960, offset 5124
(XEN) microcode: CPU0 patch does not match (patch is 1080, cpu base id is 1043) 
(XEN) microcode: size 12404, block size 960, offset 6092
(XEN) microcode: CPU0 patch does not match (patch is 1041, cpu base id is 1043) 
(XEN) microcode: size 12404, block size 960, offset 7060
(XEN) microcode: CPU0 patch does not match (patch is 10a0, cpu base id is 1043) 
(XEN) microcode: size 12404, block size 960, offset 8028
(XEN) microcode: CPU0 patch does not match (patch is 3010, cpu base id is 1043) 
(XEN) microcode: size 12404, block size 1824, offset 8996
(XEN) microcode: CPU0 patch does not match (patch is 5010, cpu base id is 1043) 
(XEN) microcode: size 12404, block size 1568, offset 10828
(XEN) microcode: CPU0 patch does not match (patch is 5020, cpu base id is 1043) 
(XEN) HVM: ASIDs enabled.
(XEN) SVM: Supported advanced features:
(XEN)  - Nested Page Tables (NPT)
(XEN)  - Last Branch Record (LBR) Virtualisation
(XEN)  - Next-RIP Saved on #VMEXIT
(XEN) HVM: SVM enabled
(XEN) HVM: Hardware Assisted Paging (HAP) detected
(XEN) HVM: HAP page sizes: 4kB, 2MB, 1GB
(XEN) masked ExtINT on CPU#1
(XEN) spurious 8259A interrupt: IRQ7.
(XEN) CPU1: No irq handler for vector e7 (IRQ -1)
(XEN) microcode: collect_cpu_info: patch_id=0x10000c8
(XEN) masked ExtINT on CPU#2
(XEN) CPU2: No irq handler for vector e7 (IRQ -1)
(XEN) microcode: collect_cpu_info: patch_id=0x10000c8
(XEN) masked ExtINT on CPU#3
(XEN) CPU3: No irq handler for vector e7 (IRQ -1)
(XEN) microcode: collect_cpu_info: patch_id=0x10000c8
(XEN) Brought up 4 CPUs
(XEN) microcode: collect_cpu_info: patch_id=0x10000c8
(XEN) microcode: size 12404, block size 960, offset 284
(XEN) microcode: CPU0 patch does not match (patch is 1022, cpu base id is 1043) 
(XEN) microcode: size 12404, block size 960, offset 1252
(XEN) microcode: CPU0 patch does not match (patch is 1020, cpu base id is 1043) 
(XEN) microcode: size 12404, block size 960, offset 2220
(XEN) microcode: CPU0 patch does not match (patch is 1062, cpu base id is 1043) 
(XEN) microcode: size 12404, block size 960, offset 3188
(XEN) microcode: size 12404, block size 960, offset 4156
(XEN) microcode: CPU0 patch does not match (patch is 1081, cpu base id is 1043) 
(XEN) microcode: size 12404, block size 960, offset 5124
(XEN) microcode: CPU0 patch does not match (patch is 1080, cpu base id is 1043) 
(XEN) microcode: size 12404, block size 960, offset 6092
(XEN) microcode: CPU0 patch does not match (patch is 1041, cpu base id is 1043) 
(XEN) microcode: size 12404, block size 960, offset 7060
(XEN) microcode: CPU0 patch does not match (patch is 10a0, cpu base id is 1043) 
(XEN) microcode: size 12404, block size 960, offset 8028
(XEN) microcode: CPU0 patch does not match (patch is 3010, cpu base id is 1043) 
(XEN) microcode: size 12404, block size 1824, offset 8996
(XEN) microcode: CPU0 patch does not match (patch is 5010, cpu base id is 1043) 
(XEN) microcode: size 12404, block size 1568, offset 10828
(XEN) microcode: CPU0 patch does not match (patch is 5020, cpu base id is 1043) 
(XEN) microcode: collect_cpu_info: patch_id=0x10000c8
(XEN) microcode: size 12404, block size 960, offset 284
(XEN) microcode: CPU1 patch does not match (patch is 1022, cpu base id is 1043) 
(XEN) microcode: size 12404, block size 960, offset 1252
(XEN) microcode: CPU1 patch does not match (patch is 1020, cpu base id is 1043) 
(XEN) microcode: size 12404, block size 960, offset 2220
(XEN) microcode: CPU1 patch does not match (patch is 1062, cpu base id is 1043) 
(XEN) microcode: size 12404, block size 960, offset 3188
(XEN) microcode: size 12404, block size 960, offset 4156
(XEN) microcode: CPU1 patch does not match (patch is 1081, cpu base id is 1043) 
(XEN) microcode: size 12404, block size 960, offset 5124
(XEN) microcode: CPU1 patch does not match (patch is 1080, cpu base id is 1043) 
(XEN) microcode: size 12404, block size 960, offset 6092
(XEN) microcode: CPU1 patch does not match (patch is 1041, cpu base id is 1043) 
(XEN) microcode: size 12404, block size 960, offset 7060
(XEN) microcode: CPU1 patch does not match (patch is 10a0, cpu base id is 1043) 
(XEN) microcode: size 12404, block size 960, offset 8028
(XEN) microcode: CPU1 patch does not match (patch is 3010, cpu base id is 1043) 
(XEN) microcode: size 12404, block size 1824, offset 8996
(XEN) microcode: CPU1 patch does not match (patch is 5010, cpu base id is 1043) 
(XEN) microcode: size 12404, block size 1568, offset 10828
(XEN) microcode: CPU1 patch does not match (patch is 5020, cpu base id is 1043) 
(XEN) microcode: collect_cpu_info: patch_id=0x10000c8
(XEN) microcode: size 12404, block size 960, offset 284
(XEN) microcode: CPU2 patch does not match (patch is 1022, cpu base id is 1043) 
(XEN) microcode: size 12404, block size 960, offset 1252
(XEN) microcode: CPU2 patch does not match (patch is 1020, cpu base id is 1043) 
(XEN) microcode: size 12404, block size 960, offset 2220
(XEN) microcode: CPU2 patch does not match (patch is 1062, cpu base id is 1043) 
(XEN) microcode: size 12404, block size 960, offset 3188
(XEN) microcode: size 12404, block size 960, offset 4156
(XEN) microcode: CPU2 patch does not match (patch is 1081, cpu base id is 1043) 
(XEN) microcode: size 12404, block size 960, offset 5124
(XEN) microcode: CPU2 patch does not match (patch is 1080, cpu base id is 1043) 
(XEN) microcode: size 12404, block size 960, offset 6092
(XEN) microcode: CPU2 patch does not match (patch is 1041, cpu base id is 1043) 
(XEN) microcode: size 12404, block size 960, offset 7060
(XEN) microcode: CPU2 patch does not match (patch is 10a0, cpu base id is 1043) 
(XEN) microcode: size 12404, block size 960, offset 8028
(XEN) microcode: CPU2 patch does not match (patch is 3010, cpu base id is 1043) 
(XEN) microcode: size 12404, block size 1824, offset 8996
(XEN) microcode: CPU2 patch does not match (patch is 5010, cpu base id is 1043) 
(XEN) microcode: size 12404, block size 1568, offset 10828
(XEN) microcode: CPU2 patch does not match (patch is 5020, cpu base id is 1043) 
(XEN) microcode: collect_cpu_info: patch_id=0x10000c8
(XEN) microcode: size 12404, block size 960, offset 284
(XEN) microcode: CPU3 patch does not match (patch is 1022, cpu base id is 1043) 
(XEN) microcode: size 12404, block size 960, offset 1252
(XEN) microcode: CPU3 patch does not match (patch is 1020, cpu base id is 1043) 
(XEN) microcode: size 12404, block size 960, offset 2220
(XEN) microcode: CPU3 patch does not match (patch is 1062, cpu base id is 1043) 
(XEN) microcode: size 12404, block size 960, offset 3188
(XEN) microcode: size 12404, block size 960, offset 4156
(XEN) microcode: CPU3 patch does not match (patch is 1081, cpu base id is 1043) 
(XEN) microcode: size 12404, block size 960, offset 5124
(XEN) microcode: CPU3 patch does not match (patch is 1080, cpu base id is 1043) 
(XEN) microcode: size 12404, block size 960, offset 6092
(XEN) microcode: CPU3 patch does not match (patch is 1041, cpu base id is 1043) 
(XEN) microcode: size 12404, block size 960, offset 7060
(XEN) microcode: CPU3 patch does not match (patch is 10a0, cpu base id is 1043) 
(XEN) microcode: size 12404, block size 960, offset 8028
(XEN) microcode: CPU3 patch does not match (patch is 3010, cpu base id is 1043) 
(XEN) microcode: size 12404, block size 1824, offset 8996
(XEN) microcode: CPU3 patch does not match (patch is 5010, cpu base id is 1043) 
(XEN) microcode: size 12404, block size 1568, offset 10828
(XEN) microcode: CPU3 patch does not match (patch is 5020, cpu base id is 1043) 
(XEN) HPET: 3 timers (0 will be used for broadcast)
(XEN) ACPI sleep modes: S3
(XEN) MCA: Use hw thresholding to adjust polling frequency
(XEN) mcheck_poll: Machine check polling timer started.
(XEN) Xenoprofile: AMD IBS detected (0x0000001f)
(XEN) *** LOADING DOMAIN 0 ***
(XEN)  Xen  kernel: 64-bit, lsb, compat32
(XEN)  Dom0 kernel: 64-bit, PAE, lsb, paddr 0x1000000 -> 0x1b89000
(XEN) PHYSICAL MEMORY ARRANGEMENT:
(XEN)  Dom0 alloc.:   000000042c000000->0000000430000000 (242939 pages to be allocated)
(XEN)  Init. ramdisk: 000000043f4f7000->000000043fffb200
(XEN) VIRTUAL MEMORY ARRANGEMENT:
(XEN)  Loaded kernel: ffffffff81000000->ffffffff81b89000
(XEN)  Init. ramdisk: ffffffff81b89000->ffffffff8268d200
(XEN)  Phys-Mach map: ffffffff8268e000->ffffffff8288e000
(XEN)  Start info:    ffffffff8288e000->ffffffff8288e4b4
(XEN)  Page tables:   ffffffff8288f000->ffffffff828a8000
(XEN)  Boot stack:    ffffffff828a8000->ffffffff828a9000
(XEN)  TOTAL:         ffffffff80000000->ffffffff82c00000
(XEN)  ENTRY ADDRESS: ffffffff81665180
(XEN) Dom0 has maximum 4 VCPUs
(XEN) Scrubbing Free RAM: .......................................................................................................................................................done.
(XEN) Initial low memory virq threshold set at 0x4000 pages.
(XEN) Std. Loglevel: All
(XEN) Guest Loglevel: All
(XEN) *** Serial input -> DOM0 (type 'CTRL-a' three times to switch input to Xen)
(XEN) Freed 240kB init memory.
(XEN) IOAPIC[0]: Set PCI routing entry (8-9 -> 0x58 -> IRQ 9 Mode:1 Active:1)
(XEN) traps.c:2584:d0 Domain attempted WRMSR 00000000c0010004 from 0x0000000000000000 to 0x000000000000abcd.
(XEN) mm.c:887: d0: Forcing read-only access to MFN e0002
(XEN) PCI add device 0000:00:00.0
(XEN) PCI add device 0000:00:00.2
(XEN) PCI add device 0000:00:02.0
(XEN) PCI add device 0000:00:07.0
(XEN) PCI add device 0000:00:09.0
(XEN) PCI add device 0000:00:11.0
(XEN) PCI add device 0000:00:12.0
(XEN) PCI add device 0000:00:12.2
(XEN) PCI add device 0000:00:13.0
(XEN) PCI add device 0000:00:13.2
(XEN) PCI add device 0000:00:14.0
(XEN) PCI add device 0000:00:14.3
(XEN) PCI add device 0000:00:14.4
(XEN) PCI add device 0000:00:14.5
(XEN) PCI add device 0000:00:15.0
(XEN) PCI add device 0000:00:16.0
(XEN) PCI add device 0000:00:16.2
(XEN) PCI add device 0000:00:18.0
(XEN) PCI add device 0000:00:18.1
(XEN) PCI add device 0000:00:18.2
(XEN) PCI add device 0000:00:18.3
(XEN) PCI add device 0000:00:18.4
(XEN) PCI add device 0000:01:00.0
(XEN) PCI add device 0000:01:00.1
(XEN) PCI add device 0000:02:00.0
(XEN) PCI add device 0000:03:00.0
(XEN) PCI add device 0000:04:06.0
(XEN) PCI add device 0000:04:06.1
(XEN) PCI add device 0000:04:06.2
(XEN) PCI add device 0000:05:00.0
(XEN) PCI add device 0000:05:00.1
(XEN) IOAPIC[0]: Set PCI routing entry (8-8 -> 0x50 -> IRQ 8 Mode:0 Active:0)
(XEN) IOAPIC[0]: Set PCI routing entry (8-13 -> 0x78 -> IRQ 13 Mode:0 Active:0)
(XEN) IOAPIC[0]: Set PCI routing entry (8-18 -> 0x98 -> IRQ 18 Mode:1 Active:1)
(XEN) IOAPIC[0]: Set PCI routing entry (8-19 -> 0xa0 -> IRQ 19 Mode:1 Active:1)
(XEN) IOAPIC[0]: Set PCI routing entry (8-17 -> 0xa8 -> IRQ 17 Mode:1 Active:1)
(XEN) IOAPIC[0]: Set PCI routing entry (8-20 -> 0xb0 -> IRQ 20 Mode:1 Active:1)
(XEN) IOAPIC[0]: Set PCI routing entry (8-21 -> 0xb8 -> IRQ 21 Mode:1 Active:1)
(XEN) IOAPIC[0]: Set PCI routing entry (8-22 -> 0xc0 -> IRQ 22 Mode:1 Active:1)
(XEN) no cpu_id for acpi_id 4
(XEN) no cpu_id for acpi_id 5
(XEN) no cpu_id for acpi_id 6

[-- Attachment #3: xl.dmesg_no-amd-iommu-perdev-intremap --]
[-- Type: text/plain, Size: 26009 bytes --]

 __  __            _  _    ____    ____                    
 \ \/ /___ _ __   | || |  |___ \  |___ \    _ __  _ __ ___ 
  \  // _ \ '_ \  | || |_   __) |   __) |__| '_ \| '__/ _ \
  /  \  __/ | | | |__   _| / __/ _ / __/|__| |_) | | |  __/
 /_/\_\___|_| |_|    |_|(_)_____(_)_____|  | .__/|_|  \___|
                                           |_|             
(XEN) Xen version 4.2.2-pre (@sec.chaos) (gcc (Gentoo Hardened 4.6.3 p1.11, pie-0.5.2) 4.6.3) Sun Mar  3 16:35:02 CET 2013
(XEN) Latest ChangeSet: Wed Feb 13 17:00:15 2013 +0000 26013:e28ffa5410df
(XEN) Bootloader: GNU GRUB 0.97
(XEN) Command line: ucode=-1 dom0_mem=1024M,max:1024M com1=115200,8n1,0x3f8,4 console=com1 cpufreq=xen:ondemand loglvl=all guest_loglvl=all apic_verbosity=debug e820-verbose=1 iommu=debug,verbose,no-amd-iommu-perdev-intremap
(XEN) Video information:
(XEN)  VGA is text mode 80x25, font 8x16
(XEN)  VBE/DDC methods: V2; EDID transfer time: 1 seconds
(XEN)  EDID info not retrieved because of reasons unknown
(XEN) Disc information:
(XEN)  Found 7 MBR signatures
(XEN)  Found 6 EDD information structures
(XEN) Initial Xen-e820 RAM map:
(XEN)  0000000000000000 - 0000000000094000 (usable)
(XEN)  00000000000f0000 - 0000000000100000 (reserved)
(XEN)  00000000fec00000 - 0000000100000000 (reserved)
(XEN)  00000000e0000000 - 00000000f0000000 (reserved)
(XEN)  000000000009f800 - 00000000000a0000 (reserved)
(XEN)  00000000bfe00000 - 00000000bff00000 (reserved)
(XEN)  0000000000100000 - 00000000bfda0000 (usable)
(XEN)  00000000bfdd1000 - 00000000bfe00000 (ACPI data)
(XEN)  00000000bfda0000 - 00000000bfdd1000 (ACPI NVS)
(XEN)  0000000100000000 - 0000000440000000 (usable)
(XEN) Xen-e820 RAM map:
(XEN)  0000000000000000 - 0000000000094000 (usable)
(XEN)  000000000009f800 - 00000000000a0000 (reserved)
(XEN)  00000000000f0000 - 0000000000100000 (reserved)
(XEN)  0000000000100000 - 00000000bfda0000 (usable)
(XEN)  00000000bfda0000 - 00000000bfdd1000 (ACPI NVS)
(XEN)  00000000bfdd1000 - 00000000bfe00000 (ACPI data)
(XEN)  00000000bfe00000 - 00000000bff00000 (reserved)
(XEN)  00000000e0000000 - 00000000f0000000 (reserved)
(XEN)  00000000fec00000 - 0000000100000000 (reserved)
(XEN)  0000000100000000 - 0000000440000000 (usable)
(XEN) ACPI: RSDP 000F6B80, 0014 (r0 GBT   )
(XEN) ACPI: RSDT BFDD1000, 004C (r1 GBT    GBTUACPI 42302E31 GBTU  1010101)
(XEN) ACPI: FACP BFDD1080, 0074 (r1 GBT    GBTUACPI 42302E31 GBTU  1010101)
(XEN) ACPI: DSDT BFDD1100, 792A (r1 GBT    GBTUACPI     1000 MSFT  3000000)
(XEN) ACPI: FACS BFDA0000, 0040
(XEN) ACPI: SSDT BFDD8B00, 088C (r1 PTLTD  POWERNOW        1  LTP        1)
(XEN) ACPI: MSDM BFDD93C0, 0055 (r3 GBT    GBTUACPI 42302E31 GBTU  1010101)
(XEN) ACPI: HPET BFDD9440, 0038 (r1 GBT    GBTUACPI 42302E31 GBTU       98)
(XEN) ACPI: MCFG BFDD9480, 003C (r1 GBT    GBTUACPI 42302E31 GBTU  1010101)
(XEN) ACPI: MATS BFDD9500, 0034 (r1 GBT                    0             0)
(XEN) ACPI: TAMG BFDD9570, 0202 (r1 GBT    GBT   B0 5455312E BG\x01\x01 53450101)
(XEN) ACPI: APIC BFDD8A40, 00BC (r1 GBT    GBTUACPI 42302E31 GBTU  1010101)
(XEN) ACPI: MATS BFDD9780, 61FD (r1        MATS RCM 80000001 INTL 20061109)
(XEN) ACPI: IVRS BFDDF9F0, 00D0 (r1  AMD     RD890S   202031 AMD         0)
(XEN) System RAM: 16381MB (16774352kB)
(XEN) No NUMA configuration found
(XEN) Faking a node at 0000000000000000-0000000440000000
(XEN) Domain heap initialised
(XEN) found SMP MP-table at 000f4c60
(XEN) DMI 2.4 present.
(XEN) APIC boot state is 'xapic'
(XEN) Using APIC driver default
(XEN) ACPI: PM-Timer IO Port: 0x808
(XEN) ACPI: ACPI SLEEP INFO: pm1x_cnt[804,0], pm1x_evt[800,0]
(XEN) ACPI:                  wakeup_vec[bfda000c], vec_size[20]
(XEN) ACPI: Local APIC address 0xfee00000
(XEN) ACPI: LAPIC (acpi_id[0x00] lapic_id[0x00] enabled)
(XEN) Processor #0 0:5 APIC version 16
(XEN) ACPI: LAPIC (acpi_id[0x01] lapic_id[0x01] enabled)
(XEN) Processor #1 0:5 APIC version 16
(XEN) ACPI: LAPIC (acpi_id[0x02] lapic_id[0x02] enabled)
(XEN) Processor #2 0:5 APIC version 16
(XEN) ACPI: LAPIC (acpi_id[0x03] lapic_id[0x03] enabled)
(XEN) Processor #3 0:5 APIC version 16
(XEN) ACPI: LAPIC (acpi_id[0x04] lapic_id[0x04] disabled)
(XEN) ACPI: LAPIC (acpi_id[0x05] lapic_id[0x05] disabled)
(XEN) ACPI: LAPIC (acpi_id[0x06] lapic_id[0x06] disabled)
(XEN) ACPI: LAPIC (acpi_id[0x07] lapic_id[0x07] disabled)
(XEN) ACPI: LAPIC_NMI (acpi_id[0x00] dfl dfl lint[0x1])
(XEN) ACPI: LAPIC_NMI (acpi_id[0x01] dfl dfl lint[0x1])
(XEN) ACPI: LAPIC_NMI (acpi_id[0x02] dfl dfl lint[0x1])
(XEN) ACPI: LAPIC_NMI (acpi_id[0x03] dfl dfl lint[0x1])
(XEN) ACPI: LAPIC_NMI (acpi_id[0x04] dfl dfl lint[0x1])
(XEN) ACPI: LAPIC_NMI (acpi_id[0x05] dfl dfl lint[0x1])
(XEN) ACPI: LAPIC_NMI (acpi_id[0x06] dfl dfl lint[0x1])
(XEN) ACPI: LAPIC_NMI (acpi_id[0x07] dfl dfl lint[0x1])
(XEN) ACPI: IOAPIC (id[0x08] address[0xfec00000] gsi_base[0])
(XEN) IOAPIC[0]: apic_id 8, version 33, address 0xfec00000, GSI 0-23
(XEN) ACPI: INT_SRC_OVR (bus 0 bus_irq 0 global_irq 2 dfl dfl)
(XEN) ACPI: INT_SRC_OVR (bus 0 bus_irq 9 global_irq 9 low level)
(XEN) ACPI: IRQ0 used by override.
(XEN) ACPI: IRQ2 used by override.
(XEN) ACPI: IRQ9 used by override.
(XEN) Enabling APIC mode:  Flat.  Using 1 I/O APICs
(XEN) ACPI: HPET id: 0x10b9a201 base: 0xfed00000
(XEN) Table is not found!
(XEN) Using ACPI (MADT) for SMP configuration information
(XEN) SMP: Allowing 8 CPUs (4 hotplug CPUs)
(XEN) mapped APIC to ffff82c3ffdfe000 (fee00000)
(XEN) mapped IOAPIC to ffff82c3ffdfd000 (fec00000)
(XEN) IRQ limits: 24 GSI, 760 MSI/MSI-X
(XEN) Using scheduler: SMP Credit Scheduler (credit)
(XEN) Detected 3020.334 MHz processor.
(XEN) Initing memory sharing.
(XEN) AMD Fam10h machine check reporting enabled
(XEN) PCI: MCFG configuration 0: base e0000000 segment 0000 buses 00 - ff
(XEN) PCI: MCFG area at e0000000 reserved in E820
(XEN) PCI: Using MCFG for segment 0000 bus 00-ff
(XEN) AMD-Vi: Found MSI capability block at 0x54
(XEN) AMD-Vi: ACPI Table:
(XEN) AMD-Vi:  Signature IVRS
(XEN) AMD-Vi:  Length 0xd0
(XEN) AMD-Vi:  Revision 0x1
(XEN) AMD-Vi:  CheckSum 0x9b
(XEN) AMD-Vi:  OEM_Id AMD  
(XEN) AMD-Vi:  OEM_Table_Id RD890S
(XEN) AMD-Vi:  OEM_Revision 0x202031
(XEN) AMD-Vi:  Creator_Id AMD 
(XEN) AMD-Vi:  Creator_Revision 0x0
(XEN) AMD-Vi: IVRS Block: type 0x10 flags 0x3e len 0xa0 id 0x2
(XEN) AMD-Vi: IVHD Device Entry: type 0x3 id 0x0 flags 0x0
(XEN) AMD-Vi:  Dev_Id Range: 0x0 -> 0x2
(XEN) AMD-Vi: IVHD Device Entry: type 0x2 id 0x10 flags 0x0
(XEN) AMD-Vi: IVHD Device Entry: type 0x3 id 0x100 flags 0x0
(XEN) AMD-Vi:  Dev_Id Range: 0x100 -> 0x101
(XEN) AMD-Vi: IVHD Device Entry: type 0x2 id 0x38 flags 0x0
(XEN) AMD-Vi: IVHD Device Entry: type 0x2 id 0x200 flags 0x0
(XEN) AMD-Vi: IVHD Device Entry: type 0x2 id 0x48 flags 0x0
(XEN) AMD-Vi: IVHD Device Entry: type 0x2 id 0x300 flags 0x0
(XEN) AMD-Vi: IVHD Device Entry: type 0x2 id 0x88 flags 0x0
(XEN) AMD-Vi: IVHD Device Entry: type 0x3 id 0x90 flags 0x0
(XEN) AMD-Vi:  Dev_Id Range: 0x90 -> 0x92
(XEN) AMD-Vi: IVHD Device Entry: type 0x3 id 0x98 flags 0x0
(XEN) AMD-Vi:  Dev_Id Range: 0x98 -> 0x9a
(XEN) AMD-Vi: IVHD Device Entry: type 0x2 id 0xa0 flags 0xd7
(XEN) AMD-Vi: IVHD Device Entry: type 0x2 id 0xa3 flags 0x0
(XEN) AMD-Vi: IVHD Device Entry: type 0x2 id 0xa4 flags 0x0
(XEN) AMD-Vi: IVHD Device Entry: type 0x0 id 0x0 flags 0x0
(XEN) AMD-Vi: IVHD Device Entry: type 0x43 id 0x400 flags 0x0
(XEN) AMD-Vi:  Dev_Id Range: 0x400 -> 0x4ff alias 0xa4
(XEN) AMD-Vi: IVHD Device Entry: type 0x2 id 0xa5 flags 0x0
(XEN) AMD-Vi: IVHD Device Entry: type 0x2 id 0xa8 flags 0x0
(XEN) AMD-Vi: IVHD Device Entry: type 0x3 id 0x500 flags 0x0
(XEN) AMD-Vi:  Dev_Id Range: 0x500 -> 0x5ff
(XEN) AMD-Vi: IVHD Device Entry: type 0x3 id 0xb0 flags 0x0
(XEN) AMD-Vi:  Dev_Id Range: 0xb0 -> 0xb2
(XEN) AMD-Vi: IVHD Device Entry: type 0x0 id 0x0 flags 0x0
(XEN) AMD-Vi: IVHD Device Entry: type 0x48 id 0x0 flags 0xd7
(XEN) AMD-Vi: IVHD Special: 0000:00:14.0 variety 0x1 handle 0x8
(XEN) AMD-Vi: IVHD Device Entry: type 0x48 id 0x0 flags 0xd7
(XEN) AMD-Vi: IVHD Special: 0000:00:14.0 variety 0x2 handle 0x0
(XEN) AMD-Vi: IVHD Device Entry: type 0x48 id 0x0 flags 0x0
(XEN) AMD-Vi: IVHD Special: 0000:00:00.1 variety 0x1 handle 0x8
(XEN) IVHD Error: Conflicting IO-APIC 0x8 entries
(XEN) AMD-Vi: IOMMU 0 Enabled.
(XEN) AMD-Vi: Enabling global vector map
(XEN) AMD-Vi: Using global interrupt remap table is not recommended (see XSA-36)!
(XEN) I/O virtualisation enabled
(XEN)  - Dom0 mode: Relaxed
(XEN) Getting VERSION: 80050010
(XEN) Getting VERSION: 80050010
(XEN) Getting ID: 0
(XEN) Getting LVT0: 700
(XEN) Getting LVT1: 400
(XEN) enabled ExtINT on CPU#0
(XEN) ENABLING IO-APIC IRQs
(XEN)  -> Using new ACK method
(XEN) init IO_APIC IRQs
(XEN)  IO-APIC (apicid-pin) 8-0, 8-16, 8-17, 8-18, 8-19, 8-20, 8-21, 8-22, 8-23 not connected.
(XEN) ..TIMER: vector=0xF0 apic1=0 pin1=2 apic2=-1 pin2=-1
(XEN) number of MP IRQ sources: 15.
(XEN) number of IO-APIC #8 registers: 24.
(XEN) testing the IO APIC.......................
(XEN) IO APIC #8......
(XEN) .... register #00: 00000000
(XEN) .......    : physical APIC id: 00
(XEN) .......    : Delivery Type: 0
(XEN) .......    : LTS          : 0
(XEN) .... register #01: 00178021
(XEN) .......     : max redirection entries: 0017
(XEN) .......     : PRQ implemented: 1
(XEN) .......     : IO APIC version: 0021
(XEN) .... register #02: 00000000
(XEN) .......     : arbitration: 00
(XEN) .... register #03: 01000000
(XEN) .......     : Boot DT    : 0
(XEN) .... IRQ redirection table:
(XEN)  NR Log Phy Mask Trig IRR Pol Stat Dest Deli Vect:   
(XEN)  00 000 00  1    0    0   0   0    0    0    00
(XEN)  01 001 01  0    0    0   0   0    1    1    30
(XEN)  02 001 01  0    0    0   0   0    1    1    F0
(XEN)  03 001 01  0    0    0   0   0    1    1    38
(XEN)  04 001 01  0    0    0   0   0    1    1    F1
(XEN)  05 001 01  0    0    0   0   0    1    1    40
(XEN)  06 001 01  0    0    0   0   0    1    1    48
(XEN)  07 001 01  0    0    0   0   0    1    1    50
(XEN)  08 001 01  0    0    0   0   0    1    1    58
(XEN)  09 001 01  1    1    0   1   0    1    1    60
(XEN)  0a 001 01  0    0    0   0   0    1    1    68
(XEN)  0b 001 01  0    0    0   0   0    1    1    70
(XEN)  0c 001 01  0    0    0   0   0    1    1    78
(XEN)  0d 001 01  0    0    0   0   0    1    1    88
(XEN)  0e 001 01  0    0    0   0   0    1    1    90
(XEN)  0f 001 01  0    0    0   0   0    1    1    98
(XEN)  10 000 00  1    0    0   0   0    0    0    00
(XEN)  11 000 00  1    0    0   0   0    0    0    00
(XEN)  12 000 00  1    0    0   0   0    0    0    00
(XEN)  13 000 00  1    0    0   0   0    0    0    00
(XEN)  14 000 00  1    0    0   0   0    0    0    00
(XEN)  15 000 00  1    0    0   0   0    0    0    00
(XEN)  16 000 00  1    0    0   0   0    0    0    00
(XEN)  17 000 00  1    0    0   0   0    0    0    00
(XEN) Using vector-based indexing
(XEN) IRQ to pin mappings:
(XEN) IRQ240 -> 0:2
(XEN) IRQ48 -> 0:1
(XEN) IRQ56 -> 0:3
(XEN) IRQ241 -> 0:4
(XEN) IRQ64 -> 0:5
(XEN) IRQ72 -> 0:6
(XEN) IRQ80 -> 0:7
(XEN) IRQ88 -> 0:8
(XEN) IRQ96 -> 0:9
(XEN) IRQ104 -> 0:10
(XEN) IRQ112 -> 0:11
(XEN) IRQ120 -> 0:12
(XEN) IRQ136 -> 0:13
(XEN) IRQ144 -> 0:14
(XEN) IRQ152 -> 0:15
(XEN) .................................... done.
(XEN) Using local APIC timer interrupts.
(XEN) calibrating APIC timer ...
(XEN) ..... CPU clock speed is 3020.3086 MHz.
(XEN) ..... host bus clock speed is 201.3538 MHz.
(XEN) ..... bus_scale = 0x0000CE33
(XEN) Platform timer is 14.318MHz HPET
(XEN) Allocated console ring of 32 KiB.
(XEN) microcode: collect_cpu_info: patch_id=0x10000c8
(XEN) microcode: size 12404, block size 960, offset 284
(XEN) microcode: CPU0 patch does not match (patch is 1022, cpu base id is 1043) 
(XEN) microcode: size 12404, block size 960, offset 1252
(XEN) microcode: CPU0 patch does not match (patch is 1020, cpu base id is 1043) 
(XEN) microcode: size 12404, block size 960, offset 2220
(XEN) microcode: CPU0 patch does not match (patch is 1062, cpu base id is 1043) 
(XEN) microcode: size 12404, block size 960, offset 3188
(XEN) microcode: size 12404, block size 960, offset 4156
(XEN) microcode: CPU0 patch does not match (patch is 1081, cpu base id is 1043) 
(XEN) microcode: size 12404, block size 960, offset 5124
(XEN) microcode: CPU0 patch does not match (patch is 1080, cpu base id is 1043) 
(XEN) microcode: size 12404, block size 960, offset 6092
(XEN) microcode: CPU0 patch does not match (patch is 1041, cpu base id is 1043) 
(XEN) microcode: size 12404, block size 960, offset 7060
(XEN) microcode: CPU0 patch does not match (patch is 10a0, cpu base id is 1043) 
(XEN) microcode: size 12404, block size 960, offset 8028
(XEN) microcode: CPU0 patch does not match (patch is 3010, cpu base id is 1043) 
(XEN) microcode: size 12404, block size 1824, offset 8996
(XEN) microcode: CPU0 patch does not match (patch is 5010, cpu base id is 1043) 
(XEN) microcode: size 12404, block size 1568, offset 10828
(XEN) microcode: CPU0 patch does not match (patch is 5020, cpu base id is 1043) 
(XEN) HVM: ASIDs enabled.
(XEN) SVM: Supported advanced features:
(XEN)  - Nested Page Tables (NPT)
(XEN)  - Last Branch Record (LBR) Virtualisation
(XEN)  - Next-RIP Saved on #VMEXIT
(XEN) HVM: SVM enabled
(XEN) HVM: Hardware Assisted Paging (HAP) detected
(XEN) HVM: HAP page sizes: 4kB, 2MB, 1GB
(XEN) masked ExtINT on CPU#1
(XEN) spurious 8259A interrupt: IRQ7.
(XEN) CPU1: No irq handler for vector e7 (IRQ -1)
(XEN) microcode: collect_cpu_info: patch_id=0x10000c8
(XEN) masked ExtINT on CPU#2
(XEN) CPU2: No irq handler for vector e7 (IRQ -1)
(XEN) microcode: collect_cpu_info: patch_id=0x10000c8
(XEN) masked ExtINT on CPU#3
(XEN) Brought up 4 CPUs
(XEN) CPU3: No irq handler for vector e7 (IRQ -1)
(XEN) microcode: collect_cpu_info: patch_id=0x10000c8
(XEN) microcode: collect_cpu_info: patch_id=0x10000c8
(XEN) microcode: size 12404, block size 960, offset 284
(XEN) microcode: CPU0 patch does not match (patch is 1022, cpu base id is 1043) 
(XEN) microcode: size 12404, block size 960, offset 1252
(XEN) microcode: CPU0 patch does not match (patch is 1020, cpu base id is 1043) 
(XEN) microcode: size 12404, block size 960, offset 2220
(XEN) microcode: CPU0 patch does not match (patch is 1062, cpu base id is 1043) 
(XEN) microcode: size 12404, block size 960, offset 3188
(XEN) microcode: size 12404, block size 960, offset 4156
(XEN) microcode: CPU0 patch does not match (patch is 1081, cpu base id is 1043) 
(XEN) microcode: size 12404, block size 960, offset 5124
(XEN) microcode: CPU0 patch does not match (patch is 1080, cpu base id is 1043) 
(XEN) microcode: size 12404, block size 960, offset 6092
(XEN) microcode: CPU0 patch does not match (patch is 1041, cpu base id is 1043) 
(XEN) microcode: size 12404, block size 960, offset 7060
(XEN) microcode: CPU0 patch does not match (patch is 10a0, cpu base id is 1043) 
(XEN) microcode: size 12404, block size 960, offset 8028
(XEN) microcode: CPU0 patch does not match (patch is 3010, cpu base id is 1043) 
(XEN) microcode: size 12404, block size 1824, offset 8996
(XEN) microcode: CPU0 patch does not match (patch is 5010, cpu base id is 1043) 
(XEN) microcode: size 12404, block size 1568, offset 10828
(XEN) microcode: CPU0 patch does not match (patch is 5020, cpu base id is 1043) 
(XEN) microcode: collect_cpu_info: patch_id=0x10000c8
(XEN) microcode: size 12404, block size 960, offset 284
(XEN) microcode: CPU1 patch does not match (patch is 1022, cpu base id is 1043) 
(XEN) microcode: size 12404, block size 960, offset 1252
(XEN) microcode: CPU1 patch does not match (patch is 1020, cpu base id is 1043) 
(XEN) microcode: size 12404, block size 960, offset 2220
(XEN) microcode: CPU1 patch does not match (patch is 1062, cpu base id is 1043) 
(XEN) microcode: size 12404, block size 960, offset 3188
(XEN) microcode: size 12404, block size 960, offset 4156
(XEN) microcode: CPU1 patch does not match (patch is 1081, cpu base id is 1043) 
(XEN) microcode: size 12404, block size 960, offset 5124
(XEN) microcode: CPU1 patch does not match (patch is 1080, cpu base id is 1043) 
(XEN) microcode: size 12404, block size 960, offset 6092
(XEN) microcode: CPU1 patch does not match (patch is 1041, cpu base id is 1043) 
(XEN) microcode: size 12404, block size 960, offset 7060
(XEN) microcode: CPU1 patch does not match (patch is 10a0, cpu base id is 1043) 
(XEN) microcode: size 12404, block size 960, offset 8028
(XEN) microcode: CPU1 patch does not match (patch is 3010, cpu base id is 1043) 
(XEN) microcode: size 12404, block size 1824, offset 8996
(XEN) microcode: CPU1 patch does not match (patch is 5010, cpu base id is 1043) 
(XEN) microcode: size 12404, block size 1568, offset 10828
(XEN) microcode: CPU1 patch does not match (patch is 5020, cpu base id is 1043) 
(XEN) microcode: collect_cpu_info: patch_id=0x10000c8
(XEN) microcode: size 12404, block size 960, offset 284
(XEN) microcode: CPU2 patch does not match (patch is 1022, cpu base id is 1043) 
(XEN) microcode: size 12404, block size 960, offset 1252
(XEN) microcode: CPU2 patch does not match (patch is 1020, cpu base id is 1043) 
(XEN) microcode: size 12404, block size 960, offset 2220
(XEN) microcode: CPU2 patch does not match (patch is 1062, cpu base id is 1043) 
(XEN) microcode: size 12404, block size 960, offset 3188
(XEN) microcode: size 12404, block size 960, offset 4156
(XEN) microcode: CPU2 patch does not match (patch is 1081, cpu base id is 1043) 
(XEN) microcode: size 12404, block size 960, offset 5124
(XEN) microcode: CPU2 patch does not match (patch is 1080, cpu base id is 1043) 
(XEN) microcode: size 12404, block size 960, offset 6092
(XEN) microcode: CPU2 patch does not match (patch is 1041, cpu base id is 1043) 
(XEN) microcode: size 12404, block size 960, offset 7060
(XEN) microcode: CPU2 patch does not match (patch is 10a0, cpu base id is 1043) 
(XEN) microcode: size 12404, block size 960, offset 8028
(XEN) microcode: CPU2 patch does not match (patch is 3010, cpu base id is 1043) 
(XEN) microcode: size 12404, block size 1824, offset 8996
(XEN) microcode: CPU2 patch does not match (patch is 5010, cpu base id is 1043) 
(XEN) microcode: size 12404, block size 1568, offset 10828
(XEN) microcode: CPU2 patch does not match (patch is 5020, cpu base id is 1043) 
(XEN) microcode: collect_cpu_info: patch_id=0x10000c8
(XEN) microcode: size 12404, block size 960, offset 284
(XEN) microcode: CPU3 patch does not match (patch is 1022, cpu base id is 1043) 
(XEN) microcode: size 12404, block size 960, offset 1252
(XEN) microcode: CPU3 patch does not match (patch is 1020, cpu base id is 1043) 
(XEN) microcode: size 12404, block size 960, offset 2220
(XEN) microcode: CPU3 patch does not match (patch is 1062, cpu base id is 1043) 
(XEN) microcode: size 12404, block size 960, offset 3188
(XEN) microcode: size 12404, block size 960, offset 4156
(XEN) microcode: CPU3 patch does not match (patch is 1081, cpu base id is 1043) 
(XEN) microcode: size 12404, block size 960, offset 5124
(XEN) microcode: CPU3 patch does not match (patch is 1080, cpu base id is 1043) 
(XEN) microcode: size 12404, block size 960, offset 6092
(XEN) microcode: CPU3 patch does not match (patch is 1041, cpu base id is 1043) 
(XEN) microcode: size 12404, block size 960, offset 7060
(XEN) microcode: CPU3 patch does not match (patch is 10a0, cpu base id is 1043) 
(XEN) microcode: size 12404, block size 960, offset 8028
(XEN) microcode: CPU3 patch does not match (patch is 3010, cpu base id is 1043) 
(XEN) microcode: size 12404, block size 1824, offset 8996
(XEN) microcode: CPU3 patch does not match (patch is 5010, cpu base id is 1043) 
(XEN) microcode: size 12404, block size 1568, offset 10828
(XEN) microcode: CPU3 patch does not match (patch is 5020, cpu base id is 1043) 
(XEN) HPET's MSI mode hasn't been supported when Interrupt Remapping is enabled.
(XEN) ACPI sleep modes: S3
(XEN) MCA: Use hw thresholding to adjust polling frequency
(XEN) mcheck_poll: Machine check polling timer started.
(XEN) Xenoprofile: AMD IBS detected (0x0000001f)
(XEN) *** LOADING DOMAIN 0 ***
(XEN)  Xen  kernel: 64-bit, lsb, compat32
(XEN)  Dom0 kernel: 64-bit, PAE, lsb, paddr 0x1000000 -> 0x1b89000
(XEN) PHYSICAL MEMORY ARRANGEMENT:
(XEN)  Dom0 alloc.:   000000042c000000->0000000430000000 (242939 pages to be allocated)
(XEN)  Init. ramdisk: 000000043f4f7000->000000043fffb200
(XEN) VIRTUAL MEMORY ARRANGEMENT:
(XEN)  Loaded kernel: ffffffff81000000->ffffffff81b89000
(XEN)  Init. ramdisk: ffffffff81b89000->ffffffff8268d200
(XEN)  Phys-Mach map: ffffffff8268e000->ffffffff8288e000
(XEN)  Start info:    ffffffff8288e000->ffffffff8288e4b4
(XEN)  Page tables:   ffffffff8288f000->ffffffff828a8000
(XEN)  Boot stack:    ffffffff828a8000->ffffffff828a9000
(XEN)  TOTAL:         ffffffff80000000->ffffffff82c00000
(XEN)  ENTRY ADDRESS: ffffffff81665180
(XEN) Dom0 has maximum 4 VCPUs
(XEN) AMD-Vi: Setup I/O page table: device id = 0x0000, root table = 0x43e6a1000, domain = 0, paging mode = 3
(XEN) AMD-Vi: Setup I/O page table: device id = 0x0002, root table = 0x43e6a1000, domain = 0, paging mode = 3
(XEN) AMD-Vi: Setup I/O page table: device id = 0x0010, root table = 0x43e6a1000, domain = 0, paging mode = 3
(XEN) AMD-Vi: Setup I/O page table: device id = 0x0038, root table = 0x43e6a1000, domain = 0, paging mode = 3
(XEN) AMD-Vi: Setup I/O page table: device id = 0x0048, root table = 0x43e6a1000, domain = 0, paging mode = 3
(XEN) AMD-Vi: Setup I/O page table: device id = 0x0088, root table = 0x43e6a1000, domain = 0, paging mode = 3
(XEN) AMD-Vi: Setup I/O page table: device id = 0x0090, root table = 0x43e6a1000, domain = 0, paging mode = 3
(XEN) AMD-Vi: Setup I/O page table: device id = 0x0092, root table = 0x43e6a1000, domain = 0, paging mode = 3
(XEN) AMD-Vi: Setup I/O page table: device id = 0x0098, root table = 0x43e6a1000, domain = 0, paging mode = 3
(XEN) AMD-Vi: Setup I/O page table: device id = 0x009a, root table = 0x43e6a1000, domain = 0, paging mode = 3
(XEN) AMD-Vi: Setup I/O page table: device id = 0x00a0, root table = 0x43e6a1000, domain = 0, paging mode = 3
(XEN) AMD-Vi: Setup I/O page table: device id = 0x00a3, root table = 0x43e6a1000, domain = 0, paging mode = 3
(XEN) AMD-Vi: Setup I/O page table: device id = 0x00a4, root table = 0x43e6a1000, domain = 0, paging mode = 3
(XEN) AMD-Vi: Setup I/O page table: device id = 0x00a5, root table = 0x43e6a1000, domain = 0, paging mode = 3
(XEN) AMD-Vi: Setup I/O page table: device id = 0x00a8, root table = 0x43e6a1000, domain = 0, paging mode = 3
(XEN) AMD-Vi: Setup I/O page table: device id = 0x00b0, root table = 0x43e6a1000, domain = 0, paging mode = 3
(XEN) AMD-Vi: Setup I/O page table: device id = 0x00b2, root table = 0x43e6a1000, domain = 0, paging mode = 3
(XEN) AMD-Vi: No iommu for device 0000:00:18.0
(XEN) AMD-Vi: No iommu for device 0000:00:18.1
(XEN) AMD-Vi: No iommu for device 0000:00:18.2
(XEN) AMD-Vi: No iommu for device 0000:00:18.3
(XEN) AMD-Vi: No iommu for device 0000:00:18.4
(XEN) AMD-Vi: Setup I/O page table: device id = 0x0100, root table = 0x43e6a1000, domain = 0, paging mode = 3
(XEN) AMD-Vi: Setup I/O page table: device id = 0x0101, root table = 0x43e6a1000, domain = 0, paging mode = 3
(XEN) AMD-Vi: Setup I/O page table: device id = 0x0200, root table = 0x43e6a1000, domain = 0, paging mode = 3
(XEN) AMD-Vi: Setup I/O page table: device id = 0x0300, root table = 0x43e6a1000, domain = 0, paging mode = 3
(XEN) AMD-Vi: Setup I/O page table: device id = 0x0500, root table = 0x43e6a1000, domain = 0, paging mode = 3
(XEN) AMD-Vi: Setup I/O page table: device id = 0x0501, root table = 0x43e6a1000, domain = 0, paging mode = 3
(XEN) Scrubbing Free RAM: .......................................................................................................................................................done.
(XEN) Initial low memory virq threshold set at 0x4000 pages.
(XEN) Std. Loglevel: All
(XEN) Guest Loglevel: All
(XEN) *** Serial input -> DOM0 (type 'CTRL-a' three times to switch input to Xen)
(XEN) Freed 240kB init memory.
(XEN) IOAPIC[0]: Set PCI routing entry (8-9 -> 0x60 -> IRQ 9 Mode:1 Active:1)
(XEN) traps.c:2584:d0 Domain attempted WRMSR 00000000c0010004 from 0x0000000000000000 to 0x000000000000abcd.
(XEN) mm.c:887: d0: Forcing read-only access to MFN e0002
(XEN) PCI add device 0000:00:00.0
(XEN) PCI add device 0000:00:00.2
(XEN) PCI add device 0000:00:02.0
(XEN) PCI add device 0000:00:07.0
(XEN) PCI add device 0000:00:09.0
(XEN) PCI add device 0000:00:11.0
(XEN) PCI add device 0000:00:12.0
(XEN) PCI add device 0000:00:12.2
(XEN) PCI add device 0000:00:13.0
(XEN) PCI add device 0000:00:13.2
(XEN) PCI add device 0000:00:14.0
(XEN) PCI add device 0000:00:14.3
(XEN) PCI add device 0000:00:14.4
(XEN) PCI add device 0000:00:14.5
(XEN) PCI add device 0000:00:15.0
(XEN) PCI add device 0000:00:16.0
(XEN) PCI add device 0000:00:16.2
(XEN) PCI add device 0000:00:18.0
(XEN) PCI add device 0000:00:18.1
(XEN) PCI add device 0000:00:18.2
(XEN) PCI add device 0000:00:18.3
(XEN) PCI add device 0000:00:18.4
(XEN) PCI add device 0000:01:00.0
(XEN) PCI add device 0000:01:00.1
(XEN) PCI add device 0000:02:00.0
(XEN) PCI add device 0000:03:00.0
(XEN) PCI add device 0000:04:06.0
(XEN) PCI add device 0000:04:06.1
(XEN) PCI add device 0000:04:06.2
(XEN) PCI add device 0000:05:00.0
(XEN) PCI add device 0000:05:00.1
(XEN) IOAPIC[0]: Set PCI routing entry (8-8 -> 0x58 -> IRQ 8 Mode:0 Active:0)
(XEN) IOAPIC[0]: Set PCI routing entry (8-13 -> 0x88 -> IRQ 13 Mode:0 Active:0)
(XEN) IOAPIC[0]: Set PCI routing entry (8-18 -> 0xa0 -> IRQ 18 Mode:1 Active:1)
(XEN) IOAPIC[0]: Set PCI routing entry (8-19 -> 0xa8 -> IRQ 19 Mode:1 Active:1)
(XEN) IOAPIC[0]: Set PCI routing entry (8-17 -> 0xb0 -> IRQ 17 Mode:1 Active:1)
(XEN) IOAPIC[0]: Set PCI routing entry (8-20 -> 0xb8 -> IRQ 20 Mode:1 Active:1)
(XEN) IOAPIC[0]: Set PCI routing entry (8-21 -> 0xc0 -> IRQ 21 Mode:1 Active:1)
(XEN) IOAPIC[0]: Set PCI routing entry (8-22 -> 0xc8 -> IRQ 22 Mode:1 Active:1)
(XEN) no cpu_id for acpi_id 4
(XEN) no cpu_id for acpi_id 5
(XEN) no cpu_id for acpi_id 6

[-- Attachment #4: Type: text/plain, Size: 126 bytes --]

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

^ permalink raw reply	[flat|nested] 8+ messages in thread
* Re: XSA-36 / howto fix broken IVRS ACPI table
@ 2013-04-16  7:20 Eric Shelton
  0 siblings, 0 replies; 8+ messages in thread
From: Eric Shelton @ 2013-04-16  7:20 UTC (permalink / raw)
  To: xen-devel; +Cc: Hans Mueller, Boris Ostrovsky

I have the same motherboard.  The chipset has 2 IOAPICs: one in the NB
(00:00.1), and another in the SB (00:14.0).

As currently configured by the BIOS, the NB IOAPIC is _entirely_
disabled, with only the SB IOAPIC enabled and configured.  From
48693.pdf, it would seem that the NB is improperly configured, as
6.4.1 recommends that

"The IOAPIC should be enabled by the system BIOS and the southbridge
routing feature should be switched on. This will allow the interrupts
to be forwarded to the PIC in the southbridge. This way, if the system
boots in DOS, interrupts will still work. Once the system boots an
ACPI OS (where IOAPIC is assumed to be supported), the system BIOS
will disable the southbridge routing feature so that the masked
interrupts are masked out."

It would seem that no NB-side interrupts are going through an IOAPIC.
If so, I do not know what the impact is - somehow NB-side interrupts
are getting to the CPUs.  However, given that very few devices have
MSI interrupts enabled by the BIOS, it may be a little more of an
issue.

It seems there are two fixes available, which would be nice to see
from the BIOS vendor:

1) "the bandaid" - just remove the second IVHD IOAPIC entry.  Then,
Xen will do interrupt remapping at least for the SB IOAPIC.  I
modified the Xen source to ignore this second entry, and get the dmesg
shown below.  My system seems to run fine after the change.

2) Properly configure the NB IOMMU, even if just as set out in 6.4.1.
http://review.coreboot.org/gitweb?p=coreboot.git;a=blob;f=src/vendorcode/amd/cimx/rd890/nbIoApic.c
which I understand to be from CIMX, has the necessary code.

I suppose if it came down to it, you could add code to Xen to bang in
the necessary configuration via the 10 indirect registers for the NB
IOMMU to match up with Table 6-6, which is what the above source file
seems to be doing (although in a more generalized and therefore
complex way).  However, I do not know what, if any, possible
consequences there would be if this does not match what is being
done/reported by ACPI.


- Eric

>From "xl dmesg":
. . .
(XEN) ACPI: IOAPIC (id[0x08] address[0xfec00000] gsi_base[0])
(XEN) IOAPIC[0]: apic_id 8, version 33, address 0xfec00000, GSI 0-23
(XEN) ACPI: INT_SRC_OVR (bus 0 bus_irq 0 global_irq 2 dfl dfl)
(XEN) ACPI: INT_SRC_OVR (bus 0 bus_irq 9 global_irq 9 low level)
(XEN) ACPI: IRQ0 used by override.
(XEN) ACPI: IRQ2 used by override.
(XEN) ACPI: IRQ9 used by override.
(XEN) Enabling APIC mode:  Flat.  Using 1 I/O APICs
. . .
(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
. . .
(XEN) ENABLING IO-APIC IRQs
(XEN)  -> Using new ACK method
(XEN) init IO_APIC IRQs
(XEN)  IO-APIC (apicid-pin) 8-0, 8-16, 8-17, 8-18, 8-19, 8-20, 8-21,
8-22, 8-23 not connected.
(XEN) ..TIMER: vector=0xF0 apic1=0 pin1=2 apic2=-1 pin2=-1
(XEN) number of MP IRQ sources: 15.
(XEN) number of IO-APIC #8 registers: 24.
(XEN) testing the IO APIC.......................
(XEN) IO APIC #8......
(XEN) .... register #00: 00000000
(XEN) .......    : physical APIC id: 00
(XEN) .......    : Delivery Type: 0
(XEN) .......    : LTS          : 0
(XEN) .... register #01: 00178021
(XEN) .......     : max redirection entries: 0017
(XEN) .......     : PRQ implemented: 1
(XEN) .......     : IO APIC version: 0021
(XEN) .... register #02: 00000000
(XEN) .......     : arbitration: 00
(XEN) .... register #03: 01000000
(XEN) .......     : Boot DT    : 0
(XEN) .... IRQ redirection table:
(XEN)  NR Log Phy Mask Trig IRR Pol Stat Dest Deli Vect:
(XEN)  00 000 00  1    0    0   0   0    0    0    00
(XEN)  01 001 01  0    0    0   0   0    1    1    30
(XEN)  02 001 01  0    0    0   0   0    1    1    F0
(XEN)  03 001 01  0    0    0   0   0    1    1    38
(XEN)  04 001 01  0    0    0   0   0    1    1    40
(XEN)  05 001 01  0    0    0   0   0    1    1    48
(XEN)  06 001 01  0    0    0   0   0    1    1    50
(XEN)  07 001 01  0    0    0   0   0    1    1    58
(XEN)  08 001 01  0    0    0   0   0    1    1    60
(XEN)  09 001 01  1    1    0   1   0    1    1    68
(XEN)  0a 001 01  0    0    0   0   0    1    1    70
(XEN)  0b 001 01  0    0    0   0   0    1    1    78
(XEN)  0c 001 01  0    0    0   0   0    1    1    88
(XEN)  0d 001 01  0    0    0   0   0    1    1    90
(XEN)  0e 001 01  0    0    0   0   0    1    1    98
(XEN)  0f 001 01  0    0    0   0   0    1    1    A0
(XEN)  10 000 00  1    0    0   0   0    0    0    00
(XEN)  11 000 00  1    0    0   0   0    0    0    00
(XEN)  12 000 00  1    0    0   0   0    0    0    00
(XEN)  13 000 00  1    0    0   0   0    0    0    00
(XEN)  14 000 00  1    0    0   0   0    0    0    00
(XEN)  15 000 00  1    0    0   0   0    0    0    00
(XEN)  16 000 00  1    0    0   0   0    0    0    00
(XEN)  17 000 00  1    0    0   0   0    0    0    00
(XEN) Using vector-based indexing
. . .
(XEN) *** LOADING DOMAIN 0 ***
. . .
(XEN) PCI add device 0000:02:00.0
(XEN) PCI add device 0000:04:00.0
(XEN) PCI add device 0000:04:00.1
(XEN) IOAPIC[0]: Set PCI routing entry (8-8 -> 0x60 -> IRQ 8 Mode:0 Active:0)
(XEN) IOAPIC[0]: Set PCI routing entry (8-13 -> 0x90 -> IRQ 13 Mode:0 Active:0)
(XEN) IOAPIC[0]: Set PCI routing entry (8-16 -> 0xb0 -> IRQ 16 Mode:1 Active:1)
(XEN) IOAPIC[0]: Set PCI routing entry (8-17 -> 0xb8 -> IRQ 17 Mode:1 Active:1)
(XEN) IOAPIC[0]: Set PCI routing entry (8-18 -> 0xc0 -> IRQ 18 Mode:1 Active:1)
(XEN) IOAPIC[0]: Set PCI routing entry (8-19 -> 0xc8 -> IRQ 19 Mode:1 Active:1)


> > On 03/12/2013 03:04 PM, Hans Mueller wrote:

> > Hello,

> >

> > since applying the patches related to XSA-36 Xen recognizes a broken IVRS ACPI

> > table and disables I/O virtualisation.

> >

> > I contacted the manufacturer of the mainboard/BIOS and they want to help me by

> > providing a patched BIOS - so far so good.

> >

> > However, they need details about what to fix, which I don't know either.

> >

> > Could you pls. give me some hints which I can forward to the manufacturer

> > support?

>

> They should look at AMD IOMMU spec. For example,

> support.amd.com/us/Processor_TechDocs/48882.pdf. Tables 77 and 79.

>

> More specifically, the problem is these two entries:

>

> (XEN) AMD-Vi: IVHD Device Entry: type 0x48 id 0x0 flags 0xd7

> (XEN) AMD-Vi: IVHD Special: 0000:00:14.0 variety 0x1 handle 0x8

> ..

> (XEN) AMD-Vi: IVHD Device Entry: type 0x48 id 0x0 flags 0x0

> (XEN) AMD-Vi: IVHD Special: 0000:00:00.1 variety 0x1 handle 0x8

>

> which tell IOMMU driver that there are two IOAPICs, both with APICID 8.

>

> I believe the second one is wrong.

>

> -boris

> >

> > Thanks a lot & best regards

> > Hans

> >

> >

> >

> > PS: Hardware is a Gigabyte GA-970A-UD3(rev. 1.0), BIOS F7 (tested F8a, too).

> >

> > PPS: I know about 'no-amd-iommu-perdev-intremap' - this does not really help

> > as e.g. heavy i/o on a usb device in one domain causes other domains to

> > disable the related irq etc. ...

^ permalink raw reply	[flat|nested] 8+ messages in thread
* Re: XSA-36 / howto fix broken IVRS ACPI table
@ 2013-04-23 23:39 Eric Shelton
  0 siblings, 0 replies; 8+ messages in thread
From: Eric Shelton @ 2013-04-23 23:39 UTC (permalink / raw)
  To: Hans Mueller, xen-devel

> Hello,
>
> I got a patched BIOS (version F8c) from Gigabyte which removes the 2nd IOAPIC
> entry (for device 0000:00:00.1) from the IVRS table.
>
> This causes Xen to enable per-device vector maps:
> (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
>
> However the problem seems not really to be fixed:
> Interrupts generated within one domain can still harm other domains which at
> least causes the kernel within these other domains to disable interrupts.
>
> Before going to investigate/debug this problem, I want to know if one IOAPIC
> is sufficient as the AMD 970 chipset seems to have one IOAPIC related to the
> northbridge and one for the southbridge.
> The one currently enabled is the southbridge one (0000:00:14.0). Does it also
> support devices connected to the northbridge or needs the northbridge one to
> be enabled, too?
> Are there other limitations/problems to expect regarding the disabled
> northbridge IOAPIC?
>
> Thanks & best regards
> Hans

I have looked into it.  Your best references are the 970 BIOS and
Register Programming guides, to see how it _should_ be configured.
The SB8xx guides are useful if you want to see what is going on in the
SB (SB950 has some minor differences (x4 vs x2 slot), but no formal
documentation is released).  If you _really_ want to dig into it, AMD
released BIOS code via the coreboot project which implements the
configuration shown in the guides.

The problem: Because the NB IOAPIC is not configured, any interrupts
from the x16 and x1 PCIE slots are on 1 of only 4 signal lines sent to
the SB IOAPIC: INTA, INTB, INTC, and INTD (it appears a swizzle is
applied to the slots, which may tend to spread the interrupts among
the 4 pins - although slot choice will affect that).

INTA (SB pin 16) is shared with the built-in HD audio and the rear USB
3 controller.
INTB (SB pin 17) is shared with the any interrupts generated on the x4
slot, the built-in RTL ethernet, EHCI on 3 USB 2 controllers, and the
IDE device (if ports 4+5 are so configured).
INTC (SB pin 18) is shared with OHCI on the same 3 USB 2 controllers,
a 4th USB 2 controller, and the front USB 3 controller (also, if your
x16 video card interrupts via PINA, it will go here).
INTD (SB pin 19) is shared with SATA.
I think pins 21-23 are for bridge interrupts.

>From your dmesg, it looks like your Intel ethernet is on pin 19.

Thus, most of the devices are sharing interrupt vectors, with INTC
being particularly crowded (I recall you mentioning USB previously).
With a combined total of 56 available GSIs (32 NB, 24 SB), almost
_none_ of these need to be shared (SB may be a little tight).  On top
of that, although I'm not sure if the BIOS should configure/enable it,
it is likely that none of your devices are using MSIs.

The solution:  My understanding is that AMD provides vendors with CIMX
code for providing the same standard NB interrupt configuration shown
in the BIOS guide, which does a far, far better job of spreading out
the interrupts.  Apparently they are not calling that code.  They
should.  Plus, it would be helpful to give the GPP (x4 slot)
interrupts 1 or 2 dedicated SB pins, seeing as someone might put a
busy device there.

Funny thing is, if they enable the NB IOAPIC, the original 2nd IOAPIC
entry they just removed will be correct (suggesting they called some
of the CIMX code).

I would like to hear if they will make this or a similar correction.

- Eric

^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2013-04-25  9:36 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-03-12 19:04 XSA-36 / howto fix broken IVRS ACPI table Hans Mueller
2013-03-12 19:41 ` Boris Ostrovsky
2013-04-23 17:11 ` Hans Mueller
2013-04-24  6:47   ` Jan Beulich
2013-04-24 20:03     ` Hans Mueller
2013-04-25  9:36       ` Jan Beulich
  -- strict thread matches above, loose matches on Subject: below --
2013-04-16  7:20 Eric Shelton
2013-04-23 23:39 Eric Shelton

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.