Hi all

I've been banging my head against this one for a while now, so I finally
figured I could do with some help (and it might even be a bug in
UML). ;-)

I am trying to set up a 2.6 UML instance on a VIA C3 Samuel2 [1] based
system running a freshly installed Debian Sarge. In TT mode, everything
works fine. However, in SKAS mode, the guest kernel starts up and
outputs only:

Checking for /proc/mm...found
Checking for the skas3 patch in the host...found

then nothing happens, but the guest kernel process uses 100% of the CPU.
The same setup works fine on my Athlon64 system (IA32 mode) with
identical host and guest kernels.

I am not sure whether it provides additional insight, but here is the
strace on the VIA box:

execve("./linux-2.6.11-bs4", ["./linux-2.6.11-bs4", "mem=32M",
"ubd0=./fwumlfs.img", "con=pts", "eth1=tuntap,tap1"], [/* 17 vars */]) =
0
uname({sys="Linux", node="emden2", ...}) = 0
brk(0)                                  = 0xa02bb000
brk(0xa02dc000)                         = 0xa02dc000
rt_sigprocmask(SIG_SETMASK, [IO], NULL, 8) = 0
execve("./linux-2.6.11-bs4", ["./linux-2.6.11-bs4", "
"..., "mem=32M", "ubd0=./fwumlfs.img", "con=pts", "eth1=tuntap,tap1"],
[/* 17 vars */]) = 0
uname({sys="Linux", node="emden2", ...}) = 0
brk(0)                                  = 0xa02bb000
brk(0xa02dc000)                         = 0xa02dc000
rt_sigprocmask(SIG_SETMASK, [IO], NULL, 8) = 0
getrlimit(RLIMIT_STACK, {rlim_cur=8192*1024, rlim_max=RLIM_INFINITY}) =
0
rt_sigaction(SIGINT, {0xa00108c0, [], SA_RESTORER|SA_NOMASK|SA_ONESHOT,
0xa014dcb8}, NULL, 8) = 0
rt_sigaction(SIGTERM, {0xa00108c0, [], SA_RESTORER|SA_NOMASK|SA_ONESHOT,
0xa014dcb8}, NULL, 8) = 0
rt_sigaction(SIGHUP, {0xa00108c0, [], SA_RESTORER|SA_NOMASK|SA_ONESHOT,
0xa014dcb8}, NULL, 8) = 0
fstat64(1, {st_mode=S_IFCHR|0620, st_rdev=makedev(136, 0), ...}) = 0
old_mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS,
-1, 0) = 0xb7fff000
access("/proc/mm", W_OK)                = 0
write(1, "Checking for /proc/mm...found\n", 30) = 30
old_mmap(NULL, 4096, PROT_READ|PROT_WRITE|PROT_EXEC, MAP_PRIVATE|
MAP_ANONYMOUS, -1, 0) = 0xb7ffe000
clone(child_stack=0xb7ffefd8, flags=0|SIGCHLD) = 7197
--- SIGCHLD (Child exited) @ 0 (0) ---
waitpid(7197, [{WIFSTOPPED(s) && WSTOPSIG(s) == SIGSTOP}], WUNTRACED) =
7197
ptrace(0x34 /* PTRACE_??? */, 7197, 0, 0xbffff7c0) = 0
write(1, "Checking for the skas3 patch in "..., 49) = 49
ptrace(PTRACE_GETREGS, 7197, 0, 0xa02aaba0) = 0
ptrace(PTRACE_GETFPXREGS, 7197, 0, 0xa02aac80) = -1 EIO (Input/output
error)
rt_sigprocmask(SIG_SETMASK, NULL, [IO], 8) = 0
rt_sigprocmask(SIG_BLOCK, [ALRM VTALRM IO], NULL, 8) = 0
rt_sigprocmask(SIG_UNBLOCK, [ALRM VTALRM], [ALRM VTALRM IO], 8) = 0
rt_sigprocmask(SIG_BLOCK, [IO], NULL, 8) = 0
rt_sigprocmask(SIG_SETMASK, NULL, [IO], 8) = 0
rt_sigprocmask(SIG_BLOCK, [ALRM VTALRM IO], NULL, 8) = 0
rt_sigprocmask(SIG_UNBLOCK, [ALRM VTALRM], [ALRM VTALRM IO], 8) = 0
rt_sigprocmask(SIG_BLOCK, [IO], NULL, 8) = 0
rt_sigprocmask(SIG_SETMASK, NULL, [IO], 8) = 0
rt_sigprocmask(SIG_BLOCK, [ALRM VTALRM IO], NULL, 8) = 0
rt_sigprocmask(SIG_UNBLOCK, [ALRM VTALRM], [ALRM VTALRM IO], 8) = 0
rt_sigprocmask(SIG_BLOCK, [IO], NULL, 8) = 0
rt_sigprocmask(SIG_SETMASK, NULL, [IO], 8) = 0
rt_sigprocmask(SIG_BLOCK, [ALRM VTALRM IO], NULL, 8) = 0
rt_sigprocmask(SIG_UNBLOCK, [ALRM VTALRM], [ALRM VTALRM IO], 8) = 0
rt_sigprocmask(SIG_BLOCK, [IO], NULL, 8) = 0
rt_sigprocmask(SIG_SETMASK, NULL, [IO], 8) = 0
rt_sigprocmask(SIG_BLOCK, [ALRM VTALRM IO], NULL, 8) = 0
rt_sigprocmask(SIG_UNBLOCK, [ALRM VTALRM], [ALRM VTALRM IO], 8) = 0
rt_sigprocmask(SIG_BLOCK, [IO], NULL, 8) = 0
rt_sigprocmask(SIG_SETMASK, NULL, [IO], 8) = 0
rt_sigprocmask(SIG_BLOCK, [ALRM VTALRM IO], NULL, 8) = 0
rt_sigprocmask(SIG_UNBLOCK, [ALRM VTALRM], [ALRM VTALRM IO], 8) = 0
rt_sigprocmask(SIG_BLOCK, [IO], NULL, 8) = 0
rt_sigprocmask(SIG_UNBLOCK, [ALRM VTALRM IO], NULL, 8) = 0
--- SIGINT (Interrupt) @ 0 (0) ---
rt_sigaction(SIGINT, {SIG_DFL}, {SIG_DFL}, 8) = 0
rt_sigaction(SIGTERM, {SIG_DFL}, {0xa00108c0, [], SA_RESTORER|SA_NOMASK|
SA_ONESHOT, 0xa014dcb8}, 8) = 0
rt_sigaction(SIGHUP, {SIG_DFL}, {0xa00108c0, [], SA_RESTORER|SA_NOMASK|
SA_ONESHOT, 0xa014dcb8}, 8) = 0
kill(0, SIGKILL

(The SIGINT towards the end is me killing the guest kernel with Ctrl-C.)

The above is with skas3-v9-pre1 [2] for the host and bs4 for the guest
kernel which were applied to Debian's 2.6.11 sources.

I've tried this with 2.6.10 and 2.6.11 kernels, both Debian and vanilla
with and without the bs patch, all with the same result. I've tried
compiling both the host and guest kernel on the VIA box, with no
difference. The guest kernel is compiled with "ARCH=um SUBARCH=i386", so
I hope I have excluded the CMOV on VIA C3 problem. Also, the guest
kernel is statically linked, so it shouldn't have anything to do with
TLS either (I think).

Any help would be hugely appreciated. Also, I am more than happy to run
additional tests and/or provide debugging information. (I've never done
kernel debugging, so a hint or two would certainly be great.)

Cheers
Andree

[1] /proc/cpuinfo:
processor       : 0
vendor_id       : CentaurHauls
cpu family      : 6
model           : 7
model name      : VIA Samuel 2
stepping        : 3
cpu MHz         : 601.520
cache size      : 64 KB
fdiv_bug        : no
hlt_bug         : no
f00f_bug        : no
coma_bug        : no
fpu             : yes
fpu_exception   : yes
cpuid level     : 1
wp              : yes
flags           : fpu de tsc msr cx8 mtrr pge mmx pni 3dnow
bogomips        : 1187.84

[2] Patch skas-2.6.11-v8.patch.bz2 doesn't apply cleanly to neither
vanilla nor Debian 2.6.11 kernel for me, so I'm using
skas-2.6.11-v9-pre1.patch.bz2. The problem is the same with 2.6.10 using
skas-2.6.10-v8.patch.bz2, though.
-- 
Andree Leidenfrost
Sydney - Australia

Attachment: signature.asc
Description: This is a digitally signed message part

Reply via email to