[patch 1/1] UML Support - SYSEMU: slight cleanup and speedup

From: blaisorblade
Date: Sun Jul 31 2005 - 13:08:45 EST

From: Paolo 'Blaisorblade' Giarrusso <blaisorblade@xxxxxxxx>
CC: Charles P. Wright <cwright@xxxxxxxxxxxxx>

As a follow-up to "UML Support - Ptrace: adds the host SYSEMU support, for UML
and general usage" (i.e. uml-support-* in current mm).

Avoid unconditionally jumping to work_pending and code copying, just reuse the
already existing resume_userspace path.

About those patches, they should stay in -mm only for now - I expect to get
them reviewed.

One interesting note, from Charles P. Wright, suggested that the API is
improvable with no downsides for UML (except that it will have to support yet
another host API, since dropping support for the current API, for UML, is not
reasonable from users' point of view).

Signed-off-by: Paolo 'Blaisorblade' Giarrusso <blaisorblade@xxxxxxxx>

linux-2.6.git-paolo/arch/i386/kernel/entry.S | 8 +-------
1 files changed, 1 insertion(+), 7 deletions(-)

diff -puN arch/i386/kernel/entry.S~sysemu-cleanup-speedup arch/i386/kernel/entry.S
--- linux-2.6.git/arch/i386/kernel/entry.S~sysemu-cleanup-speedup 2005-07-31 20:03:19.000000000 +0200
+++ linux-2.6.git-paolo/arch/i386/kernel/entry.S 2005-07-31 20:03:19.000000000 +0200
@@ -339,18 +339,12 @@ syscall_trace_entry:
xorl %edx,%edx
call do_syscall_trace
cmpl $0, %eax
- jne syscall_skip # ret != 0 -> running under PTRACE_SYSEMU,
+ jne resume_userspace # ret != 0 -> running under PTRACE_SYSEMU,
# so must skip actual syscall
movl ORIG_EAX(%esp), %eax
cmpl $(nr_syscalls), %eax
jnae syscall_call
jmp syscall_exit
- cli # make sure we don't miss an interrupt
- # setting need_resched or sigpending
- # between sampling and the iret
- movl TI_flags(%ebp), %ecx
- jmp work_pending

# perform syscall exit tracing
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/