From: Jeff Dike <jdike@ka...> - 2001-09-17 19:34:38
> There was some talk before about speeding it up by removing the
> tracing tread. Are there any plans of implementing that?
I'm considering this to be a post-V1 thing, although if someone else does it
and sends me the patch, it'll happen sooner.
> I will be glad to help if there is anything I can do.
Basically, the idea is to add a second slow system call path on the host which
delivers a signal to the process instead of running the system call. It would
be controlled by an extra flag in the task structure alongside PT_TRACED. This
path would queue the signal and turn off the flag so that tracing is off for
the duration of the handler.
UML would invoke this with a new ptrace command, say PTRACE_SIGSYSCALL,
ptrace(pid, PTRACE_SIGSYSCALL, 0, SIGFOO)
where it chooses a signal to be delivered.
Then, the SIGFOO handler does what syscall_handler does now.
From: Jeff Dike <jdike@ka...> - 2001-09-17 22:02:32
> You mentioned some time ago that UML on FreeBSD would probably run a
> whole lot faster than UML on Linux.
I was told that FreeBSD doesn't use int 0x80 system calls, and that it
segfaults them. If so, implementing the system calls in the segfault handler
implements the scheme I described, using SIGSEGV as the system call signal.
However, I've since been told that FreeBSD uses int 0x80, in which case, this
would not be true.
> Would these changes address that?
> If so, what needs to be done?
These changes would implement what you would get for free on an OS that
segfaults Linux system calls.
From: Jeff Dike <jdike@ka...> - 2001-10-08 22:32:56
> Help from the host kernel? Cool!
Don't get excited until it actually exists :-)
> Check out the same file and see my changes... does it look better now?
> ; ) (www.linux.ime.usp.br/~livio/user-mode-linux/proc_kern_clean_up.dif
Yeah that's better.