提交 469226a4 编写于 作者: J Jeff Dike 提交者: Linus Torvalds

[PATCH] uml: remove syscall debugging

Eliminate an unused debug option.
Signed-off-by: NJeff Dike <jdike@addtoit.com>
Cc: Paolo 'Blaisorblade' Giarrusso <blaisorblade@yahoo.it>
Signed-off-by: NAndrew Morton <akpm@osdl.org>
Signed-off-by: NLinus Torvalds <torvalds@osdl.org>
上级 29ac1c21
...@@ -47,13 +47,4 @@ config GCOV ...@@ -47,13 +47,4 @@ config GCOV
If you're involved in UML kernel development and want to use gcov, If you're involved in UML kernel development and want to use gcov,
say Y. If you're unsure, say N. say Y. If you're unsure, say N.
config SYSCALL_DEBUG
bool "Enable system call debugging"
depends on DEBUG_INFO
help
This adds some system debugging to UML, including keeping a ring buffer
with recent system calls and some global and per-task statistics.
If unsure, say N
endmenu endmenu
...@@ -526,4 +526,3 @@ CONFIG_FORCED_INLINING=y ...@@ -526,4 +526,3 @@ CONFIG_FORCED_INLINING=y
# CONFIG_RCU_TORTURE_TEST is not set # CONFIG_RCU_TORTURE_TEST is not set
# CONFIG_GPROF is not set # CONFIG_GPROF is not set
# CONFIG_GCOV is not set # CONFIG_GCOV is not set
# CONFIG_SYSCALL_DEBUG is not set
...@@ -15,7 +15,6 @@ obj-y = config.o exec_kern.o exitcode.o \ ...@@ -15,7 +15,6 @@ obj-y = config.o exec_kern.o exitcode.o \
obj-$(CONFIG_BLK_DEV_INITRD) += initrd.o obj-$(CONFIG_BLK_DEV_INITRD) += initrd.o
obj-$(CONFIG_GPROF) += gprof_syms.o obj-$(CONFIG_GPROF) += gprof_syms.o
obj-$(CONFIG_GCOV) += gmon_syms.o obj-$(CONFIG_GCOV) += gmon_syms.o
obj-$(CONFIG_SYSCALL_DEBUG) += syscall.o
obj-$(CONFIG_MODE_TT) += tt/ obj-$(CONFIG_MODE_TT) += tt/
obj-$(CONFIG_MODE_SKAS) += skas/ obj-$(CONFIG_MODE_SKAS) += skas/
......
...@@ -18,11 +18,7 @@ void handle_syscall(union uml_pt_regs *r) ...@@ -18,11 +18,7 @@ void handle_syscall(union uml_pt_regs *r)
struct pt_regs *regs = container_of(r, struct pt_regs, regs); struct pt_regs *regs = container_of(r, struct pt_regs, regs);
long result; long result;
int syscall; int syscall;
#ifdef UML_CONFIG_SYSCALL_DEBUG
int index;
index = record_syscall_start(UPT_SYSCALL_NR(r));
#endif
syscall_trace(r, 0); syscall_trace(r, 0);
current->thread.nsyscalls++; current->thread.nsyscalls++;
...@@ -44,7 +40,4 @@ void handle_syscall(union uml_pt_regs *r) ...@@ -44,7 +40,4 @@ void handle_syscall(union uml_pt_regs *r)
REGS_SET_SYSCALL_RETURN(r->skas.regs, result); REGS_SET_SYSCALL_RETURN(r->skas.regs, result);
syscall_trace(r, 1); syscall_trace(r, 1);
#ifdef UML_CONFIG_SYSCALL_DEBUG
record_syscall_end(index, result);
#endif
} }
/*
* Copyright (C) 2002 Jeff Dike (jdike@karaya.com)
* Licensed under the GPL
*/
#include "kern_util.h"
#include "syscall.h"
#include "os.h"
struct {
int syscall;
int pid;
long result;
unsigned long long start;
unsigned long long end;
} syscall_record[1024];
int record_syscall_start(int syscall)
{
int max, index;
max = sizeof(syscall_record)/sizeof(syscall_record[0]);
index = next_syscall_index(max);
syscall_record[index].syscall = syscall;
syscall_record[index].pid = current_pid();
syscall_record[index].result = 0xdeadbeef;
syscall_record[index].start = os_nsecs();
return(index);
}
void record_syscall_end(int index, long result)
{
syscall_record[index].result = result;
syscall_record[index].end = os_nsecs();
}
...@@ -21,18 +21,11 @@ void syscall_handler_tt(int sig, struct pt_regs *regs) ...@@ -21,18 +21,11 @@ void syscall_handler_tt(int sig, struct pt_regs *regs)
void *sc; void *sc;
long result; long result;
int syscall; int syscall;
#ifdef CONFIG_SYSCALL_DEBUG
int index;
#endif
sc = UPT_SC(&regs->regs); sc = UPT_SC(&regs->regs);
SC_START_SYSCALL(sc); SC_START_SYSCALL(sc);
syscall = UPT_SYSCALL_NR(&regs->regs); syscall = UPT_SYSCALL_NR(&regs->regs);
#ifdef CONFIG_SYSCALL_DEBUG
index = record_syscall_start(syscall);
#endif
syscall_trace(&regs->regs, 0); syscall_trace(&regs->regs, 0);
current->thread.nsyscalls++; current->thread.nsyscalls++;
...@@ -50,7 +43,4 @@ void syscall_handler_tt(int sig, struct pt_regs *regs) ...@@ -50,7 +43,4 @@ void syscall_handler_tt(int sig, struct pt_regs *regs)
SC_SET_SYSCALL_RETURN(sc, result); SC_SET_SYSCALL_RETURN(sc, result);
syscall_trace(&regs->regs, 1); syscall_trace(&regs->regs, 1);
#ifdef CONFIG_SYSCALL_DEBUG
record_syscall_end(index, result);
#endif
} }
...@@ -188,10 +188,7 @@ int tracer(int (*init_proc)(void *), void *sp) ...@@ -188,10 +188,7 @@ int tracer(int (*init_proc)(void *), void *sp)
int status, pid = 0, sig = 0, cont_type, tracing = 0, op = 0; int status, pid = 0, sig = 0, cont_type, tracing = 0, op = 0;
int proc_id = 0, n, err, old_tracing = 0, strace = 0; int proc_id = 0, n, err, old_tracing = 0, strace = 0;
int local_using_sysemu = 0; int local_using_sysemu = 0;
#ifdef UML_CONFIG_SYSCALL_DEBUG
unsigned long eip = 0;
int last_index;
#endif
signal(SIGPIPE, SIG_IGN); signal(SIGPIPE, SIG_IGN);
setup_tracer_winch(); setup_tracer_winch();
tracing_pid = os_getpid(); tracing_pid = os_getpid();
...@@ -282,23 +279,6 @@ int tracer(int (*init_proc)(void *), void *sp) ...@@ -282,23 +279,6 @@ int tracer(int (*init_proc)(void *), void *sp)
else if(WIFSTOPPED(status)){ else if(WIFSTOPPED(status)){
proc_id = pid_to_processor_id(pid); proc_id = pid_to_processor_id(pid);
sig = WSTOPSIG(status); sig = WSTOPSIG(status);
#ifdef UML_CONFIG_SYSCALL_DEBUG
if(signal_index[proc_id] == 1024){
signal_index[proc_id] = 0;
last_index = 1023;
}
else last_index = signal_index[proc_id] - 1;
if(((sig == SIGPROF) || (sig == SIGVTALRM) ||
(sig == SIGALRM)) &&
(signal_record[proc_id][last_index].signal == sig)&&
(signal_record[proc_id][last_index].pid == pid))
signal_index[proc_id] = last_index;
signal_record[proc_id][signal_index[proc_id]].pid = pid;
gettimeofday(&signal_record[proc_id][signal_index[proc_id]].time, NULL);
eip = ptrace(PTRACE_PEEKUSR, pid, PT_IP_OFFSET, 0);
signal_record[proc_id][signal_index[proc_id]].addr = eip;
signal_record[proc_id][signal_index[proc_id]++].signal = sig;
#endif
if(proc_id == -1){ if(proc_id == -1){
sleeping_process_signal(pid, sig); sleeping_process_signal(pid, sig);
continue; continue;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册