malc wrote: > On Mon, 5 Apr 2010, Alexander Graf wrote: > > >> On 05.04.2010, at 14:41, malc wrote: >> >> >>> On Mon, 5 Apr 2010, Paul Brook wrote: >>> >>> >>>> I think I got all the tcg backend bits right, but can't test most of them. >>>> Please test and report any problems. >>>> >>>> Historically the qemu tlb "addend" field was used for both RAM and IO >>>> accesses, >>>> so needed to be able to hold both host addresses (unsigned long) and guest >>>> physical addresses (target_phys_addr_t). However since the introduction of >>>> the iotlb field it has only been used for RAM accesses. >>>> >>>> This means we can change the type of addend to unsigned long, and remove >>>> associated hacks in the big-endian TCG backends. >>>> >>>> We can also remove the host dependence from target_phys_addr_t. >>>> >>>> Signed-off-by: Paul Brook <p...@codesourcery.com> >>>> >>> PPC32 seems to be operational. >>> >>> Alexander: Can you please test it a bit more thoroughly, my PPCs are a bit >>> on the slow side. >>> >> Test what exactly? Booting random guests with TCG on PPC? >> > > Booting 64 bit guests with 32 bit ppc hosts specifically. >
This is what I get when booting an x86_64 11.2 installation iso on a ppc32 host (970MP with 32-bit userland): ag...@lychee:~/git/qemu> ./x86_64-softmmu/qemu-system-x86_64 -vnc :5 -serial stdio -m 1024 -cdrom /mounts/schnell/CD-ARCHIVE/11.2/iso/openSUSE-11.2-DVD-x86_64.iso [ 0.000000] Initializing cgroup subsys cpuset [ 0.000000] Initializing cgroup subsys cpu [ 0.000000] Linux version 2.6.31.5-0.1-default (ge...@buildhost) (gcc version 4.4.1 [gcc-4_4-branch revision 150839] (SUSE Linux) ) #1 SMP 2009-10-26 15:49:03 +0100 [ 0.000000] Command line: BOOT_IMAGE=linux initrd=initrd,08000600.spl splash=silent vga=0x314 console=tty console=ttyS0 [ 0.000000] KERNEL supported cpus: [ 0.000000] Intel GenuineIntel [ 0.000000] AMD AuthenticAMD [ 0.000000] Centaur CentaurHauls [ 0.000000] BIOS-provided physical RAM map: [ 0.000000] BIOS-e820: 0000000000000000 - 000000000009f400 (usable) [ 0.000000] BIOS-e820: 000000000009f400 - 00000000000a0000 (reserved) [ 0.000000] BIOS-e820: 00000000000f0000 - 0000000000100000 (reserved) [ 0.000000] BIOS-e820: 0000000000100000 - 000000003fffd000 (usable) [ 0.000000] BIOS-e820: 000000003fffd000 - 0000000040000000 (reserved) [ 0.000000] BIOS-e820: 00000000fffc0000 - 0000000100000000 (reserved) [ 0.000000] DMI 2.4 present. [ 0.000000] last_pfn = 0x3fffd max_arch_pfn = 0x400000000 [ 0.000000] x86 PAT enabled: cpu 0, old 0x0, new 0x7010600070106 [ 0.000000] Scanning 1 areas for low memory corruption [ 0.000000] modified physical RAM map: [ 0.000000] modified: 0000000000000000 - 0000000000001000 (usable) [ 0.000000] modified: 0000000000001000 - 0000000000006000 (reserved) [ 0.000000] modified: 0000000000006000 - 000000000009f400 (usable) [ 0.000000] modified: 000000000009f400 - 00000000000a0000 (reserved) [ 0.000000] modified: 00000000000f0000 - 0000000000100000 (reserved) [ 0.000000] modified: 0000000000100000 - 000000003fffd000 (usable) [ 0.000000] modified: 000000003fffd000 - 0000000040000000 (reserved) [ 0.000000] modified: 00000000fffc0000 - 0000000100000000 (reserved) [ 0.000000] init_memory_mapping: 0000000000000000-000000003fffd000 [ 0.000000] RAMDISK: 3e7d8000 - 3ffdb28b [ 0.000000] ACPI: RSDP 00000000000f8870 00014 (v00 BOCHS ) [ 0.000000] ACPI: RSDT 000000003fffde30 00034 (v01 BOCHS BXPCRSDT 00000001 BXPC 00000001) [ 0.000000] ACPI: FACP 000000003ffffe70 00074 (v01 BOCHS BXPCFACP 00000001 BXPC 00000001) [ 0.000000] ACPI: DSDT 000000003fffdfd0 01E22 (v01 BXPC BXDSDT 00000001 INTL 20090123) [ 0.000000] ACPI: FACS 000000003ffffe00 00040 [ 0.000000] ACPI: SSDT 000000003fffdf90 00037 (v01 BOCHS BXPCSSDT 00000001 BXPC 00000001) [ 0.000000] ACPI: APIC 000000003fffdeb0 00072 (v01 BOCHS BXPCAPIC 00000001 BXPC 00000001) [ 0.000000] ACPI: HPET 000000003fffde70 00038 (v01 BOCHS BXPCHPET 00000001 BXPC 00000001) [ 0.000000] No NUMA configuration found [ 0.000000] Faking a node at 0000000000000000-000000003fffd000 [ 0.000000] Bootmem setup node 0 0000000000000000-000000003fffd000 [ 0.000000] NODE_DATA [0000000000009000 - 0000000000020fff] [ 0.000000] bootmap [0000000000021000 - 0000000000028fff] pages 8 [ 0.000000] (7 early reservations) ==> bootmem [0000000000 - 003fffd000] [ 0.000000] #0 [0000000000 - 0000001000] BIOS data page ==> [0000000000 - 0000001000] [ 0.000000] #1 [0000006000 - 0000008000] TRAMPOLINE ==> [0000006000 - 0000008000] [ 0.000000] #2 [0001000000 - 0001c6e8b0] TEXT DATA BSS ==> [0001000000 - 0001c6e8b0] [ 0.000000] #3 [003e7d8000 - 003ffdb28b] RAMDISK ==> [003e7d8000 - 003ffdb28b] [ 0.000000] #4 [000009f400 - 0000100000] BIOS reserved ==> [000009f400 - 0000100000] [ 0.000000] #5 [0001c6f000 - 0001c6f049] BRK ==> [0001c6f000 - 0001c6f049] [ 0.000000] #6 [0000008000 - 0000009000] PGTABLE ==> [0000008000 - 0000009000] [ 0.000000] found SMP MP-table at [ffff8800000f88c0] f88c0 [ 0.000000] Zone PFN ranges: [ 0.000000] DMA 0x00000000 -> 0x00001000 [ 0.000000] DMA32 0x00001000 -> 0x00100000 [ 0.000000] Normal 0x00100000 -> 0x00100000 [ 0.000000] Movable zone start PFN for each node [ 0.000000] early_node_map[3] active PFN ranges [ 0.000000] 0: 0x00000000 -> 0x00000001 [ 0.000000] 0: 0x00000006 -> 0x0000009f [ 0.000000] 0: 0x00000100 -> 0x0003fffd [ 0.000000] ACPI: PM-Timer IO Port: 0xb008 [ 0.000000] ACPI: LAPIC (acpi_id[0x00] lapic_id[0x00] enabled) [ 0.000000] ACPI: IOAPIC (id[0x01] address[0xfec00000] gsi_base[0]) [ 0.000000] IOAPIC[0]: apic_id 1, version 17, address 0xfec00000, GSI 0-23 [ 0.000000] ACPI: INT_SRC_OVR (bus 0 bus_irq 0 global_irq 2 dfl dfl) [ 0.000000] ACPI: INT_SRC_OVR (bus 0 bus_irq 5 global_irq 5 high level) [ 0.000000] ACPI: INT_SRC_OVR (bus 0 bus_irq 9 global_irq 9 high level) [ 0.000000] ACPI: INT_SRC_OVR (bus 0 bus_irq 10 global_irq 10 high level) [ 0.000000] ACPI: INT_SRC_OVR (bus 0 bus_irq 11 global_irq 11 high level) [ 0.000000] Using ACPI (MADT) for SMP configuration information [ 0.000000] ACPI: HPET id: 0x8086a201 base: 0xfed00000 [ 0.000000] SMP: Allowing 1 CPUs, 0 hotplug CPUs [ 0.000000] PM: Registered nosave memory: 0000000000001000 - 0000000000006000 [ 0.000000] PM: Registered nosave memory: 000000000009f000 - 00000000000a0000 [ 0.000000] PM: Registered nosave memory: 00000000000a0000 - 00000000000f0000 [ 0.000000] PM: Registered nosave memory: 00000000000f0000 - 0000000000100000 [ 0.000000] Allocating PCI resources starting at 40000000 (gap: 40000000:bffc0000) [ 0.000000] NR_CPUS:512 nr_cpumask_bits:512 nr_cpu_ids:1 nr_node_ids:1 [ 0.000000] PERCPU: Embedded 28 pages at ffff880001ca3000, static data 82912 bytes [ 0.000000] Built 1 zonelists in Node order, mobility grouping on. Total pages: 258355 [ 0.000000] Policy zone: DMA32 [ 0.000000] Kernel command line: BOOT_IMAGE=linux initrd=initrd,08000600.spl splash=silent vga=0x314 console=tty console=ttyS0 [ 0.000000] bootsplash: silent mode. [ 0.000000] PID hash table entries: 4096 (order: 12, 32768 bytes) [ 0.000000] Initializing CPU#0 [ 0.000000] Checking aperture... [ 0.000000] No AGP bridge found [ 0.000000] Memory: 996000k/1048564k available (5504k kernel code, 408k absent, 52156k reserved, 4533k data, 1020k init) [ 0.000000] Hierarchical RCU implementation. [ 0.000000] NR_IRQS:4352 nr_irqs:256 [ 0.000000] Fast TSC calibration failed [ 0.000000] TSC: PIT calibration matches PMTIMER. 2 loops [ 0.000000] Detected 14.226 MHz processor. [ 0.004000] Console: colour dummy device 80x25 [ 0.004000] console [tty0] enabled [ 0.004000] console [ttyS0] enabled [ 0.004000] HPET: 3 timers in total, 0 timers will be used for per-cpu timer [ 0.009458] Calibrating delay loop (skipped), value calculated using timer frequency.. 28.45 BogoMIPS (lpj=56904) [ 0.018306] kdb version 4.4 by Keith Owens, Scott Lurndal. Copyright SGI, All Rights Reserved kdb_cmd[0]: defcmd archkdb "" "First line arch debugging" kdb_cmd[7]: defcmd archkdbcpu "" "archkdb with only tasks on cpus" kdb_cmd[14]: defcmd archkdbshort "" "archkdb with less detailed backtrace" kdb_cmd[21]: defcmd archkdbcommon "" "Common arch debugging" [ 0.035757] Security Framework initialized [ 0.042764] AppArmor: AppArmor initialized [ 0.051465] Dentry cache hash table entries: 131072 (order: 8, 1048576 bytes) [ 0.068965] Inode-cache hash table entries: 65536 (order: 7, 524288 bytes) [ 0.077585] Mount-cache hash table entries: 256 [ 0.103933] Initializing cgroup subsys ns [ 0.104966] Initializing cgroup subsys cpuacct [ 0.106176] Initializing cgroup subsys memory [ 0.109583] Initializing cgroup subsys devices [ 0.110803] Initializing cgroup subsys freezer [ 0.111610] Initializing cgroup subsys net_cls [ 0.116340] CPU: L1 I Cache: 64K (64 bytes/line), D cache 64K (64 bytes/line) [ 0.117530] CPU: L2 Cache: 512K (64 bytes/line) [ 0.118933] CPU 0/0x0 -> Node 0 [ 0.120516] mce: CPU supports 10 MCE banks [ 0.123414] Performance Counters: AMD PMU driver. [ 0.124900] ... version: 0 [ 0.125540] ... bit width: 48 [ 0.126319] ... generic counters: 4 [ 0.127059] ... value mask: 0000ffffffffffff [ 0.128197] ... max period: 00007fffffffffff [ 0.129012] ... fixed-purpose counters: 0 [ 0.129631] ... counter mask: 000000000000000f [ 0.131407] SMP alternatives: switching to UP code [ 0.460416] Freeing SMP alternatives: 34k freed [ 0.464227] ACPI: Core revision 20090521 [ 0.593347] Setting APIC routing to flat [ 0.605736] ..TIMER: vector=0x30 apic1=0 pin1=2 apic2=-1 pin2=-1 [ 0.648502] CPU0: AMD QEMU Virtual CPU version 0.12.50 stepping 03 [ 0.664698] Brought up 1 CPUs [ 0.665611] Total of 1 processors activated (28.45 BogoMIPS). [ 0.687857] devtmpfs: initialized [ 0.883925] Booting paravirtualized kernel on bare hardware [ 0.896241] regulator: core version 0.5 [ 0.898110] Time: 15:01:21 Date: 04/07/10 [ 0.904680] NET: Registered protocol family 16 [ 0.926350] ACPI: bus type pci registered [ 0.933781] PCI: Using configuration type 1 for base access [ 0.997003] bio: create slab <bio-0> at 0 [ 1.239546] ACPI: Interpreter enabled [ 1.240240] ACPI: (supports S0 S3 S4 S5) [ 1.245116] ACPI: Using IOAPIC for interrupt routing [ 1.489740] ACPI: No dock devices found. [ 1.495956] ACPI: PCI Root Bridge [PCI0] (0000:00) [ 1.509770] pci 0000:00:01.3: quirk: region b000-b03f claimed by PIIX4 ACPI [ 1.511081] pci 0000:00:01.3: quirk: region b100-b10f claimed by PIIX4 SMB [ 1.727181] ACPI: PCI Interrupt Link [LNKA] (IRQs 5 *10 11) [ 1.735198] ACPI: PCI Interrupt Link [LNKB] (IRQs 5 *10 11) [ 1.742612] ACPI: PCI Interrupt Link [LNKC] (IRQs 5 10 *11) [ 1.750170] ACPI: PCI Interrupt Link [LNKD] (IRQs 5 10 *11) [ 1.765314] SCSI subsystem initialized [ 1.775202] usbcore: registered new interface driver usbfs [ 1.777926] usbcore: registered new interface driver hub [ 1.781709] usbcore: registered new device driver usb [ 1.790324] PCI: Using ACPI for IRQ routing [ 1.810563] hpet0: at MMIO 0xfed00000, IRQs 2, 8, 0 [ 1.811830] hpet0: 3 comparators, 64-bit 100.000000 MHz counter [ 1.912775] AppArmor: AppArmor Filesystem Enabled [ 1.915885] pnp: PnP ACPI init [ 1.917672] ACPI: bus type pnp registered [ 1.977819] pnp: PnP ACPI: found 8 devices [ 1.978732] ACPI: ACPI bus type pnp unregistered [ 2.009723] NET: Registered protocol family 2 [ 2.019395] IP route cache hash table entries: 32768 (order: 6, 262144 bytes) [ 2.061775] TCP established hash table entries: 131072 (order: 9, 2097152 bytes) [ 2.088712] TCP bind hash table entries: 65536 (order: 8, 1048576 bytes) [ 2.099693] TCP: Hash tables configured (established 131072 bind 65536) [ 2.101381] TCP reno registered [ 2.109590] NET: Registered protocol family 1 [ 2.123725] Unpacking initramfs... [ 2.148288] Freeing initrd memory: 24588k freed [ 2.148288] Scanning for low memory corruption every 60 seconds [ 2.148288] audit: initializing netlink socket (disabled) [ 2.148288] type=2000 audit(1270652481.144:1): initialized [ 2.148288] HugeTLB registered 2 MB page size, pre-allocated 0 pages [ 2.148288] VFS: Disk quotas dquot_6.5.2 [ 2.148288] Dquot-cache hash table entries: 512 (order 0, 4096 bytes) [ 2.148288] msgmni has been set to 498 [ 2.148288] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 253) [ 2.148288] io scheduler noop registered [ 2.148288] io scheduler anticipatory registered [ 2.148288] io scheduler deadline registered [ 2.148288] io scheduler cfq registered (default) [ 2.148288] pci 0000:00:00.0: Limiting direct PCI/PCI transfers [ 2.148288] pci 0000:00:01.0: PIIX3: Enabling Passive Release [ 2.148288] pci 0000:00:01.0: Activating ISA DMA hang workarounds [ 2.148288] pci-stub: invalid id string "" [ 2.148288] vesafb: framebuffer at 0xf0000000, mapped to 0xffffc90000580000, using 1875k, total 4096k [ 2.148288] vesafb: mode is 800x600x16, linelength=1600, pages=3 [ 2.148288] vesafb: scrolling: redraw [ 2.148288] vesafb: Truecolor: size=0:5:6:5, shift=0:11:5:0 [ 2.148288] bootsplash 3.1.6-2004/03/31: looking for picture... [ 2.148288] bootsplash: silentjpeg size 71362 bytes [ 2.148288] bootsplash: ...found (800x600, 24018 bytes, v3). [ 2.148288] Console: switching to colour frame buffer device 96x33 [ 2.148288] fb0: VESA VGA frame buffer device [ 2.148288] Non-volatile memory driver v1.3 [ 2.148288] Linux agpgart interface v0.103 [ 2.148288] Serial: 8250/16550 driver, 8 ports, IRQ sharing disabled [ 2.148288] serial8250: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A [ 2.148288] 00:06: ttyS0 at I/O 0x3f8 (irq = 4) is a 16550A [ 2.148288] scsi0 : ata_piix [ 2.148288] scsi1 : ata_piix [ 2.148288] ata1: PATA max MWDMA2 cmd 0x1f0 ctl 0x3f6 bmdma 0xc000 irq 14 [ 2.148288] ata2: PATA max MWDMA2 cmd 0x170 ctl 0x376 bmdma 0xc008 irq 15 [ 2.148288] Fixed MDIO Bus: probed [ 2.148288] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver [ 2.148288] ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver [ 2.148288] uhci_hcd: USB Universal Host Controller Interface driver [ 2.148288] Initializing USB Mass Storage driver... [ 2.148288] usbcore: registered new interface driver usb-storage [ 2.148288] USB Mass Storage support registered. [ 2.148288] usbcore: registered new interface driver libusual [ 2.148288] usbcore: registered new interface driver ums-alauda [ 2.148288] usbcore: registered new interface driver ums-cypress [ 2.148288] usbcore: registered new interface driver ums-datafab [ 2.148288] usbcore: registered new interface driver ums-freecom [ 2.148288] usbcore: registered new interface driver ums-isd200 [ 2.148288] usbcore: registered new interface driver ums-jumpshot [ 2.148288] usbcore: registered new interface driver ums-karma [ 2.148288] usbcore: registered new interface driver ums-onetouch [ 2.148288] usbcore: registered new interface driver ums-sddr09 [ 2.148288] usbcore: registered new interface driver ums-sddr55 [ 2.148288] usbcore: registered new interface driver ums-usbat [ 2.148288] PNP: PS/2 Controller [PNP0303:KBD,PNP0f13:MOU] at 0x60,0x64 irq 1,12 [ 2.148288] serio: i8042 KBD port at 0x60,0x64 irq 1 [ 2.148288] serio: i8042 AUX port at 0x60,0x64 irq 12 [ 2.148288] mice: PS/2 mouse device common for all mice [ 2.148288] input: AT Translated Set 2 keyboard as /devices/platform/i8042/serio0/input/input0 [ 2.148288] rtc_cmos 00:01: rtc core: registered rtc_cmos as rtc0 [ 2.148288] rtc0: alarms up to one day, 114 bytes nvram, hpet irqs [ 2.148288] cpuidle: using governor ladder [ 2.148288] cpuidle: using governor menu [ 2.148288] usbcore: registered new interface driver hiddev [ 2.148288] usbcore: registered new interface driver usbhid [ 2.148288] usbhid: v2.6:USB HID core driver [ 2.148288] TCP cubic registered [ 2.148288] NET: Registered protocol family 10 [ 2.148288] lo: Disabled Privacy Extensions [ 2.148288] lib80211: common routines for IEEE802.11 drivers [ 2.148288] registered taskstats version 1 [ 2.148288] Magic number: 6:65:32 [ 2.148288] rtc_cmos 00:01: setting system clock to 2010-04-07 15:01:35 UTC (1270652495) *** sits here in hlt *** Almost looks like a timekeeping issue, no? And yes, I tried to revert 4a9590f32e5692114aaae4ca10da89dac633e164 - no change. > [Testing whether 64bit host still works would be nice too, thanks] > That one looks good. Alex