Lengthy.. Summary is that on an amd64 host, uml hangs on skas0 mode if the
host kernel has been patched with -v9-pre7. Using an unpatched vanilla
host kernel, skas0 boots. Why this is so I have no clue, ask someone else.
: -)
Further, 2.6.12-bs11 refuses to attempt running in skas0 on an unpatched
host.
For getting a working gentoo uml on my amd64 host, I now use: unpatched
2.6.13.2 host and 2.6.13.2-bs2 guest with TT mode disabled. The guest
kernel had to be compiled in a 32-bit chroot.
Read on for my fumbling attempts at debugging:
---
I've tried to get SKAS0 to work with a gentoo root, but with limited
success. TT mode works fine, but SKAS0 hangs at:
..
NET: Registered protocol family 1
NET: Registered protocol family 17
Initialized stdio console driver
Console initialized on /dev/tty0
Initializing software serial port version 1
ubda: unknown partition table
ubdb: unknown partition table
VFS: Mounted root (ext2 filesystem).
Top says:
..
16686 root 17 0 128m 5396 5200 R 87.4 0.3 0:27.07 linux
16690 root 15 0 64 64 64 T 12.3 0.0 0:03.86 linux
Strace says:
...
waitpid(16690, [{WIFSTOPPED(s) && WSTOPSIG(s) == SIGSEGV}], WSTOPPED) =
16690
ptrace(PTRACE_GETREGS, 16690, 0, 0xa0a6f884) = 0
ptrace(PTRACE_GETFPXREGS, 16690, 0, 0xa0a6f934) = 0
ptrace(0x34 /* PTRACE_??? */, 16690, 0, 0xa0a6fb34) = 0
rt_sigprocmask(SIG_BLOCK, [ALRM VTALRM IO], NULL, 8) = 0
rt_sigprocmask(SIG_UNBLOCK, [ALRM VTALRM IO], NULL, 8) = 0
rt_sigprocmask(SIG_SETMASK, NULL, [], 8) = 0
rt_sigprocmask(SIG_BLOCK, [ALRM VTALRM IO], NULL, 8) = 0
rt_sigprocmask(SIG_UNBLOCK, [ALRM VTALRM IO], [ALRM VTALRM IO], 8) = 0
rt_sigprocmask(SIG_BLOCK, [], NULL, 8) = 0
rt_sigprocmask(SIG_SETMASK, NULL, [], 8) = 0
rt_sigprocmask(SIG_BLOCK, [ALRM VTALRM IO], NULL, 8) = 0
rt_sigprocmask(SIG_SETMASK, NULL, [ALRM VTALRM IO], 8) = 0
rt_sigprocmask(SIG_SETMASK, NULL, [ALRM VTALRM IO], 8) = 0
rt_sigprocmask(SIG_BLOCK, [ALRM VTALRM IO], NULL, 8) = 0
rt_sigprocmask(SIG_UNBLOCK, [], [ALRM VTALRM IO], 8) = 0
rt_sigprocmask(SIG_BLOCK, [ALRM VTALRM IO], NULL, 8) = 0
rt_sigprocmask(SIG_SETMASK, NULL, [ALRM VTALRM IO], 8) = 0
rt_sigprocmask(SIG_BLOCK, [ALRM VTALRM IO], NULL, 8) = 0
rt_sigprocmask(SIG_UNBLOCK, [], [ALRM VTALRM IO], 8) = 0
rt_sigprocmask(SIG_BLOCK, [ALRM VTALRM IO], NULL, 8) = 0
rt_sigprocmask(SIG_UNBLOCK, [ALRM VTALRM IO], [ALRM VTALRM IO], 8) = 0
rt_sigprocmask(SIG_BLOCK, [], NULL, 8) = 0
rt_sigprocmask(SIG_BLOCK, [ALRM VTALRM IO], NULL, 8) = 0
rt_sigprocmask(SIG_SETMASK, NULL, [ALRM VTALRM IO], 8) = 0
rt_sigprocmask(SIG_BLOCK, [ALRM VTALRM IO], NULL, 8) = 0
rt_sigprocmask(SIG_UNBLOCK, [], [ALRM VTALRM IO], 8) = 0
rt_sigprocmask(SIG_BLOCK, [ALRM VTALRM IO], NULL, 8) = 0
rt_sigprocmask(SIG_UNBLOCK, [ALRM VTALRM IO], NULL, 8) = 0
ptrace(PTRACE_SETREGS, 16690, 0, 0xa0a6f884) = 0
ptrace(PTRACE_SETFPXREGS, 16690, 0, 0xa0a6f934) = 0
ptrace(PTRACE_SYSCALL, 16690, 0, SIG_0) = 0
--- SIGCHLD (Child exited) @ 0 (0) ---
...(repeated)
So far I've tried these things, all on 2.6.13.1-skas3-v9-pre7 amd64 host:
2.6.13.1+bs2, TT mode, 2005.1 gentoo root: works
2.6.13.1+bs2, TT mode, 2004.0 gentoo root: works
2.6.13.1+bs2, TT mode, slackware 8.1 root from uml homepage: works
2.6.13.1+bs2, SKAS0 mode, 2005.1 gentoo root: hangs
2.6.13.1+bs2, SKAS0 mode, 2004.0 gentoo root: hangs
2.6.13.1+bs2, SKAS0 mode, slackware 8.1 root from uml homepage: works
(skas0 works on slackware, but hangs on gentoo, trying gentoo's
usermode-sources for guest instead)
2.6.12-r2-bs11, TT mode, 2005.1 gentoo root: works
2.6.12-r2-bs11, TT mode, 2004.0 gentoo root: works
2.6.12-r2-bs11, TT mode, slackware 8.1 root: works
2.6.12-r2-bs11, SKAS0 mode, 2005.1 gentoo root: hangs
2.6.12-r2-bs11, SKAS0 mode, 2004.0 gentoo root: hangs
2.6.12-r2-bs11, SKAS0 mode, slackware 8.1 root: works
(same results as with patched vanilla kernel as guest)
Having tried with different roots and different guest kernels, I now try
an unpatched host kernel, thinking maybe there's a problem with having
applied the host patch. Dropping 2004.0 test case since it didn't make any
difference. Host kernel is now unpatched 2.6.13.2:
2.6.12-r2-bs11, TT mode, 2005.1 gentoo root: works
2.6.12-r2-bs11, TT mode, slackware 8.1 root: works
However, now the guest kernel refuses to switch to SKAS0 mode. It runs in
TT despite that I have set mode=skas0 on arg line.
Compiling new kernel tree to be sure I didn't choose any strange options.
This time I simply exclude the TT mode (it isn't enabled by default).
2.6.13.2-bs2, SKAS0 mode, 2005.1 gentoo root: WORKS!!
Okidoki.. It's possible to get skas0 and gentoo to work together after
all. Why gentoo needs an unpatched host kernel, while slackware dont, I
have no clue.
Apart from the above, I also tested a few cases on a 32-bit host. This was
a bit unstructured, but my impression was that the results are the same,
ie gentoo guest won't boot in skas0 on a patched host.
Please suggest more test cases.
// Joel
-------------------------------------------------------
SF.Net email is sponsored by:
Tame your development challenges with Apache's Geronimo App Server.
Download
it for free - -and be entered to win a 42" plasma tv or your very own
Sony(tm)PSP. Click here to play: http://sourceforge.net/geronimo.php
_______________________________________________
User-mode-linux-user mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/user-mode-linux-user