Subject: ACPI and Xen (was: ioapic: adaption required?)
To: None <port-xen@netbsd.org>
From: Christoph Egger <Christoph_Egger@gmx.de>
List: port-xen
Date: 10/11/2007 09:36:49
Hi!

I re-run the Dom0 kernel with -current from today,
that includes joerg's ioapic fix from yesterday.
The new boot message where xen complains has been
reduced to pin 2 and pin4:


mainbus0: scanning 0x9fc00 to 0x9fff0 for MP signature
mainbus0: scanning 0x8d400 to 0x8d7f0 for MP signature
mainbus0: scanning 0xf0000 to 0xffff0 for MP signature
mainbus0: MP floating pointer found in bios at 0xff780
mainbus0: MP config table at 0xf11a0, 1372 bytes long
cpu0 at mainbus0 apid 0: (boot processor)
cpu1 at mainbus0 apid 1: (application processor)
ioapic0 at mainbus0 apid 2
ioapic0: pa 0xfec00000, virtual wire mode, version 3, 24 pins
(XEN) io_apic.c:2132: 
(XEN) ioapic_guest_write: apic=0, pin=2, old_irq=0, new_irq=-1
(XEN) ioapic_guest_write: old_entry=000009f0, new_entry=00010900
(XEN) ioapic_guest_write: Attempt to remove IO-APIC pin of in-use IRQ!
(XEN) io_apic.c:2132: 
(XEN) ioapic_guest_write: apic=0, pin=4, old_irq=4, new_irq=-1
(XEN) ioapic_guest_write: old_entry=000009f1, new_entry=00010900
(XEN) ioapic_guest_write: Attempt to remove IO-APIC pin of in-use IRQ!
ioapic1 at mainbus0 apid 3
ioapic1: pa 0xfecc0000, virtual wire mode, version 3, 24 pins
hypervisor0 at mainbus0
vcpu0 at hypervisor0: (uniprocessor)
vcpu0: AMD Unknown K7 (Athlon) (686-class), 2399.73 MHz, id 0x40f32
vcpu0: features 178bfbff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR>
vcpu0: features 178bfbff<PGE,MCA,CMOV,PAT,PSE36,MPC,MMX>
vcpu0: features 178bfbff<FXSR,SSE,SSE2,HTT>

Actually the CPU indentification needs an update. This is a Dual-Core K8 RevF.

[...]
viaide0 at pci0 dev 15 function 0
viaide0: VIA Technologies VT8237A SATA Controller (rev. 0x80)
viaide0: bus-master DMA support present
viaide0: primary channel configured to native-PCI mode
ioapic0: int21 1a9a8<vector=a8,delmode=1,logical,actlo,level,masked,dest=0> 
3000000<target=3>
viaide0: using ioapic0 pin 21, event channel 6 for native-PCI interrupt
atabus2 at viaide0 channel 0
viaide0: secondary channel configured to native-PCI mode
atabus3 at viaide0 channel 1
viaide1 at pci0 dev 15 function 1
viaide1: VIA Technologies VT8237A ATA133 controller
viaide1: bus-master DMA support present
viaide1: primary channel configured to compatibility mode
viaide1: primary channel using event channel 7 for irq 14
atabus4 at viaide1 channel 0
viaide1: secondary channel configured to compatibility mode
viaide1: secondary channel using event channel 8 for irq 15
atabus5 at viaide1 channel 1
[...]
atapibus0 at atabus4: 2 targets
viaide1:0:1: lost interrupt
        type: ata tc_bcount: 512 tc_skip: 0
cd0 at atapibus0 drive 1: <LITE-ON DVD SHD-16P1S, , GS05> cdrom removable
viaide1:0:1: lost interrupt
        type: ata tc_bcount: 512 tc_skip: 0
viaide1:0:1: lost interrupt
        type: ata tc_bcount: 512 tc_skip: 0
cd0: 32-bit data port
viaide1:0:1: lost interrupt
        type: ata tc_bcount: 0 tc_skip: 0
cd0: drive supports PIO mode 4viaide1:0:1: lost interrupt
        type: ata tc_bcount: 0 tc_skip: 0
, DMA mode 2viaide1:0:1: lost interrupt
        type: ata tc_bcount: 0 tc_skip: 0
, Ultra-DMA mode 2 (Ultra/33)
wd0 at atabus4 drive 0viaide1:0:0: lost interrupt
        type: ata tc_bcount: 512 tc_skip: 0
: <WDC WD400BB-22JHC0>
wd0: drive supports 16-sector PIO transfers, LBA addressing
wd0: 38166 MB, 77545 cyl, 16 head, 63 sec, 512 bytes/sect x 78165360 sectors
viaide1:0:0: lost interrupt
        type: ata tc_bcount: 512 tc_skip: 0
viaide1:0:0: lost interrupt
        type: ata tc_bcount: 512 tc_skip: 0
wd0: 32-bit data port
viaide1:0:0: lost interrupt
        type: ata tc_bcount: 0 tc_skip: 0
wd0: drive supports PIO mode 4viaide1:0:0: lost interrupt
        type: ata tc_bcount: 0 tc_skip: 0
, DMA mode 2viaide1:0:0: lost interrupt
        type: ata tc_bcount: 0 tc_skip: 0
, Ultra-DMA mode 5 (Ultra/100)
wd0(viaide1:0:0): using PIO mode 4, Ultra-DMA mode 5 (Ultra/100) (using DMA)
cd0(viaide1:0:1): using PIO mode 4, Ultra-DMA mode 2 (Ultra/33) (using DMA)
Searching for RAID components...
viaide1:0:0: lost interrupt
        type: ata tc_bcount: 512 tc_skip: 0
viaide1:0:0: lost interrupt
        type: ata tc_bcount: 512 tc_skip: 0
viaide1:0:0: lost interrupt
        type: ata tc_bcount: 512 tc_skip: 0
viaide1:0:0: lost interrupt
        type: ata tc_bcount: 512 tc_skip: 0
viaide1:0:0: lost interrupt
        type: ata tc_bcount: 1024 tc_skip: 0
viaide1:0:0: lost interrupt
        type: ata tc_bcount: 0 tc_skip: 0

The interrupt problem is still there.

@joerg: You asked me in private mail, what IRQs 2 and 4 are used for.
IRQ 4 is for the serial console and IRQ is the timer, Xen uses for scheduling.

For detailed information, this is the xen boot message:

(XEN) Console output is synchronous.
(XEN) Command line: nopae sync_console dom0_mem=512m com1=115200,8n1
(XEN) Video information:
(XEN)  VGA is text mode 80x25, font 8x16
(XEN)  VBE/DDC methods: none; EDID transfer time: 2 seconds
(XEN)  EDID info not retrieved because no DDC retrieval method detected
(XEN) Disc information:
(XEN)  Found 1 MBR signatures
(XEN)  Found 1 EDD information structures
(XEN) WARNING: Only the first 4 GB of the physical memory map can be accessed 
by Xen in 32-bit mode.
(XEN) Truncating memory map to 4194304kB
(XEN) Xen-e820 RAM map:
(XEN)  0000000000000000 - 000000000009d000 (usable)
(XEN)  000000000009dc00 - 00000000000a0000 (reserved)
(XEN)  00000000000e4000 - 0000000000100000 (reserved)
(XEN)  0000000000100000 - 00000000dffb0000 (usable)
(XEN)  00000000dffb0000 - 00000000dffbe000 (ACPI data)
(XEN)  00000000dffbe000 - 00000000dffe0000 (ACPI NVS)
(XEN)  00000000dffe0000 - 00000000e0000000 (reserved)
(XEN)  00000000fec00000 - 00000000fec01000 (reserved)
(XEN)  00000000fecc0000 - 00000000fecc1000 (reserved)
(XEN)  00000000ff780000 - 0000000100000000 (reserved)
(XEN) System RAM: 3583MB (3669300kB)
(XEN) ACPI: RSDP (v000 ACPIAM                                ) @ 0x000fa960
(XEN) ACPI: RSDT (v001 NEC             0x12000607 MSFT 0x00000097) @ 
0xdffb0000
(XEN) ACPI: FADT (v002 A_M_I_ OEMFACP  0x12000607 MSFT 0x00000097) @ 
0xdffb0200
(XEN) ACPI: MADT (v001 A_M_I_ OEMAPIC  0x12000607 MSFT 0x00000097) @ 
0xdffb0390
(XEN) ACPI: MCFG (v001 A_M_I_ OEMMCFG  0x12000607 MSFT 0x00000097) @ 
0xdffb0400
(XEN) ACPI: SLIC (v001 NEC             0x12000607 MSFT 0x00000097) @ 
0xdffb0440
(XEN) ACPI: OEMB (v001 A_M_I_ AMI_OEM  0x12000607 MSFT 0x00000097) @ 
0xdffbe040
(XEN) ACPI: DSDT (v001  A0498 A0498000 0x00000000 INTL 0x20060113) @ 
0x00000000
(XEN) NUMA turned off
(XEN) Faking a node at 0000000000000000-00000000dffb0000
(XEN) Xen heap: 9MB (10128kB)
(XEN) Domain heap initialised: DMA width 32 bits
(XEN) PAE disabled.
(XEN) found SMP MP-table at 000ff780
(XEN) DMI present.
(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[dffbe00c], vec_size[20]
(XEN) ACPI: Local APIC address 0xfee00000
(XEN) ACPI: LAPIC (acpi_id[0x01] lapic_id[0x00] enabled)
(XEN) Processor #0 15:3 APIC version 16
(XEN) ACPI: LAPIC (acpi_id[0x02] lapic_id[0x01] enabled)
(XEN) Processor #1 15:3 APIC version 16
(XEN) ACPI: IOAPIC (id[0x02] address[0xfec00000] gsi_base[0])
(XEN) IOAPIC[0]: apic_id 2, version 3, address 0xfec00000, GSI 0-23
(XEN) ACPI: IOAPIC (id[0x03] address[0xfecc0000] gsi_base[24])
(XEN) IOAPIC[1]: apic_id 3, version 3, address 0xfecc0000, GSI 24-47
(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 2 I/O APICs
(XEN) Using ACPI (MADT) for SMP configuration information
(XEN) Using scheduler: SMP Credit Scheduler (credit)
(XEN) Initializing CPU#0
(XEN) Detected 2399.798 MHz processor.
(XEN) CPU0: AMD Flush Filter disabled
(XEN) CPU: L1 I Cache: 64K (64 bytes/line), D cache 64K (64 bytes/line)
(XEN) CPU: L2 Cache: 1024K (64 bytes/line)
(XEN) CPU 0(2) -> Core 0
(XEN) AMD SVM: ASIDs disabled. 
(XEN) HVM: SVM enabled
(XEN) CPU0: AMD K8 machine check reporting enabled.
(XEN) CPU0: AMD Athlon(tm) 64 X2 Dual Core Processor 4800+ stepping 02
(XEN) Booting processor 1/1 eip 90000
(XEN) Initializing CPU#1
(XEN) CPU1: AMD Flush Filter disabled
(XEN) CPU: L1 I Cache: 64K (64 bytes/line), D cache 64K (64 bytes/line)
(XEN) CPU: L2 Cache: 1024K (64 bytes/line)
(XEN) CPU 1(2) -> Core 1
(XEN) AMD: Disabling C1 Clock Ramping Node #0
(XEN) AMD SVM: ASIDs disabled. 
(XEN) CPU1: AMD K8 machine check reporting enabled.
(XEN) CPU1: AMD Athlon(tm) 64 X2 Dual Core Processor 4800+ stepping 02
(XEN) Total of 2 processors activated.
(XEN) ENABLING IO-APIC IRQs
(XEN)  -> Using new ACK method
(XEN) ..TIMER: vector=0xF0 apic1=0 pin1=2 apic2=0 pin2=0
(XEN) checking TSC synchronization across 2 CPUs: 
(XEN) CPU#0 had -1 usecs TSC skew, fixed it up.
(XEN) CPU#1 had 1 usecs TSC skew, fixed it up.
(XEN) Platform timer overflows in 234 jiffies.
(XEN) Platform timer is 3.579MHz ACPI PM Timer
(XEN) Brought up 2 CPUs
(XEN) <PM> ACPI (supports S3)