Hello UML people,
 
unfortunately i wasn't into UML very much for the last months - but from time to time i take a look how the project is going. it`s nice to see that it's stell going on besides all of that virtualization "madness" out there in IT. 
 
i find UML very useful and this time gave it a try for testing a driver - but ì'm experience a rather strange problem and cannot explain what`s happening here - maybe someone can give me a hint how to dig into this.
 
 
i try to use AoE (Ata over Ethernet) inside UML.
 
for those who don`t know about AoE:
 
AoE is sort of iSCSI - but - without tcp/ip, just on ethernet layer
(btw: you don`t need to buy coraid's etherblade - there are software versions for that "AoE server part" on the net)
 
 
I don`t know yet if i can use it inside UML without problems at all - but - anyway what i'm experiencing is strange.
i would have expected a different behaviour.
 
I compiled an 2.6.15 vanilla kernel, manually patched with aoe6-21 driver from coraid`s (AoE inventor) website.
 
compile goes fine and i can start the kernel, seeing the AoE driver initialize
 
# ./linux
Checking that ptrace can change system call numbers...OK
Checking syscall emulation patch for ptrace...missing
Checking PROT_EXEC mmap in /tmp...OK
Checking for the skas3 patch in the host:
  - /proc/mm...found
  - PTRACE_FAULTINFO...found
  - PTRACE_LDT...found
UML running in SKAS3 mode
Linux version 2.6.15 ([EMAIL PROTECTED]) (gcc version 3.3.3 (SuSE Linux)) #4 Sat Feb 4 02:35:50 CET 2006
Built 1 zonelists
Kernel command line: root=98:0
PID hash table entries: 256 (order: 8, 4096 bytes)
Dentry cache hash table entries: 8192 (order: 3, 32768 bytes)
Inode-cache hash table entries: 4096 (order: 2, 16384 bytes)
Memory: 29824k available
Mount-cache hash table entries: 512
Checking for host processor cmov support...Yes
Checking for host processor xmm support...No
Checking that host ptys support output SIGIO...Yes
Checking that host ptys support SIGIO on close...No, enabling workaround
Checking for /dev/anon on the host...Not available (open failed with errno 2)
Using 2.6 host AIO
NET: Registered protocol family 16
make_proc_exitcode : Failed to register /proc/exitcode
io scheduler noop registered
loop: loaded (max 8 devices)

aoe: aoe_init: AoE v21 initialised.        <- good - the AoE driver is initializing here
NET: Registered protocol family 17
Initialized stdio console driver
Console initialized on /dev/tty0
Failed to open 'root_fs', errno = 2
Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(98,0)
 
EIP: 0073:[<a00e20c1>] CPU: 0 Not tainted ESP: 007b:40001fb8 EFLAGS: 00000212
    Not tainted
EAX: 00000000 EBX: 000023b1 ECX: 00000013 EDX: 000023b1
ESI: 000023ae EDI: 00000000 EBP: 00000000 DS: 007b ES: 007b
a0253b60:  [<a003e2ad>] notifier_call_chain+0x2d/0x50
a0253b7c:  [<a002e871>] panic+0x71/0x110
a0253b94:  [<a0001ab8>] mount_block_root+0xc8/0x140
a0253bd8:  [<a0001b8c>] mount_root+0x5c/0x70
a0253bec:  [<a0001bc2>] prepare_namespace+0x22/0xf0
a0253c00:  [<a000c1d0>] init+0x0/0x180
a0253c04:  [<a000c1d0>] init+0x0/0x180
a0253c0c:  [<a000c2ec>] init+0x11c/0x180
a0253c28:  [<a0023a48>] run_kernel_thread+0x78/0xa0
a0253c38:  [<a000c1d0>] init+0x0/0x180
a0253c48:  [<a0023a10>] run_kernel_thread+0x40/0xa0
a0253cac:  [<a002ad87>] schedule_tail+0x27/0x1d0
a0253cd8:  [<a000c1d0>] init+0x0/0x180
a0253ce4:  [<a001a1de>] new_thread_handler+0xce/0x130
a0253ce8:  [<a000c1d0>] init+0x0/0x180
a0253d20:  [<a00e1f28>] __restore+0x0/0x8
a0253d60:  [<a00e20c1>] __kill+0x11/0x20
 
 
the panic is ok because  i didn`t supply anny params.
 
 
now comes the weird:
 
there is a new patch out which let's you use AoE for your root-device - just like NFS-root (which works inside UML).
 
The patch adds/changes just some lines in the AoE driver code and integrates into Kbuild.
 
If I set AoE-root(...)  to "yes" in .config compile goes fine again - but - the rather strange thing is, that i can`t even see the AoE driver initialize at all anymore.
 
The uml kernel get's stuck in the early beginning at boot time - look here:
 
# ./linux
Checking that ptrace can change system call numbers...OK
Checking syscall emulation patch for ptrace...missing
Checking PROT_EXEC mmap in /tmp...OK
Checking for the skas3 patch in the host:
  - /proc/mm...found
  - PTRACE_FAULTINFO...found
  - PTRACE_LDT...found
UML running in SKAS3 mode
---- hangs here forever. err - why that early ? -----
 
 
With a non UML kernel AoE and AoE root is working for me.
 
does anybody have a clue what is happening here ?
 
for those who want to take a closer look:
 
AoE driver is at:
 
AoE-root patch is at:
 
regards
roland
 

Reply via email to