Afterburner running problem

View: New views
2 Messages — Rating Filter:   Alert me  

Afterburner running problem

by Alexander Valitov :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Hello All,

I’m trying to run pre-virtualized Linux under L4ka hypervisor on AMD Turion 64 X2 (32-bit mode) CPU.
I’ve successfully built afterburner for k8 CPU (ia32) using included config file afterburner/config/sample-config.out.
Booting process hangs up where ramdisk driver begin to work, but ukernel itself is still operational (changing symbols are in the corner). It is true for booting on both QEMU and VMware. I didn’t check it on bare-metal hardware (no COM port).

Do you have any idea what did I do wrong? Is it wrong config or wrong way to build?

The only strange thing that I’ve noticed in boot log is several messages as follow:

afterburn:  VCPU 0 error associating irq 12 L4 error: Invalid param
afterburn:  VCPU 0 Unable to enable passthru device interrupt 12

My boot log and description of my building process are given below.

Thanks in advance and sorry for my English.


Building process:

$ mkdir build && cd build
$ make –f ../afterburner/Makefile
$ cp -T ../afterburner/configs/sample-config.out config.out

Built antlr and afterburner using default GCC 4.1.2 compiler
$ make install-afterburner

Built other components using GCC 3.4.4. To do so I executed
$ make menuconfig

In config menu I changed following option:
Disable:
Generic Options -> Processor -> Pentium 4
Enable:
Generic Options -> Processor -> AMD K8/K10
External package options -> gcc options -> Build gcc?

$ make world


Boot log (don’t pay attention to strange build date because building was done on VMware with wrong time/date on):

KickStart 0.10
Detected multiboot compliant loader
 kernel    (0x00815000-0x00a17520)   => 0x001620d0
  (0x00815000-0x008338a2) -> 0x00100000-0x0011e8a2
  (0x00834000-0x00844d58) -> 0x00120000-0x00130d58
  (0x00845000-0x00852e38) -> 0x00131000-0x0013ee38
  (0x00853000-0x00856f48) -> 0x0015f000-0x00162f48
 sigma0    (0x00a18000-0x00a2e8ac)   => 0x00020000
  (0x00a19000-0x00a21410) -> 0x00020000-0x00028410
 roottask  (0x00a2f000-0x00a9c405)   => 0x004024d0
  (0x00a30000-0x00a44cf0) -> 0x00400000-0x00414cf0
  (0x00a45000-0x00ac8818) -> 0x00415000-0x00498818
Launching kernel ...

L4Ka::Pistachio - built on Nov 21 2008 21:33:45 by alex@avalitov-vmware using gcc version 3.4.4
Checking CPU features
virtual memory layout:
        user area            0 - c0000000
        copy area     c4000000 - c4800000
        ktcb area     e0000000 - f0000000
        kernel area   df000000 - ff000000
        cpulocal data f0132000 - f013492c
        utcb pgarea   df000000
        space link    c5000000
Initializing kernel memory (f013f000-f015f000) [128K]
Initializing kernel space
        Switching to CPU local pagetable 00140000 (CPU 0)
CPU local pagetable activated 140000 (CPU 0)
Activating TSS (Preliminary)
Initializing GDT (Preliminary)
Activating IDT (Preliminary)
Initializing kernel interface page (f0131000)
Adding more kernel memory
        found  16M kmem (e000000-effffff) -> (fe000000-feffffff)
Initializing memory info
Initializing mapping database
Initializing Tracebuffer
Initializing kernel debugger
Initializing IRQ hardware
Initializing Timer
        Activating TSS (CPU 0)se
        Initializing GDT (CPU 0)
        Activating IDT (CPU 0)
        Initializing Tracebuffer PMCs (CPU 0)
        Enabling performance monitoring at user level (CPU 0)
        Enabling global pages (CPU 0)
        Disabling K8 Flush Filter
        Activating MSRS (CPU 0)
        Initializing Timer (CPU 0)
        Calculating processor speed ...
        CPU speed: 1923 MHz
        Initializing Processor (CPU 0)
Registering processor 0 in KIP (0MHz, 1923MHz)
Initializing threading CPU 0
Switching to idle thread (CPU 0)
System has 16 interrupts
Initializing root servers
root-servers: utcb_area: bf000110 (128KB), kip_area: bff000c0 (4KB)
Creating sigma0 (SIGMA0)
Creating root server (ROOTTASK)
Idle thread started on CPU 0
resourcemon: L4 features:
resourcemon:                    pagerexregs
resourcemon:                    tracebuffer
resourcemon: Finding memory ......................
resourcemon: Total memory: 0.193 GB | 197.867 MB | 202616 KB
resourcemon: Maximum useable physical memory address: fffffff
resourcemon: Creating VM id 0 at 0 size 8 MBytes
resourcemon: Working set scanner TID: cc002 <33:2>
resourcemon: Loading module 0
resourcemon: Creating VM id 1 at 3000000 size 64 MBytes
afterburn:  VCPU 0 Init done, entering monitor loop
afterburn:  VCPU 0 Required exports to guest: 13 total from guest 15
afterburn:  VCPU 0 Required from guest: 5 total from guest 6
Linux version 2.6.9-afterburn-driver-k8 (alex@avalitov-vmware) (gcc version 3.4.4) #1 Fri Nov 21 21:47:27 MSK 2008
BIOS-provided physical RAM map:
 BIOS-e820: 0000000000000000 - 00000000000a0000 (usable)
 BIOS-e820: 00000000000a0000 - 0000000000100000 (reserved)
 BIOS-e820: 0000000000100000 - 0000000001000000 (usable)
 BIOS-e820: 0000000001000000 - 00000000010cf000 (reserved)
 BIOS-e820: 00000000010cf000 - 0000000004000000 (usable)
64MB LOWMEM available.
DMI not present.
Built 1 zonelists
Kernel command line: (hd0,0)/boot/afterburner/boot2/k8/vmlinuz-driver  devfs=mount console=ttyS0,115200 root=/dev/ram0 ramdisk_size=65536
Initializing CPU#0
PID hash table entries: 512 (order: 9, 8192 bytes)
Using pit for high-res timesource
Console: colour VGA+ 80x25
Dentry cache hash table entries: 16384 (order: 4, 65536 bytes)
Inode-cache hash table entries: 8192 (order: 3, 32768 bytes)
Memory: 30672k/65536k available (1921k kernel code, 33560k reserved, 487k data, 396k init, 0k highmem)
Checking if this processor honours the WP bit even in supervisor mode... Ok.
Mount-cache hash table entries: 512 (order: 0, 4096 bytes)
CPU: L1 I Cache: 64K (64 bytes/line), D cache 64K (64 bytes/line)
CPU: L2 Cache: 512K (64 bytes/line)
CPU: AMD L4Ka::Pistachio (http://l4ka.org) stepping 01
Enabling fast FPU save and restore... done.
Enabling unmasked SIMD FPU exception support... done.
Checking 'hlt' instruction... OK.
checking if image is initramfs...it isn't (no cpio magic); looks like an initrd
Freeing initrd memory: 29918k freed
NET: Registered protocol family 16
PCI: Using configuration type 1
SCSI subsystem initialized
PCI: Probing PCI hardware
PCI: Probing PCI hardware (bus 00)
PCI: Transparent bridge - 0000:00:11.0
afterburn:  VCPU 0 MSR write for 174 lo 60 hi 0
afterburn:  VCPU 0 MSR write was unhandled (MSR 174)
afterburn:  VCPU 0 MSR write for 175 lo 803161e0 hi 0
afterburn:  VCPU 0 MSR write was unhandled (MSR 175)
afterburn:  VCPU 0 MSR write for 176 lo 80106f84 hi 0
afterburn:  VCPU 0 MSR write was unhandled (MSR 176)
devfs: 2004-01-31 Richard Gooch (rgooch@atnf.csiro.au)
devfs: boot_options: 0x1
Limiting direct PCI/PCI transfers.
afterburn:  VCPU 0 error associating irq 12 L4 error: Invalid param
afterburn:  VCPU 0 Unable to enable passthru device interrupt 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 enabled
ttyS0 at I/O 0x3f8 (irq = 4) is a 8250
ttyS1 at I/O 0x2f8 (irq = 3) is a 8250
ttyS2 at I/O 0x3e8 (irq = 4) is a 8250
ttyS3 at I/O 0x2e8 (irq = 3) is a 8250
parport0: PC-style at 0x378 [PCSPP(,...)]
Using anticipatory io scheduler
afterburn:  VCPU 0 error associating irq 6 L4 error: Invalid param
afterburn:  VCPU 0 Unable to enable passthru device interrupt 6
FDC 0 is a post-1991 82077
RAMDISK driver initialized: 16 RAM disks of 65536K size 1024 blocksize
loop: loaded (max 8 devices)
Intel(R) PRO/1000 Network Driver - version 7.2.7
Copyright (c) 1999-2006 Intel Corporation.
pcnet32.c:v1.30i 06.28.2004 tsbogend@alpha.franken.de
pcnet32: PCnet/PCI II 79C970A at 0x2000, 00 0c 29 b1 59 a2 assigned IRQ 5.
eth0: registered as PCnet/PCI II 79C970A
pcnet32: PCnet/PCI II 79C970A at 0x2080, 00 0c 29 b1 59 ac assigned IRQ 5.
eth1: registered as PCnet/PCI II 79C970A
pcnet32: 2 cards_found.
ns83820.c: National Semiconductor DP83820 10/100/1000 driver.
dmfe: Davicom DM9xxx net driver, version 1.36.4 (2002-01-17)
winbond-840.c:v1.01-d (2.4 port) Nov-17-2001  Donald Becker <becker@scyld.com>
  http://www.scyld.com/network/drivers.html
Uniform Multi-Platform E-IDE driver Revision: 7.00alpha2
ide: Assuming 33MHz system bus speed for PIO modes; override with idebus=xx
PIIX4: IDE controller at PCI slot 0000:00:07.1
PIIX4: chipset revision 1
PIIX4: not 100% native mode: will probe irqs later
    ide1: BM-DMA at 0x10c8-0x10cf, BIOS settings: hdc:DMA, hdd:pio
hdc: VMware Virtual IDE CDROM Drive, ATAPI CD/DVD-ROM drive
afterburn:  VCPU 0 error associating irq 15 L4 error: Invalid param
afterburn:  VCPU 0 Unable to enable passthru device interrupt 15
ide1 at 0x170-0x177,0x376 on irq 15
ide2: I/O resource 0x3EE-0x3EE not free.
ide2: ports already in use, skipping probe
hdc: ATAPI 1X CD-ROM drive, 32kB Cache, UDMA(33)
Uniform CD-ROM driver Revision: 3.20
ide-floppy driver 0.99.newide
mice: PS/2 mouse device common for all mice
afterburn:  VCPU 0 error associating irq 1 L4 error: Invalid param
afterburn:  VCPU 0 Unable to enable passthru device interrupt 1
input: AT Translated Set 2 keyboard on isa0060/serio0
NET: Registered protocol family 2
IP: routing cache hash table of 512 buckets, 4Kbytes
TCP: Hash tables configured (established 4096 bind 8192)
NET: Registered protocol family 1
RAMDISK: Compressed image found at block 0

Nothing’s happened here.

Best Regards, Alexander Valitov

RE: Afterburner running problem

by Jan Stoess :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Hello Alexander and ultra-sorry for the ultra-late reply,

> RAMDISK: Compressed image found at block 0
>
> Nothing’s happened here.
>
> Best Regards, Alexander Valitov

Hard to say what's going on here; probably need more information:

- Can you figure out if there are Linux programs running or if it is just the Linux kernel? Every Lx app is represented by a TCB, so simply counting them in the L4 KDB should tell you that (the linux kernel itself needs 3 TCBs, as does each IRQ line and roottask).

- Can you figure out, what Linux is currently doing? You need to again use KDB to look at the L4 thread hosting Linux kernel code -- which is the one with the lowest or the second lowest priority besides idle, depending on if other Lx apps are running. Using KDB you can then find out which IP it is running currently (you could also have a look on the stack), and match that against the binary vmlinux file, which you can inspect using objdump etc.

- Did you attach a serial port to your VMware box? Maybe it's as simple as that Linux spits its boot messages to the serial port rather than to the VGA screen.

- Have you tried using qemu ("make run-qemu")? Does that work?

--
Jan Stoess
System Architecture Group
University of Karlsruhe
Phone: +49 (721) 608-4056
Fax: +49 (721) 608-7664
eMail: stoess@...