Skip to contentSkip to conversation

pci-ioapic-0502.patch

PATCH In review Arun Sharma 5 participants 12 messages May 2, 2005 – May 6, 2005

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 pci-ioapic-0502.patch

Move PCI device scanning to dom0. Enable ACPI in dom0. This should greatly reduce the complexity of xen and move the complexity of dealing with hardware bugs and workarounds etc to dom0.

The ioapic local apic (and hence all the vectors) are owned by the hypervisor. Dom0 enables the ACPI interpreter, handles PCI and ACPI based interrupt routing.

New hypercalls to assign vectors and for accessing the ioapic.

Functionality not yet provided:

o acpi=off to support machines with broken or no acpi support.
o support for driver domains

linux-2.6.11-xen-sparse/arch/xen/configs/xen0_defconfig_x86_32 +46 -1
diff -urN a/linux-2.6.11-xen-sparse/arch/xen/configs/xen0_defconfig_x86_32 b/linux-2.6.11-xen-sparse/arch/xen/configs/xen0_defconfig_x86_32
@@ -1,7 +1,7 @@
 #
 # Automatically generated make config: don't edit
 # Linux kernel version: 2.6.11-xen0
-# Wed Apr  6 09:19:05 2005
+# Wed Apr 20 15:27:41 2005
 #
 CONFIG_XEN=y
 CONFIG_ARCH_XEN=y
@@ -133,12 +133,23 @@
 CONFIG_MTRR=y
 CONFIG_HAVE_DEC_LOCK=y
 # CONFIG_REGPARM is not set
+CONFIG_X86_LOCAL_APIC=y
+CONFIG_X86_IO_APIC=y
 
 #
 # Bus options (PCI, PCMCIA, EISA, MCA, ISA)
 #
+CONFIG_X86_UP_APIC=y
+CONFIG_X86_UP_IOAPIC=y
 CONFIG_PCI=y
+# CONFIG_PCI_GOBIOS is not set
+# CONFIG_PCI_GOMMCONFIG is not set
+# CONFIG_PCI_GODIRECT is not set
+CONFIG_PCI_GOANY=y
+CONFIG_PCI_BIOS=y
 CONFIG_PCI_DIRECT=y
+# CONFIG_PCIEPORTBUS is not set
+# CONFIG_PCI_MSI is not set
 CONFIG_PCI_LEGACY_PROC=y
 # CONFIG_PCI_NAMES is not set
 CONFIG_ISA=y
@@ -176,6 +187,8 @@
 # CONFIG_DEBUG_SPINLOCK_SLEEP is not set
 # CONFIG_FRAME_POINTER is not set
 # CONFIG_4KSTACKS is not set
+CONFIG_X86_FIND_SMP_CONFIG=y
+CONFIG_X86_MPPARSE=y
 CONFIG_GENERIC_HARDIRQS=y
 CONFIG_GENERIC_IRQ_PROBE=y
 CONFIG_X86_BIOS_REBOOT=y
@@ -841,6 +854,7 @@
 CONFIG_DRM_SIS=m
 # CONFIG_MWAVE is not set
 # CONFIG_RAW_DRIVER is not set
+# CONFIG_HPET is not set
 # CONFIG_HANGCHECK_TIMER is not set
 
 #
@@ -913,6 +927,37 @@
 # CONFIG_INFINIBAND is not set
 
 #
+# Power management options
+#
+
+#
+# ACPI (Advanced Configuration and Power Interface) Support
+#
+CONFIG_ACPI=y
+CONFIG_ACPI_BOOT=y
+CONFIG_ACPI_INTERPRETER=y
+CONFIG_ACPI_AC=m
+CONFIG_ACPI_BATTERY=m
+CONFIG_ACPI_BUTTON=m
+CONFIG_ACPI_VIDEO=m
+CONFIG_ACPI_FAN=m
+CONFIG_ACPI_PROCESSOR=m
+CONFIG_ACPI_THERMAL=m
+CONFIG_ACPI_ASUS=m
+CONFIG_ACPI_IBM=m
+CONFIG_ACPI_TOSHIBA=m
+# CONFIG_ACPI_CUSTOM_DSDT is not set
+CONFIG_ACPI_BLACKLIST_YEAR=0
+# CONFIG_ACPI_DEBUG is not set
+CONFIG_ACPI_BUS=y
+CONFIG_ACPI_EC=y
+CONFIG_ACPI_POWER=y
+CONFIG_ACPI_PCI=y
+CONFIG_ACPI_SYSTEM=y
+# CONFIG_X86_PM_TIMER is not set
+# CONFIG_ACPI_CONTAINER is not set
+
+#
 # File systems
 #
 CONFIG_EXT2_FS=y
linux-2.6.11-xen-sparse/arch/xen/i386/Kconfig +85 -51

165 lines not on this page · raw message

linux-2.6.11-xen-sparse/arch/xen/i386/kernel/acpi/boot.c +926 -0

926 lines not on this page · raw message

linux-2.6.11-xen-sparse/arch/xen/i386/kernel/acpi/Makefile +9 -0
diff -urN a/linux-2.6.11-xen-sparse/arch/xen/i386/kernel/acpi/Makefile b/linux-2.6.11-xen-sparse/arch/xen/i386/kernel/acpi/Makefile
@@ -0,0 +1,9 @@
+obj-$(CONFIG_ACPI_BOOT)		        := boot.o
+c-obj-$(CONFIG_X86_IO_APIC)	        += earlyquirk.o
+c-obj-$(CONFIG_ACPI_SLEEP)	        += sleep.o wakeup.o
+
+c-link                                  :=
+
+$(patsubst %.o,$(obj)/%.c,$(c-obj-y) $(c-link)):
+	@ln -fsn $(srctree)/arch/i386/kernel/acpi/$(notdir $@) $@
+
linux-2.6.11-xen-sparse/arch/xen/i386/kernel/apic.c +53 -0

53 lines not on this page · raw message

linux-2.6.11-xen-sparse/arch/xen/i386/kernel/io_apic.c +394 -0

394 lines not on this page · raw message

linux-2.6.11-xen-sparse/arch/xen/i386/kernel/Makefile +1 -1
diff -urN a/linux-2.6.11-xen-sparse/arch/xen/i386/kernel/Makefile b/linux-2.6.11-xen-sparse/arch/xen/i386/kernel/Makefile
@@ -30,7 +30,7 @@
 obj-$(CONFIG_X86_SMP)		+= smp.o smpboot.o
 #obj-$(CONFIG_X86_TRAMPOLINE)	+= trampoline.o
 c-obj-$(CONFIG_X86_MPPARSE)	+= mpparse.o
-#obj-$(CONFIG_X86_LOCAL_APIC)	+= apic.o
+obj-$(CONFIG_X86_LOCAL_APIC)	+= apic.o
 c-obj-$(CONFIG_X86_LOCAL_APIC)	+= nmi.o
 c-obj-$(CONFIG_X86_IO_APIC)	+= io_apic.o
 c-obj-$(CONFIG_X86_NUMAQ)	+= numaq.o
linux-2.6.11-xen-sparse/arch/xen/i386/kernel/mpparse.c +1112 -0

1,112 lines not on this page · raw message

linux-2.6.11-xen-sparse/arch/xen/i386/pci/direct.c +0 -81

81 lines not on this page · raw message

linux-2.6.11-xen-sparse/arch/xen/i386/pci/irq.c +1009 -39

169 lines not on this page · raw message

linux-2.6.11-xen-sparse/arch/xen/i386/pci/Makefile +2 -2
diff -urN a/linux-2.6.11-xen-sparse/arch/xen/i386/pci/Makefile b/linux-2.6.11-xen-sparse/arch/xen/i386/pci/Makefile

Lines of this file are not shown. View the raw message.

linux-2.6.11-xen-sparse/arch/xen/Kconfig +4 -0
diff -urN a/linux-2.6.11-xen-sparse/arch/xen/Kconfig b/linux-2.6.11-xen-sparse/arch/xen/Kconfig

Lines of this file are not shown. View the raw message.

linux-2.6.11-xen-sparse/arch/xen/kernel/smp.c +0 -3
diff -urN a/linux-2.6.11-xen-sparse/arch/xen/kernel/smp.c b/linux-2.6.11-xen-sparse/arch/xen/kernel/smp.c

Lines of this file are not shown. View the raw message.

linux-2.6.11-xen-sparse/arch/xen/x86_64/Kconfig +0 -2
diff -urN a/linux-2.6.11-xen-sparse/arch/xen/x86_64/Kconfig b/linux-2.6.11-xen-sparse/arch/xen/x86_64/Kconfig

Lines of this file are not shown. View the raw message.

linux-2.6.11-xen-sparse/drivers/acpi/tables.c +610 -0

610 lines not on this page · raw message

linux-2.6.11-xen-sparse/include/asm-xen/asm-i386/fixmap.h +1 -0
diff -urN a/linux-2.6.11-xen-sparse/include/asm-xen/asm-i386/fixmap.h b/linux-2.6.11-xen-sparse/include/asm-xen/asm-i386/fixmap.h

Lines of this file are not shown. View the raw message.

linux-2.6.11-xen-sparse/include/asm-xen/asm-i386/io_apic.h +230 -0

230 lines not on this page · raw message

linux-2.6.11-xen-sparse/include/asm-xen/asm-i386/mach-xen/irq_vectors.h +3 -0
diff -urN a/linux-2.6.11-xen-sparse/include/asm-xen/asm-i386/mach-xen/irq_vectors.h b/linux-2.6.11-xen-sparse/include/asm-xen/asm-i386/mach-xen/irq_vectors.h

Lines of this file are not shown. View the raw message.

xen/arch/x86/domain_build.c +3 -1
diff -urN a/xen/arch/x86/domain_build.c b/xen/arch/x86/domain_build.c

Lines of this file are not shown. View the raw message.

xen/arch/x86/io_apic.c +1 -1
diff -urN a/xen/arch/x86/io_apic.c b/xen/arch/x86/io_apic.c

Lines of this file are not shown. View the raw message.

xen/arch/x86/Makefile +2 -0
diff -urN a/xen/arch/x86/Makefile b/xen/arch/x86/Makefile

Lines of this file are not shown. View the raw message.

xen/common/physdev.c +44 -5

49 lines not on this page · raw message

xen/drivers/acpi/tables.c +7 -6
diff -urN a/xen/drivers/acpi/tables.c b/xen/drivers/acpi/tables.c

Lines of this file are not shown. View the raw message.

xen/drivers/Makefile +2 -2
diff -urN a/xen/drivers/Makefile b/xen/drivers/Makefile

Lines of this file are not shown. View the raw message.

xen/include/asm-x86/config.h +5 -3
diff -urN a/xen/include/asm-x86/config.h b/xen/include/asm-x86/config.h

Lines of this file are not shown. View the raw message.

xen/include/asm-x86/io_apic.h +2 -0
diff -urN a/xen/include/asm-x86/io_apic.h b/xen/include/asm-x86/io_apic.h

Lines of this file are not shown. View the raw message.

xen/include/public/physdev.h +22 -0
diff -urN a/xen/include/public/physdev.h b/xen/include/public/physdev.h

Lines of this file are not shown. View the raw message.

xen/include/public/xen.h +1 -0
diff -urN a/xen/include/public/xen.h b/xen/include/public/xen.h

Lines of this file are not shown. View the raw message.

xen/Rules.mk +0 -1
diff -urN a/xen/Rules.mk b/xen/Rules.mk

Lines of this file are not shown. View the raw message.

The rest of this diff is not shown. View the raw message.

Part of the diff is not shown here. View the raw message.

#1 lore raw
Quoted 5 lines · Arun Sharma

Move PCI device scanning to dom0. Enable ACPI in dom0. This should greatly reduce the complexity of xen and move the complexity of dealing with hardware bugs and workarounds etc to dom0.

I've applied this patch on my T41p and am using it right now. Here are the results so far:

1) Everything builds and loads properly, the ibm_acpi drivers enables most of the /proc/acpi/ibm entries it's supposed to and they seem to work.
2) I get an oops during startup (doing USB coldplug), dmesg is attached
3) I don't seem to be getting proper battery status (it's always being reported as 0%)

This work looks really promising. Thanks :-)

Regards,
Anthony Liguori

s, LIFO batch:16
Normal zone: 0 pages, LIFO batch:1
HighMem zone: 0 pages, LIFO batch:1
DMI present.
ACPI: RSDP (v002 IBM ) @ 0x000f6df0
ACPI: XSDT (v001 IBM TP-1R 0x00003140 LTP 0x00000000) @ 0x3ff6a6cd
ACPI: FADT (v003 IBM TP-1R 0x00003140 IBM 0x00000001) @ 0x3ff6a800
ACPI: SSDT (v001 IBM TP-1R 0x00003140 MSFT 0x0100000e) @ 0x3ff6a9b4
ACPI: ECDT (v001 IBM TP-1R 0x00003140 IBM 0x00000001) @ 0x3ff76ebc
ACPI: TCPA (v001 IBM TP-1R 0x00003140 PTL 0x00000001) @ 0x3ff76f0e
ACPI: BOOT (v001 IBM TP-1R 0x00003140 LTP 0x00000001) @ 0x3ff76fd8
ACPI: DSDT (v001 IBM TP-1R 0x00003140 MSFT 0x0100000e) @ 0x00000000
IRQ lockup detection disabled
Allocating PCI resources starting at 3ea00000 (gap: 3e960000:c16a0000)
Built 1 zonelists
Kernel command line: dolvm2 root=/dev/ram0 real_root=/dev/volumes/xen3-gentoo-dom0 init=/linuxrc Initializing CPU#0
PID hash table entries: 4096 (order: 12, 65536 bytes)
Xen reported: 1694.537 MHz processor.
Using tsc for high-res timesource
Console: colour VGA+ 80x25
Dentry cache hash table entries: 131072 (order: 7, 524288 bytes)
Inode-cache hash table entries: 65536 (order: 6, 262144 bytes)
Memory: 897792k/917504k available (2885k kernel code, 19392k reserved, 961k data, 164k init, 0k highmem) Checking if this processor honours the WP bit even in supervisor mode... Ok. Calibrating delay loop... 3381.65 BogoMIPS (lpj=16908288)
Mount-cache hash table entries: 512 (order: 0, 4096 bytes)
CPU: After generic identify, caps: a7e9fbbf 00000000 00000000 00000000 00000180 00000000 00000000
CPU: After vendor identify, caps: a7e9fbbf 00000000 00000000 00000000 00000180 00000000 00000000
CPU: L1 I cache: 32K, L1 D cache: 32K
CPU: L2 cache: 1024K
CPU: After all inits, caps: a7e9d3b1 00000000 00000000 00000040 00000180 00000000 00000000
CPU: Intel(R) Pentium(R) M processor 1700MHz stepping 05
Enabling fast FPU save and restore... done.
Enabling unmasked SIMD FPU exception support... done.
Checking 'hlt' instruction... disabled
ACPI: setting ELCR to 0200 (from 0800)
checking if image is initramfs...it isn't (bad gzip magic numbers); looks like an initrd Freeing initrd memory: 5264k freed
NET: Registered protocol family 16
PCI: Using configuration type 1
ACPI: Subsystem revision 20050211
ACPI: Found ECDT
ACPI: Interpreter enabled
ACPI: Using PIC for interrupt routing
ACPI: PCI Interrupt Link [LNKA] (IRQs 3 4 5 6 7 9 10 *11)
ACPI: PCI Interrupt Link [LNKB] (IRQs 3 4 5 6 7 9 10 *11)
ACPI: PCI Interrupt Link [LNKC] (IRQs 3 4 5 6 7 9 10 *11)
ACPI: PCI Interrupt Link [LNKD] (IRQs 3 4 5 6 7 9 10 *11)
ACPI: PCI Interrupt Link [LNKE] (IRQs 3 4 5 6 7 9 10 11) *0, disabled.
ACPI: PCI Interrupt Link [LNKF] (IRQs 3 4 5 6 7 9 10 11) *0, disabled.
ACPI: PCI Interrupt Link [LNKG] (IRQs 3 4 5 6 7 9 10 11) *0, disabled.
ACPI: PCI Interrupt Link [LNKH] (IRQs 3 4 5 6 7 9 10 *11)
ACPI: PCI Root Bridge [PCI0] (00:00)
PCI: Probing PCI hardware (bus 00)
PCI: Ignoring BAR0-3 of IDE controller 0000:00:1f.1
PCI: Transparent bridge - 0000:00:1e.0
ACPI: PCI Interrupt Routing Table [\_SB_.PCI0._PRT]
ACPI: Embedded Controller [EC] (gpe 28)
ACPI: Power Resource [PUBS] (on)
ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.AGP_._PRT]
ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.PCI1._PRT]
xen_mem: Initialising balloon driver.
SCSI subsystem initialized
PCI: Using ACPI for IRQ routing
** PCI interrupts are no longer routed automatically. If this
** causes a device to stop working, it is probably because the
** driver failed to call pci_enable_device(). As a temporary
** workaround, the "pci=routeirq" argument restores the old
** behavior. If this argument makes the device work again,
** please email the output of "lspci" to [email protected]
** so I can fix the driver.
PCI: IRQ init
Grant table initialized
Simple Boot Flag at 0x35 set to 0x1
devfs: 2004-01-31 Richard Gooch ([email protected])
devfs: boot_options: 0x0
Installing knfsd (copyright (C) 1996 [email protected]).
SGI XFS with large block numbers, no debug enabled
Initializing Cryptographic API
Real Time Clock Driver v1.12
Non-volatile memory driver v1.2
hw_random: RNG not detected
ACPI: PS/2 Keyboard Controller [KBD] at I/O 0x60, 0x64, irq 1
ACPI: PS/2 Mouse Controller [MOU] at irq 12
serio: i8042 AUX port at 0x60,0x64 irq 12
serio: i8042 KBD port at 0x60,0x64 irq 1
Serial: 8250/16550 driver $Revision: 1.90 $ 8 ports, IRQ sharing disabled
ACPI: PCI Interrupt Link [LNKB] enabled at IRQ 11
ACPI: PCI interrupt 0000:00:1f.6[B] -> GSI 11 (level, low) -> IRQ 11
io scheduler noop registered
io scheduler anticipatory registered
io scheduler deadline registered
io scheduler cfq registered
Floppy drive(s): fd0 is 1.44M
FDC 0 is a National Semiconductor PC87306
RAMDISK driver initialized: 16 RAM disks of 8192K size 1024 blocksize
loop: loaded (max 8 devices)
WARNING: Failed to register Xen virtual console driver as 'ttyS0'
Event-channel device installed.
Blkif backend is using grant tables.
Initialising Xen netif backend
Blkif frontend is using grant tables.
Uniform Multi-Platform E-IDE driver Revision: 7.00alpha2
ide: Assuming 33MHz system bus speed for PIO modes; override with idebus=xx
ICH4: IDE controller at PCI slot 0000:00:1f.1
PCI: Enabling device 0000:00:1f.1 (0005 -> 0007)
ACPI: PCI Interrupt Link [LNKC] enabled at IRQ 11
ACPI: PCI interrupt 0000:00:1f.1[A] -> GSI 11 (level, low) -> IRQ 11
ICH4: chipset revision 1
ICH4: not 100% native mode: will probe irqs later

    ide0: BM-DMA at 0x1860-0x1867, BIOS settings: hda:DMA, hdb:pio
    ide1: BM-DMA at 0x1868-0x186f, BIOS settings: hdc:DMA, hdd:pio

Probing IDE interface ide0...
hda: FUJITSU MHT2080AH, ATA DISK drive
ide0 at 0x1f0-0x1f7,0x3f6 on irq 14
Probing IDE interface ide1...
hdc: UJDA755yDVD/CDRW, ATAPI CD/DVD-ROM drive
ide1 at 0x170-0x177,0x376 on irq 15
Probing IDE interface ide2...
Probing IDE interface ide3...
Probing IDE interface ide4...
Probing IDE interface ide5...
hda: max request size: 128KiB
hda: 156301488 sectors (80026 MB) w/8192KiB Cache, CHS=65535/16/63, UDMA(100)
hda: cache flushes supported
/dev/ide/host0/bus0/target0/lun0: p1 p2
hdc: ATAPI 24X DVD-ROM CD-R/RW drive, 2048kB Cache, UDMA(33)
Uniform CD-ROM driver Revision: 3.20
st: Version 20041025, fixed bufsize 32768, s/g segs 256
mice: PS/2 mouse device common for all mice
input: AT Translated Set 2 keyboard on isa0060/serio0
input: PS/2 Generic Mouse on isa0060/serio1
NET: Registered protocol family 2
IP: routing cache hash table of 8192 buckets, 64Kbytes
TCP established hash table entries: 131072 (order: 8, 1048576 bytes)
TCP bind hash table entries: 65536 (order: 6, 262144 bytes)
TCP: Hash tables configured (established 131072 bind 65536)
NET: Registered protocol family 1
NET: Registered protocol family 17
RAMDISK: ext2 filesystem found at block 0
RAMDISK: Loading 5264KiB [1 disk] into ram disk... |/-\|/-\|/-\|/-\|/-\|/-\|/-\|/-\|/-\|/-\|/-\|/-\|/-\|/-\|/-\|/-\|/-\|/-\|/-\|/-\|/-\|/-\|/-\|/-\|/-\|/-\|/-\|/-\|/-\|/-\|/-\|/-\|/-\|/-\|/-\|/-\|/-\|/-\|/-\|/-\|/-\|/-\|/-\|/-\|/-\|/-\|/-\|/-\|/-\|/-\|/-\|/-\|/-\|/-\|/-\|/-\|/-\|/-\|/-\|/-\|/-\|/-\|/-\|/-\|/-\|/-\|/-\|/-\|/-\|/-\|/-\|/-\|/-\|/-\|/-\|/-\|/-\|/-\|/-\|/-\|/-\|/-\|done.
VFS: Mounted root (ext2 filesystem).
Freeing unused kernel memory: 164k freed
usbcore: registered new driver usbfs
usbcore: registered new driver hub
ACPI: PCI Interrupt Link [LNKH] enabled at IRQ 11
ACPI: PCI interrupt 0000:00:1d.7[D] -> GSI 11 (level, low) -> IRQ 11
ehci_hcd 0000:00:1d.7: Intel Corp. 82801DB/DBM (ICH4/ICH4-M) USB 2.0 EHCI Controller
PCI: Setting latency timer of device 0000:00:1d.7 to 64
ehci_hcd 0000:00:1d.7: irq 11, pci mem 0xc0000000
ehci_hcd 0000:00:1d.7: new USB bus registered, assigned bus number 1
PCI: cache line size of 32 is not supported by device 0000:00:1d.7
ehci_hcd 0000:00:1d.7: USB 2.0 initialized, EHCI 1.00, driver 10 Dec 2004
hub 1-0:1.0: USB hub found
hub 1-0:1.0: 6 ports detected
usbcore: registered new driver hiddev
usbcore: registered new driver usbhid
drivers/usb/input/hid-core.c: v2.0:USB HID core driver
Initializing USB Mass Storage driver...
usbcore: registered new driver usb-storage
USB Mass Storage support registered.
USB Universal Host Controller Interface driver v2.2
ACPI: PCI Interrupt Link [LNKA] enabled at IRQ 11
ACPI: PCI interrupt 0000:00:1d.0[A] -> GSI 11 (level, low) -> IRQ 11
uhci_hcd 0000:00:1d.0: Intel Corp. 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #1
PCI: Setting latency timer of device 0000:00:1d.0 to 64
uhci_hcd 0000:00:1d.0: irq 11, io base 0x1800
uhci_hcd 0000:00:1d.0: new USB bus registered, assigned bus number 2
hub 2-0:1.0: USB hub found
hub 2-0:1.0: 2 ports detected
ACPI: PCI Interrupt Link [LNKD] enabled at IRQ 11
ACPI: PCI interrupt 0000:00:1d.1[B] -> GSI 11 (level, low) -> IRQ 11
uhci_hcd 0000:00:1d.1: Intel Corp. 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #2
PCI: Setting latency timer of device 0000:00:1d.1 to 64
uhci_hcd 0000:00:1d.1: irq 11, io base 0x1820
uhci_hcd 0000:00:1d.1: new USB bus registered, assigned bus number 3
hub 3-0:1.0: USB hub found
hub 3-0:1.0: 2 ports detected
ACPI: PCI interrupt 0000:00:1d.2[C] -> GSI 11 (level, low) -> IRQ 11
uhci_hcd 0000:00:1d.2: Intel Corp. 82801DB/DBL/DBM (ICH4/ICH4-L/ICH4-M) USB UHCI Controller #3
PCI: Setting latency timer of device 0000:00:1d.2 to 64
uhci_hcd 0000:00:1d.2: irq 11, io base 0x1840
uhci_hcd 0000:00:1d.2: new USB bus registered, assigned bus number 4
hub 4-0:1.0: USB hub found
hub 4-0:1.0: 2 ports detected
ohci_hcd: 2004 Nov 08 USB 1.1 'Open' Host Controller (OHCI) Driver (PCI)
sbp2: $Rev: 1219 $ Ben Collins <[email protected]>
device-mapper: 4.4.0-ioctl (2005-01-12) initialised: [email protected]
libata version 1.10 loaded.
cdrom: open failed.
ReiserFS: dm-1: warning: sh-2021: reiserfs_fill_super: can not find reiserfs on dm-1
kjournald starting. Commit interval 5 seconds
EXT3 FS on dm-1, internal journal
EXT3-fs: mounted filesystem with ordered data mode.
EXT3 FS on dm-1, internal journal
ath_hal: version magic '2.6.11-xen0 PENTIUM4 gcc-3.3' should be '2.6.11-xen0 PENTIUM4 gcc-4.0'
wlan: version magic '2.6.11-xen0 PENTIUM4 gcc-3.3' should be '2.6.11-xen0 PENTIUM4 gcc-4.0'
wlan: version magic '2.6.11-xen0 PENTIUM4 gcc-3.3' should be '2.6.11-xen0 PENTIUM4 gcc-4.0'
wlan_acl: version magic '2.6.11-xen0 PENTIUM4 gcc-3.3' should be '2.6.11-xen0 PENTIUM4 gcc-4.0'
wlan: version magic '2.6.11-xen0 PENTIUM4 gcc-3.3' should be '2.6.11-xen0 PENTIUM4 gcc-4.0'
wlan_ccmp: version magic '2.6.11-xen0 PENTIUM4 gcc-3.3' should be '2.6.11-xen0 PENTIUM4 gcc-4.0'
wlan: version magic '2.6.11-xen0 PENTIUM4 gcc-3.3' should be '2.6.11-xen0 PENTIUM4 gcc-4.0'
wlan_tkip: version magic '2.6.11-xen0 PENTIUM4 gcc-3.3' should be '2.6.11-xen0 PENTIUM4 gcc-4.0'
wlan: version magic '2.6.11-xen0 PENTIUM4 gcc-3.3' should be '2.6.11-xen0 PENTIUM4 gcc-4.0'
wlan_wep: version magic '2.6.11-xen0 PENTIUM4 gcc-3.3' should be '2.6.11-xen0 PENTIUM4 gcc-4.0'
wlan: version magic '2.6.11-xen0 PENTIUM4 gcc-3.3' should be '2.6.11-xen0 PENTIUM4 gcc-4.0'
wlan_xauth: version magic '2.6.11-xen0 PENTIUM4 gcc-3.3' should be '2.6.11-xen0 PENTIUM4 gcc-4.0'
wlan: version magic '2.6.11-xen0 PENTIUM4 gcc-3.3' should be '2.6.11-xen0 PENTIUM4 gcc-4.0'
ath_rate_amrr: version magic '2.6.11-xen0 PENTIUM4 gcc-3.3' should be '2.6.11-xen0 PENTIUM4 gcc-4.0'
wlan: version magic '2.6.11-xen0 PENTIUM4 gcc-3.3' should be '2.6.11-xen0 PENTIUM4 gcc-4.0'
ath_rate_onoe: version magic '2.6.11-xen0 PENTIUM4 gcc-3.3' should be '2.6.11-xen0 PENTIUM4 gcc-4.0'
ath_hal: version magic '2.6.11-xen0 PENTIUM4 gcc-3.3' should be '2.6.11-xen0 PENTIUM4 gcc-4.0'
wlan: version magic '2.6.11-xen0 PENTIUM4 gcc-3.3' should be '2.6.11-xen0 PENTIUM4 gcc-4.0'
ath_rate_onoe: version magic '2.6.11-xen0 PENTIUM4 gcc-3.3' should be '2.6.11-xen0 PENTIUM4 gcc-4.0'
ath_pci: version magic '2.6.11-xen0 PENTIUM4 gcc-3.3' should be '2.6.11-xen0 PENTIUM4 gcc-4.0'
ibm_acpi: IBM ThinkPad ACPI Extras v0.8
ibm_acpi: http://ibm-acpi.sf.net/
ibm_acpi: dock device not present
kjournald starting. Commit interval 5 seconds
EXT3-fs warning: maximal mount count reached, running e2fsck is recommended
EXT3 FS on dm-4, internal journal
EXT3-fs: mounted filesystem with ordered data mode.
Linux agpgart interface v0.100 (c) Dave Jones
agpgart: Detected an Intel 855PM Chipset.
agpgart: Maximum main memory to use for agp memory: 816M
agpgart: AGP aperture is 256M @ 0xd0000000
ACPI: PCI interrupt 0000:00:1f.5[B] -> GSI 11 (level, low) -> IRQ 11
PCI: Setting latency timer of device 0000:00:1f.5 to 64
intel8x0_measure_ac97_clock: measured 49328 usecs
intel8x0: clocking to 48000
Intel(R) PRO/1000 Network Driver - version 5.6.10.1-k2
Copyright (c) 1999-2004 Intel Corporation.
ACPI: PCI interrupt 0000:02:01.0[A] -> GSI 11 (level, low) -> IRQ 11
e1000: eth0: e1000_probe: Intel(R) PRO/1000 Network Connection
ath_hal: version magic '2.6.11-xen0 PENTIUM4 gcc-3.3' should be '2.6.11-xen0 PENTIUM4 gcc-4.0'
wlan: version magic '2.6.11-xen0 PENTIUM4 gcc-3.3' should be '2.6.11-xen0 PENTIUM4 gcc-4.0'
ath_rate_onoe: version magic '2.6.11-xen0 PENTIUM4 gcc-3.3' should be '2.6.11-xen0 PENTIUM4 gcc-4.0'
ath_pci: version magic '2.6.11-xen0 PENTIUM4 gcc-3.3' should be '2.6.11-xen0 PENTIUM4 gcc-4.0'
e1000: eth0: e1000_watchdog: NIC Link is Up 100 Mbps Full Duplex

Unable to handle kernel paging request at virtual address 40ffedb8
 printing eip:
c011d609
*pde = ma 00000000 pa 55555000
 [<c0140ef2>] vma_merge+0xd0/0x1ec
 [<c011d9f4>] proc_dointvec+0x47/0x4b
 [<c011d5ec>] do_proc_dointvec_conv+0x0/0x4b
 [<c011d2fa>] do_rw_proc+0x89/0x95
 [<c011d386>] proc_writesys+0x2f/0x33
 [<c014d428>] vfs_write+0x99/0x117
 [<c014d565>] sys_write+0x4b/0x74
 [<c01090cc>] syscall_call+0x7/0xb
Oops: 0002 [#1]
Modules linked in: e1000 snd_intel8x0 snd_ac97_codec intel_agp agpgart ibm_acpi snd_pcm_oss snd_pcm snd_timer snd_page_alloc snd_mixer_oss snd sata_via sata_svw sata_sil sata_promise libata dm_mod sbp2 ohci1394 ieee1394 ohci_hcd uhci_hcd usb_storage usbhid ehci_hcd usbcore
CPU:    0
EIP:    0061:[<c011d609>]    Not tainted VLI
EFLAGS: 00010246   (2.6.11-xen0) 

EIP is at do_proc_dointvec_conv+0x1d/0x4b
eax: 00000001 ebx: 40ffedb8 ecx: f6c09ef4 edx: f6c09ef8
esi: b7fe8001 edi: 00000001 ebp: 00000001 esp: f6c09eac
ds: 007b es: 007b ss: 0069
Process runscript.sh (pid: 10216, threadinfo=f6c08000 task=f6eb2550)

Stack: 00000000 c011d920 f6c09ef8 f6c09ef4 40ffedb8 00000001 00000000 40ffedb8 
       00000001 00000001 00000000 31b1afa0 f6debb00 c0140ef2 f76e4c24 f71ee4ec 
       00000006 f6c09edc 00000001 00000000 f740a380 f74140e0 00000001 f6c09fac 
Call Trace:
 [<c011d920>] do_proc_dointvec+0x2e9/0x376
 [<c0140ef2>] vma_merge+0xd0/0x1ec
 [<c011d9f4>] proc_dointvec+0x47/0x4b
 [<c011d5ec>] do_proc_dointvec_conv+0x0/0x4b
 [<c011d2fa>] do_rw_proc+0x89/0x95
 [<c011d386>] proc_writesys+0x2f/0x33
 [<c014d428>] vfs_write+0x99/0x117
 [<c014d565>] sys_write+0x4b/0x74
 [<c01090cc>] syscall_call+0x7/0xb
Code: e5 0f 00 00 89 c8 83 c4 18 5b 5e 5f 5d c3 53 8b 54 24 08 8b 4c 24 0c 8b 5c 24 10 8b 44 24 14 85 c0 74 0e 8b 02 85 c0 75 1a 8b 01 <89> 03 31 c0 5b c3 8b 03 85 c0 78 14 c7 02 00 00 00 00 89 01 31 
 <6>parport0: PC-style at 0x3bc [PCSPP,TRISTATE]

lp0: using parport0 (polling).

_______________________________________________
Xen-devel mailing list
[email protected]
http://lists.xensource.com/xen-devel

#2 lore raw

Anthony Liguori wrote:
[..]

Quoted 2 lines

2) I get an oops during startup (doing USB coldplug), dmesg is attached
3) I don't seem to be getting proper battery status (it's always being reported as 0%)

Hi Anthony,

Do these two problems happen on the native i386 kernel built with the same source base? If they are reproducible on the native kernel, we should have linux-acpi folks look at it.

-Arun

#3 lore raw
Quoted 3 lines · Arun Sharma

Hi Anthony,

Do these two problems happen on the native i386 kernel built with the same source base? If they are reproducible on the native kernel, we should have linux-acpi folks look at it.

No, they aren't. On a Vanilla 2.6.11 kernel with the same config (with the exception of the few Xen specific CONFIG options) these issues don't appear.

They appear reliably with the patch. Any suggestions on how I can get more information to help you out?

Regards,
Anthony Liguori

Quoted 2 lines

-Arun

#4 lore raw
Quoted 2 lines · Anthony Liguori

They appear reliably with the patch. Any suggestions on how I can get more information to help you out?

I'm getting one of these beasts (either a T41/T42) tomorrow. If you can send me your .config and runscript.sh, I'll try to reproduce it.

-Arun

#5 lore raw
Quoted 6 lines · Arun Sharma
Quoted 2 lines · Anthony Liguori

They appear reliably with the patch. Any suggestions on how I can get more information to help you out?

I'm getting one of these beasts (either a T41/T42) tomorrow. If you can send me your .config and runscript.sh, I'll try to reproduce it.

I've entered a bug (#19) in bugzilla about it to contain the necessary files.

Regards,
Anthony Liguori

Quoted 3 lines

-Arun

#6 lore raw
In reply to Arun Sharma

Hi!

Ah great! I've been looking forward to that patch for some time now :-) Unfortunately it isn't working on my machine. :-/

xen boots, but dom0 freezes while loading the sata-driver. It is the "silicon image" sata-driver from the scsi-section in kernel-config.
The system freezes after the line "applying Seagate errata fix" (there are some issuse between silicon image and seagate)

There exist another driver for that controller in the ATA-section. When using this driver the system does not freeze, but stops at sata-driver-loading as well.
But here after some time I get a "lost interrupt" message.

When booting without your patch the sata-controller uses irg 5 and shares it with 7 other pci-devices.
With your patch the controller uses irq 18, so io-apic is used.

The system is an amd duron with nforce2 chipset.

patrick

Quoted 19 lines · Arun Sharma
Quoted 17 lines

Move PCI device scanning to dom0. Enable ACPI in dom0. This should greatly reduce the complexity of xen and move the complexity of dealing with hardware bugs and workarounds etc to dom0.

The ioapic local apic (and hence all the vectors) are owned by the hypervisor. Dom0 enables the ACPI interpreter, handles PCI and ACPI based interrupt routing.

New hypercalls to assign vectors and for accessing the ioapic.

Functionality not yet provided:

o acpi=off to support machines with broken or no acpi support.
o support for driver domains

#7 lore raw
Quoted 4 lines · Patrick Scharrenberg

Hi!

Ah great! I've been looking forward to that patch for some time now :-) Unfortunately it isn't working on my machine. :-/

Did you have acpi=off by any chance? It'd be great if you can attach the
native dmesg and the dmesg with the patch into a bugzilla at:

http://bugzilla.xensource.com/

-Arun

#8 lore raw
Quoted 2 lines

Did you have acpi=off by any chance?

I tryed that. Then the System boots well like without the patch.

Quoted 2 lines

It'd be great if you can attach the native dmesg and the dmesg with the patch into a bugzilla

I just did this. Its bug #23.
Feel free to contact me if you need more testing and logs.

Patrick

#9 lore raw
In reply to Arun Sharma

Hi!

Great! the system is booting now with ioapic enabled.

acpi=off does not work for me now.
The system boots, but then there are interrupt-timeouts from the sata and ethernet - controller.
should I open another bugreport?

And I have another problem, see new post for "physdev_dom0_hide" Maybe it has something to do with this patch, too?

Patrick

#10 lore raw
Quoted 8 lines · Patrick Scharrenberg

Hi!

Great! the system is booting now with ioapic enabled.

acpi=off does not work for me now.
The system boots, but then there are interrupt-timeouts from the sata and ethernet - controller.
should I open another bugreport?

This is pretty much unsupportable -- if Xen has detected IOAPICs and started to initialise them, it is not really possible to go back to a full legacy PIC mode. If you want to boot 'acpi=off' then you need to add the 'ignorebiostables' option as a Xen boot parameter. This will prevent Xen from finding the IOAPIC and Xen+domain0 can both boot in blissful ignorance.

What is needed is 'acpi=' config option for Xen as well as XenLinux, and require the option to be set the same for both Xen and domain0 (we could enforce this at boot time by propagating the Xen parameter onto the domain0 command line). This is something I intend to implement after upgrading the apic/mpparse/acpi support in Xen to Linux-2.6 equivalent (it's all currently based on Linux-2.4 source files).

Quoted 2 lines

And I have another problem, see new post for "physdev_dom0_hide" Maybe it has something to do with this patch, too?

I haven't seen the post, but physdev_dom0_hide has had no effect since we applied the ACPI patch earlier this week. Currently we do not support device drivers outside domain0 (they have no way of safely accessing PCI space) so there is no point in supporting hiding of pci devices from dom0 anyway. :-)

Getting support for driver domains back is a priority for the 3.0 release.

-- Keir

#11 lore raw
Quoted 6 lines · Keir Fraser

This is pretty much unsupportable -- if Xen has detected IOAPICs and started to initialise them, it is not really possible to go back to a full legacy PIC mode. If you want to boot 'acpi=off' then you need to add the 'ignorebiostables' option as a Xen boot parameter. This will prevent Xen from finding the IOAPIC and Xen+domain0 can both boot in blissful ignorance.

If acpi=off implies ignorebiostables, then all checks for ignorebiostables should also check for acpi=off.

shap