* [PATCH] UML - Remove debugging code from page fault path
@ 2005-07-31 17:13 Jeff Dike
0 siblings, 0 replies; only message in thread
From: Jeff Dike @ 2005-07-31 17:13 UTC (permalink / raw)
To: akpm; +Cc: linux-kernel, user-mode-linux-devel
This eliminates the segfault info ring buffer, which added a system call to
each page fault, and which hadn't been useful for debugging in ages.
Signed-off-by: Jeff Dike <jdike@addtoit.com>
Index: linux-2.6.12/arch/um/kernel/trap_kern.c
===================================================================
--- linux-2.6.12.orig/arch/um/kernel/trap_kern.c 2005-07-31 12:54:35.000000000 -0400
+++ linux-2.6.12/arch/um/kernel/trap_kern.c 2005-07-31 13:18:40.000000000 -0400
@@ -200,30 +200,3 @@
void trap_init(void)
{
}
-
-DEFINE_SPINLOCK(trap_lock);
-
-static int trap_index = 0;
-
-int next_trap_index(int limit)
-{
- int ret;
-
- spin_lock(&trap_lock);
- ret = trap_index;
- if(++trap_index == limit)
- trap_index = 0;
- spin_unlock(&trap_lock);
- return(ret);
-}
-
-/*
- * Overrides for Emacs so that we follow Linus's tabbing style.
- * Emacs will notice this stuff at the end of the file and automatically
- * adjust the settings for this buffer only. This must remain at the end
- * of the file.
- * ---------------------------------------------------------------------------
- * Local variables:
- * c-file-style: "linux"
- * End:
- */
Index: linux-2.6.12/arch/um/kernel/trap_user.c
===================================================================
--- linux-2.6.12.orig/arch/um/kernel/trap_user.c 2005-07-31 12:54:35.000000000 -0400
+++ linux-2.6.12/arch/um/kernel/trap_user.c 2005-07-31 13:18:02.000000000 -0400
@@ -40,35 +40,14 @@
} while(1);
}
-/* Unlocked - don't care if this is a bit off */
-int nsegfaults = 0;
-
-struct {
- unsigned long address;
- int is_write;
- int pid;
- unsigned long sp;
- int is_user;
-} segfault_record[1024];
-
void segv_handler(int sig, union uml_pt_regs *regs)
{
- int index, max;
struct faultinfo * fi = UPT_FAULTINFO(regs);
if(UPT_IS_USER(regs) && !SEGV_IS_FIXABLE(fi)){
bad_segv(*fi, UPT_IP(regs));
return;
}
- max = sizeof(segfault_record)/sizeof(segfault_record[0]);
- index = next_trap_index(max);
-
- nsegfaults++;
- segfault_record[index].address = FAULT_ADDRESS(*fi);
- segfault_record[index].pid = os_getpid();
- segfault_record[index].is_write = FAULT_WRITE(*fi);
- segfault_record[index].sp = UPT_SP(regs);
- segfault_record[index].is_user = UPT_IS_USER(regs);
segv(*fi, UPT_IP(regs), UPT_IS_USER(regs), regs);
}
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2005-07-31 18:02 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2005-07-31 17:13 [PATCH] UML - Remove debugging code from page fault path Jeff Dike
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
Powered by JetHome