All of lore.kernel.org
 help / color / mirror / Atom feed
From: Antoine Martin <antoine@nagafix.co.uk>
To: UML devel <user-mode-linux-devel@lists.sourceforge.net>
Subject: [uml-devel] skas3 (almost) works on amd64?
Date: Sun, 18 Dec 2005 19:03:58 +0000	[thread overview]
Message-ID: <1134932639.10491.78.camel@localhost.localdomain> (raw)
In-Reply-To: <1113844082.11747.33.camel@cobra>

(..)
> > I can't speak to how stable it was. I'm pretty sure I wasn't using Skas,
> It isn't skas as the skas3 code hasn't been ported to x86_64 yet.
Or has it?
I've just removed mode=skas0 from the command line during testing and I
was surprised to see this:
Checking that ptrace can change system call numbers...OK
Checking syscall emulation patch for ptrace...missing
Checking PROT_EXEC mmap in /dev/shm/...OK
Checking if syscall restart handling in host can be skipped...OK
Checking for the skas3 patch in the host:
  - /proc/mm...found
  - PTRACE_FAULTINFO...found
  - PTRACE_LDT...found
UML running in SKAS3 mode
??????
The host was patched with the skas patch (even though it is a 64bit
kernel) as the patch does not seem to interfere and it clearly provides
something useful!

Now it doesn't quite work for me, but it is close enough that I feel it
is well worth investigating (skas3 being much faster - even though skas0
is pretty good - skas3 stills has the advantage)

Here are some test results:
* with kernel32-2.6.15-rc5:
it gets stuck right after printing "SKAS3 mode", here is the full strace
(not big 16KB):
http://uml.nagafix.co.uk/logs/2.6.15-rc5-skas3.strace
the last few lines are:
sigaltstack({ss_sp=0xa0464000, ss_flags=0x3ffc,
ss_size=11548988665867022973}, NULL) = 0
rt_sigaction(SIGUSR1, {0x8000000a0023390, [], 0}, NULL, 8) = 0
rt_sigprocmask(SIG_UNBLOCK, [USR1], NULL, 8) = 0
getpid()                                = 22917
kill(22917, SIGUSR1)                    = 0
--- SIGUSR1 (User defined signal 1) @ 0 (0) ---
rt_sigprocmask(SIG_UNBLOCK, [USR1], [USR1], 8) = 0
sigaltstack({ss_sp=0x200000000, ss_flags=0, ss_size=6979621237}, NULL) =
0
getpid()                                = 22917
pause(
--- It hangs there until I ^C it.

* with kernel32-2.6.14.4-bs3 and kernel32-2.6.13-bs3 (and others):
as above but the strace is different!?, here it is (76KB)
http://uml.nagafix.co.uk/logs/2.6.14.4-bs3.strace
difference is that this is similar to what was reported a while back:
lots of these:
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
And at the end:
kill(23087, SIGKILL)                    = 0
--- SIGCHLD (Child exited) @ 0 (0) ---
ptrace(PTRACE_KILL, 23087, 0x8000, 0xa001ab33) = 0
Segmentation fault

* with 2.4.32-bs2:
Apart from this warning near the top:
Checking for /dev/anon on the host...Not available (open failed with
errno 2)
It spins (consuming CPU) after mounting root (or mounting devfs if
enabled) with:
rt_sigprocmask(SIG_BLOCK, [ALRM VTALRM IO], NULL, 8) = 0
rt_sigprocmask(SIG_UNBLOCK, [ALRM VTALRM IO], [ALRM VTALRM IO], 8) = 0
Interestingly similar to 2.6.14/2.6.13 above, log here (a lot bigger:
260MB uncompressed / 220KB compressed):
http://uml.nagafix.co.uk/logs/2.4.32-bs2.strace.bz2

* with 2.6.15-rc1:
As with 2.4.32, it spins after mounting root, but seems to be on this:
--- SIGCHLD (Child exited) @ 0 (0) ---
waitpid(23866, [{WIFSTOPPED(s) && WSTOPSIG(s) == SIGSEGV}], WSTOPPED) =
23866
ptrace(PTRACE_GETREGS, 23866, 0, 0xa07af9d4) = 0
ptrace(PTRACE_GETFPXREGS, 23866, 0, 0xa07afbcc) = 0
ptrace(0x34 /* PTRACE_??? */, 23866, 0, 0xa07afdcc) = 0
gettimeofday({1021846869037274, 11531684934252935416}, NULL) = 0
write(4, "137333\t 1134874842.237917  Alloc"..., 49) = 49
ptrace(PTRACE_SETREGS, 23866, 0, 0xa07af9d4) = 0
ptrace(PTRACE_SETFPXREGS, 23866, 0, 0xa07afbcc) = 0
ptrace(PTRACE_SYSCALL, 23866, 0, SIG_0) = 0
--- SIGCHLD (Child exited) @ 0 (0) ---
full log here (700MB/840KB)


The kernels were built using vanilla gcc-3.4.4, and the tests were
repeated on 2 separate platforms (gentoo 2005.1 and FC4) - selinux was
disabled for the tests.

Antoine



-------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc. Do you grep through log files
for problems?  Stop!  Download the new AJAX search engine that makes
searching your log files as easy as surfing the  web.  DOWNLOAD SPLUNK!
http://ads.osdn.com/?ad_id=7637&alloc_id=16865&op=click
_______________________________________________
User-mode-linux-devel mailing list
User-mode-linux-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/user-mode-linux-devel

       reply	other threads:[~2005-12-18 19:04 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <200504181134.53390.markc@renta.net>
     [not found] ` <1113830263.11747.3.camel@cobra>
     [not found]   ` <1113841384.12075.6.camel@localhost>
     [not found]     ` <1113844082.11747.33.camel@cobra>
2005-12-18 19:03       ` Antoine Martin [this message]
2005-12-19 16:23         ` [uml-devel] skas3 (almost) works on amd64? Blaisorblade
2005-12-19 18:41           ` Antoine Martin
2005-12-19 18:49             ` Blaisorblade

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1134932639.10491.78.camel@localhost.localdomain \
    --to=antoine@nagafix.co.uk \
    --cc=user-mode-linux-devel@lists.sourceforge.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.