[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] RE: [PATCH] pci-ioapic-x86-64.patch
Arun Sharma wrote: > Enable PCI, IOAPIC and ACPI on domain 0 for x86-64. > > This patch is based on apic.c,io_apic.c and mpparse.c on x86-64. It > applies changes analogous to the i386 files for paravirtualization. > > The patch was tested on UP and DP with acpi=on and off. We did this > on a 5/10 bk tree + Jun's fixes. The latest bk tree doesn't boot yet > and needs more work. Now I've got it working. I believe this is a bug in Xen introduced very recently. With this additional _hack_ attached, I was able to restore x86-64 XenLinux with latest bk, and now ACPI works with x86-64 Linux (see below). Keir should fix the bug properly. Basically what's happening is that x86-64 xenlinux cannot access machine-to-phys mapping, which is critical info to the guest. config.h: /* Slot 256: read-only guest-accessible machine-to-phys translation table. */ #define RO_MPT_VIRT_START (PML4_ADDR(256)) #define RO_MPT_VIRT_END (RO_MPT_VIRT_START + PML4_ENTRY_BYTES/2) At this point, as you see, L3 does not have USER bit, and x86-64 XenLinux cannot access it; it used to be able to do that until recently. My hack just adds USER bit upon #PF to L3 (see the patch attaced). (XEN) Pagetable walk from ffff8000000417c4: (XEN) L4 = 0000000000ffe065 (XEN) L3 = 000000000167e063 (XEN) New L3 = 000000000167e067 (XEN) L2 = 000000003f4001e7 (2MB) --- __ __ _____ ___ _ _ \ \/ /___ _ __ |___ / / _ \ __| | _____ _____| | \ // _ \ '_ \ |_ \| | | |__ / _` |/ _ \ \ / / _ \ | / \ __/ | | | ___) | |_| |__| (_| | __/\ V / __/ | /_/\_\___|_| |_| |____(_)___/ \__,_|\___| \_/ \___|_| http://www.cl.cam.ac.uk/netos/xen University of Cambridge Computer Laboratory Xen version 3.0-devel (jnakajim@xxxxxxxxxxxx) (gcc version 3.4.2 20041017 (Red Hat 3.4.2-6.fc3)) Fri May 20 23:21:16 PDT 2005 Latest ChangeSet: 2005/05/20 16:06:28 1.1484 428dfcf4ShUaO_5EW8otOGE_3NKxvQ (XEN) Physical RAM map: (XEN) 0000000000000000 - 000000000009fc00 (usable) (XEN) 000000000009fc00 - 00000000000a0000 (reserved) (XEN) 00000000000e6000 - 0000000000100000 (reserved) (XEN) 0000000000100000 - 000000003f630000 (usable) (XEN) 000000003f630000 - 000000003f640000 (ACPI data) (XEN) 000000003f640000 - 000000003f6f0000 (ACPI NVS) (XEN) 000000003f6f0000 - 000000003f800000 (reserved) (XEN) 00000000cff00000 - 00000000f0000000 (reserved) (XEN) 00000000fed13000 - 00000000fed1a000 (reserved) (XEN) 00000000fed1c000 - 00000000fed90000 (reserved) (XEN) System RAM: 1013MB (1038140kB) (XEN) Xen heap: 14MB (14860kB) (XEN) CPU0: Before vendor init, caps: bfebfbff 20100800 00000000, vendor = 0 (XEN) CPU#0: Hyper-Threading is disabled (XEN) VMXON is done (XEN) CPU caps: bfebfbff 20100800 00000000 00000000 (XEN) found SMP MP-table at 000ff780 (XEN) ACPI: RSDP (v000 ACPIAM ) @ 0x00000000000f5 5c0 (XEN) ACPI: RSDT (v001 INTEL @ÃSÂÂÂÅ (XEN) 0x20041130 MSFT 0x00000097) @ 0x000000003f630000 (XEN) ACPI: FADT (v002 INTEL @ÃSÂÂÂÅ (XEN) 0x20041130 MSFT 0x00000097) @ 0x000000003f630200 (XEN) ACPI: MADT (v001 INTEL @ÃSÂÂÂÅ (XEN) 0x20041130 MSFT 0x00000097) @ 0x000000003f630390 (XEN) ACPI: MCFG (v001 INTEL @ÃSÂÂÂÅ (XEN) 0x20041130 MSFT 0x00000097) @ 0x000000003f630400 (XEN) ACPI: MSEG (v001 INTEL @ÃSÂÂÂÅ (XEN) 0x20041130 MSFT 0x00000097) @ 0x000000003f630440 (XEN) ACPI: WDDT (v001 INTEL OEMWDDT 0x00000001 INTL 0x02002026) @ 0x000000003 f6363c0 (XEN) ACPI: DSDT (v001 INTEL @ÃSÂÂÂÅ (XEN) 0x00000001 INTL 0x02002026) @ 0x0000000000000000 (XEN) ACPI: Local APIC address 0xfee00000 (XEN) ACPI: LAPIC (acpi_id[0x01] lapic_id[0x00] enabled) (XEN) Processor #0 15:4 APIC version 20 (XEN) ACPI: LAPIC (acpi_id[0x02] lapic_id[0x81] disabled) (XEN) ACPI: LAPIC_NMI (acpi_id[0x01] dfl dfl lint[0x1]) (XEN) ACPI: LAPIC_NMI (acpi_id[0x02] dfl dfl lint[0x1]) (XEN) ACPI: IOAPIC (id[0x01] address[0xfec00000] gsi_base[0]) (XEN) IOAPIC[0]: apic_id 1, version 32, 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 high 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) Using ACPI (MADT) for SMP configuration information (XEN) Using scheduler: Borrowed Virtual Time (bvt) (XEN) Initializing CPU#0 (XEN) Detected 2992.621 MHz processor. (XEN) CPU0 booted (XEN) Error: only one processor found. (XEN) ENABLING IO-APIC IRQs (XEN) ..TIMER: vector=0x31 pin1=2 pin2=-1 (XEN) Time init: (XEN) .... cpu_freq: 00000000:B25FC8E8 (XEN) .... scale: 00000001:562CC4D1 (XEN) .... Wall Clock: 1116632727s 140000us (XEN) mtrr: v2.0 (20020519) (XEN) *** LOADING DOMAIN 0 *** (XEN) Xen-ELF header found: 'GUEST_OS=linux,GUEST_VER=2.6,XEN_VER=3.0,VIRT_BASE= 0xffffffff80100000,LOADER=generic' (XEN) PHYSICAL MEMORY ARRANGEMENT: (XEN) Dom0 alloc.: 0000000010000000->0000000020000000 (62464 pages to be allo cated) (XEN) VIRTUAL MEMORY ARRANGEMENT: (XEN) Loaded kernel: ffffffff80100000->ffffffff80570086 (XEN) Init. ramdisk: ffffffff80571000->ffffffff80571000 (XEN) Phys-Mach map: ffffffff80571000->ffffffff805ee000 (XEN) Page tables: ffffffff805ee000->ffffffff805f5000 (XEN) Start info: ffffffff805f5000->ffffffff805f6000 (XEN) Boot stack: ffffffff805f6000->ffffffff805f7000 (XEN) TOTAL: ffffffff80000000->ffffffff80800000 (XEN) ENTRY ADDRESS: ffffffff80100000 (XEN) Scrubbing Free RAM: ...........done. (XEN) *** Serial input -> DOM0 (type 'CTRL-a' three times to switch input to Xen ). (XEN) Pagetable walk from ffff8000000417c4: (XEN) L4 = 0000000000ffe065 (XEN) L3 = 000000000167e063 (XEN) New L3 = 000000000167e067 (XEN) L2 = 000000003f4001e7 (2MB) Linux version 2.6.11.10-xen0 (jnakajim@xxxxxxxxxxxxxxxxxxxxxx) (gcc version 3.4. 2 20041017 (Red Hat 3.4.2-6.fc3)) #1 Fri May 20 18:50:14 PDT 2005 Registering memory for bootmem: from a00000, size = 1ea00000 0x20041130 MSFT 0x00000097) @ 0x000000003f630000 0x20041130 MSFT 0x00000097) @ 0x000000003f630200 0x20041130 MSFT 0x00000097) @ 0x000000003f630390 0x20041130 MSFT 0x00000097) @ 0x000000003f630400 0x20041130 MSFT 0x00000097) @ 0x000000003f630440 0x00000001 INTL 0x02002026) @ 0x0000000000000000 ACPI: LAPIC (acpi_id[0x01] lapic_id[0x00] enabled) ACPI: LAPIC (acpi_id[0x02] lapic_id[0x81] disabled) ACPI: LAPIC_NMI (acpi_id[0x01] dfl dfl lint[0x1]) ACPI: LAPIC_NMI (acpi_id[0x02] dfl dfl lint[0x1]) ACPI: IOAPIC (id[0x01] address[0xfec00000] gsi_base[0]) IOAPIC[0]: apic_id 1, version 32, address 0xfec00000, GSI 0-23 ACPI: INT_SRC_OVR (bus 0 bus_irq 0 global_irq 2 dfl dfl) ACPI: INT_SRC_OVR (bus 0 bus_irq 9 global_irq 9 high level) Setting APIC routing to flat Using ACPI (MADT) for SMP configuration information Built 1 zonelists Kernel command line: root=/dev/sda2 ro console=ttyS0,115200n8 Initializing CPU#0 PID hash table entries: 2048 (order: 11, 65536 bytes) Xen reported: 2992.621 MHz processor. Using tsc for high-res timesource Console: colour VGA+ 80x25 Dentry cache hash table entries: 65536 (order: 7, 524288 bytes) Inode-cache hash table entries: 32768 (order: 6, 262144 bytes) Memory: 493568k/512000k available (2596k kernel code, 7872k reserved, 939k data, 428k init) Mount-cache hash table entries: 256 (order: 0, 4096 bytes) CPU: Trace cache: 12K uops, L1 D cache: 16K CPU: L2 cache: 1024K CPU: Genuine Intel(R) CPU 3.00GHz stepping 02 NET: Registered protocol family 16 PCI: Using configuration type 1 ACPI: Subsystem revision 20050211 ACPI: Interpreter enabled ACPI: Using IOAPIC for interrupt routing 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: Power Resource [URP1] (off) ACPI: Power Resource [FDDP] (off) ACPI: Power Resource [LPTP] (off) ACPI: Power Resource [URP2] (off) ACPI: PCI Interrupt Link [LNKA] (IRQs 3 4 5 6 7 9 10 *11 12 14 15) ACPI: PCI Interrupt Link [LNKB] (IRQs 3 4 5 6 7 9 10 11 12 14 15) *0, disabled. ACPI: PCI Interrupt Link [LNKC] (IRQs 3 4 *5 6 7 9 10 11 12 14 15) ACPI: PCI Interrupt Link [LNKD] (IRQs 3 4 5 6 7 9 *10 11 12 14 15) ACPI: PCI Interrupt Link [LNKE] (IRQs 3 4 5 6 7 *9 10 11 12 14 15) ACPI: PCI Interrupt Link [LNKF] (IRQs 3 4 5 6 7 9 10 11 12 14 15) *0, disabled. ACPI: PCI Interrupt Link [LNKG] (IRQs 3 4 5 6 7 9 10 11 12 14 15) *0, disabled. ACPI: PCI Interrupt Link [LNKH] (IRQs 3 4 5 6 7 *9 10 11 12 14 15) 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 bjorn.helgaas@xxxxxx ** so I can fix the driver. PCI: IRQ init ACPI-1138: *** Error: Method execution failed [\MCTH] (Node ffff880000a34f80 ), AE_AML_BUFFER_LIMIT ACPI-1138: *** Error: Method execution failed [\OSFL] (Node ffff8800017bddc0 ), AE_AML_BUFFER_LIMIT ACPI-1138: *** Error: Method execution failed [\_SB_.RMEM._CRS] (Node ffff88 0000a29740), AE_AML_BUFFER_LIMIT ACPI-0158: *** Error: Method execution failed [\_SB_.RMEM._CRS] (Node ffff88 0000a29740), AE_AML_BUFFER_LIMIT Grant table initialized Initializing Cryptographic API serio: i8042 AUX port at 0x60,0x64 irq 12 serio: i8042 KBD port at 0x60,0x64 irq 1 io scheduler noop registered io scheduler anticipatory registered io scheduler deadline registered io scheduler cfq registered Floppy drive(s): fd0 is 1.44M floppy0: no floppy controllers found RAMDISK driver initialized: 16 RAM disks of 16384K size 1024 blocksize loop: loaded (max 8 devices) HP CISS Driver (v 2.6.4) Intel(R) PRO/1000 Network Driver - version 5.6.10.1-k2 Copyright (c) 1999-2004 Intel Corporation. pcnet32.c:v1.30i 06.28.2004 tsbogend@xxxxxxxxxxxxxxxx e100: Intel(R) PRO/100 Network Driver, 3.3.6-k2-NAPI e100: Copyright(c) 1999-2004 Intel Corporation ACPI: PCI interrupt 0000:05:08.0[A] -> GSI 20 (level, low) -> IRQ 20 e100: eth0: e100_probe: addr 0xff8ff000, irq 20, MAC addr 00:0C:F1:FE:01:F9 tun: Universal TUN/TAP device driver, 1.6 tun: (C) 1999-2004 Max Krasnyansky <maxk@xxxxxxxxxxxx> Xen virtual console successfully installed 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 ICH6: IDE controller at PCI slot 0000:00:1f.1 ACPI: PCI interrupt 0000:00:1f.1[A] -> GSI 18 (level, low) -> IRQ 18 ICH6: chipset revision 3 ICH6: not 100% native mode: will probe irqs later ide0: BM-DMA at 0xffa0-0xffa7, BIOS settings: hda:DMA, hdb:pio ide1: BM-DMA at 0xffa8-0xffaf, BIOS settings: hdc:pio, hdd:pio hda: TEAC DW-552G, ATAPI CD/DVD-ROM drive ide0 at 0x1f0-0x1f7,0x3f6 on irq 14 hda: ATAPI 52X DVD-ROM CD-R/RW drive, 2048kB Cache, UDMA(33) Uniform CD-ROM driver Revision: 3.20 Red Hat/Adaptec aacraid driver (1.1.2-lk2 May 20 2005) 3ware Storage Controller device driver for Linux v1.26.02.000. ACPI: PCI interrupt 0000:00:1f.2[B] -> GSI 19 (level, low) -> IRQ 19 ata1: SATA max UDMA/133 cmd 0xE800 ctl 0xE402 bmdma 0xD800 irq 19 ata2: SATA max UDMA/133 cmd 0xE000 ctl 0xDC02 bmdma 0xD808 irq 19 ata1: dev 0 ATA, max UDMA/133, 234441648 sectors: lba48 ata1: dev 0 configured for UDMA/133 scsi0 : ata_piix ATA: abnormal status 0x7F on port 0xE007 ata2: disabling port scsi1 : ata_piix Vendor: ATA Model: ST3120026AS Rev: 3.05 Type: Direct-Access ANSI SCSI revision: 05 SCSI device sda: 234441648 512-byte hdwr sectors (120034 MB) SCSI device sda: drive cache: write back SCSI device sda: 234441648 512-byte hdwr sectors (120034 MB) SCSI device sda: drive cache: write back sda: sda1 sda2 sda3 sda4 < sda5 > Attached scsi disk sda at scsi0, channel 0, id 0, lun 0 Fusion MPT base driver 3.01.18 Copyright (c) 1999-2004 LSI Logic Corporation Fusion MPT SCSI Host driver 3.01.18 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 4096 buckets, 32Kbytes TCP established hash table entries: 16384 (order: 5, 131072 bytes) TCP bind hash table entries: 16384 (order: 5, 131072 bytes) TCP: Hash tables configured (established 16384 bind 16384) NET: Registered protocol family 1 NET: Registered protocol family 17 Bridge firewalling registered kjournald starting. Commit interval 5 seconds EXT3-fs: mounted filesystem with ordered data mode. VFS: Mounted root (ext3 filesystem) readonly. modprobe: FATAL: Could not load /lib/modules/2.6.11.10-xen0/modules.dep: No such file or directory INIT: version 2.85 booting Welcome to Fedora Core Press 'I' to enter interactive startup. Starting udev: [FAILED] Initializing hardware... storage network audio done[ OK ] raidautorun: failed to open /dev/md0: 6 Configuring kernel parameters: [ OK ] Cannot access the Hardware Clock via any known method. Use the --debug option to see the details of our search for an access method. Setting clock (localtime): Fri May 20 16:45:50 PDT 2005 [ OK ] Setting hostname localhost.localdomain: [ OK ] Checking root filesystem [/sbin/fsck.ext3 (1) -- /] fsck.ext3 -a /dev/sda2 /: clean, 156397/2626560 files, 1025968/5242880 blocks [ OK ] Remounting root filesystem in read-write mode: [ OK ] Checking filesystems Checking all file systems. [/sbin/fsck.ext3 (1) -- /boot] fsck.ext3 -a /dev/sda1 /boot: clean, 50/64256 files, 42896/257008 blocks [ OK ] Mounting local filesystems: [ OK ] Enabling local filesystem quotas: [ OK ] Enabling swap space: [ OK ] INIT: Entering runlevel: 3 Entering non-interactive startup Setting network parameters: [ OK ] Bringing up loopback interface: [ OK ] Bringing up interface eth0: [ OK ] Starting system logger: [ OK ] Starting kernel logger: [ OK ] Starting portmap: [ OK ] Starting sshd:[ OK ] Starting xinetd: [ OK ] Starting console mouse services: [ OK ] Starting crond: [ OK ] Starting anacron: [ OK ] Starting atd: [ OK ] Starting system message bus: [ OK ] ... Attachment:
workaround.patch _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |