hi,
I test the uml kernel iomem functions, and found that if the iomem file size is greater than 2M, the uml kernel will panic. the output is:
Checking for the skas3 patch in the host...not found
Checking for /proc/mm...not found
Checking PROT_EXEC mmap in /tmp...OK
tracing thread pid = 9425
Linux version 2.6.10 ( [EMAIL PROTECTED]) (gcc version 3.4.3 ) #202 Thu Jan 5 15:02:27 CST 2006
Built 1 zonelists
Kernel command line: ubd0=/users/lianwei/work/uml_linux//temp_COW,/users/lianwei/w
ork/uml_linux//rootfs_x86.um eth0=tuntap,,, 192.168.0.100 iomem=mmapper iomem=
testmem video=vfb: mem=128M root=98:0
PID hash table entries: 1024 (order: 10, 16384 bytes)
Dentry cache hash table entries: 32768 (order: 5, 131072 bytes)
Inode-cache hash table entries: 16384 (order: 4, 65536 bytes)
Memory: 126336k available
Mount-cache hash table entries: 512 (order: 0, 4096 bytes)
Kernel panic - not syncing: Segfault with no mm
EIP: 0073:[<a0037c61>] CPU: 0 Not tainted ESP: 007b:a022be54 EFLAGS: 00010292
Not tainted
EAX: a0904148 EBX: a022bebc ECX: a022bde4 EDX: ffffffff
ESI: 00000001 EDI: 00000001 EBP: a022be7c DS: 007b ES: 007b
Call Trace:
[<a004b6d5>] notifier_call_chain+0x25/0x40
[<a003aa32>] panic+0x72/0x110
[<a001d051>] segv+0x1d1/0x220
[<a01984f7>] sigemptyset+0x17/0x30
[<a001ad90>] change_signals+0x60/0x90
[<a001d3a5>] segv_handler+0x115/0x260
[<a0037c61>] __wake_up_common+0x11/0x70
[<a0021977>] sig_handler_common_tt+0x97/0x140
[<a001d531>] sig_handler+0x21/0x40
[<a01981f8>] __restore+0x0/0x8
[<a0037c61>] __wake_up_common+0x11/0x70
[<a0037d06>] __wake_up+0x46/0x60
[<a0053237>] __wake_up_bit+0x37/0x40
[<a00a7b13>] proc_get_inode+0xe3/0x130
[<a00a7ba5>] proc_fill_super+0x45/0xb0
[<a0080272>] get_sb_single+0x62/0xc0
[<a008032a>] do_kern_mount+0x5a/0xf0
[<a00a7b60>] proc_fill_super+0x0/0xb0
[<a0020ff0>] signal_tramp+0x0/0x110
[<a00803e3>] kern_mount+0x23/0x25
[<a0020ff0>] signal_tramp+0x0/0x110
[<a000c8bd>] proc_root_init+0x2d/0x130
[<a0002629>] start_kernel+0x159/0x1a0
[<a0002180>] unknown_bootoption+0x0/0x220
[<a001fcc8>] start_kernel_proc+0x48/0x80
[<a00024d0>] start_kernel+0x0/0x1a0
Checking for /proc/mm...not found
Checking PROT_EXEC mmap in /tmp...OK
tracing thread pid = 9425
Linux version 2.6.10 ( [EMAIL PROTECTED]) (gcc version 3.4.3 ) #202 Thu Jan 5 15:02:27 CST 2006
Built 1 zonelists
Kernel command line: ubd0=/users/lianwei/work/uml_linux//temp_COW,/users/lianwei/w
ork/uml_linux//rootfs_x86.um eth0=tuntap,,, 192.168.0.100 iomem=mmapper iomem=
testmem video=vfb: mem=128M root=98:0
PID hash table entries: 1024 (order: 10, 16384 bytes)
Dentry cache hash table entries: 32768 (order: 5, 131072 bytes)
Inode-cache hash table entries: 16384 (order: 4, 65536 bytes)
Memory: 126336k available
Mount-cache hash table entries: 512 (order: 0, 4096 bytes)
Kernel panic - not syncing: Segfault with no mm
EIP: 0073:[<a0037c61>] CPU: 0 Not tainted ESP: 007b:a022be54 EFLAGS: 00010292
Not tainted
EAX: a0904148 EBX: a022bebc ECX: a022bde4 EDX: ffffffff
ESI: 00000001 EDI: 00000001 EBP: a022be7c DS: 007b ES: 007b
Call Trace:
[<a004b6d5>] notifier_call_chain+0x25/0x40
[<a003aa32>] panic+0x72/0x110
[<a001d051>] segv+0x1d1/0x220
[<a01984f7>] sigemptyset+0x17/0x30
[<a001ad90>] change_signals+0x60/0x90
[<a001d3a5>] segv_handler+0x115/0x260
[<a0037c61>] __wake_up_common+0x11/0x70
[<a0021977>] sig_handler_common_tt+0x97/0x140
[<a001d531>] sig_handler+0x21/0x40
[<a01981f8>] __restore+0x0/0x8
[<a0037c61>] __wake_up_common+0x11/0x70
[<a0037d06>] __wake_up+0x46/0x60
[<a0053237>] __wake_up_bit+0x37/0x40
[<a00a7b13>] proc_get_inode+0xe3/0x130
[<a00a7ba5>] proc_fill_super+0x45/0xb0
[<a0080272>] get_sb_single+0x62/0xc0
[<a008032a>] do_kern_mount+0x5a/0xf0
[<a00a7b60>] proc_fill_super+0x0/0xb0
[<a0020ff0>] signal_tramp+0x0/0x110
[<a00803e3>] kern_mount+0x23/0x25
[<a0020ff0>] signal_tramp+0x0/0x110
[<a000c8bd>] proc_root_init+0x2d/0x130
[<a0002629>] start_kernel+0x159/0x1a0
[<a0002180>] unknown_bootoption+0x0/0x220
[<a001fcc8>] start_kernel_proc+0x48/0x80
[<a00024d0>] start_kernel+0x0/0x1a0
did anyone have ever seen this problem?
my uml version is 2.6.10
thanks.