From 6a79745b4cd9383b148206a7ee997d0a29327f45 Mon Sep 17 00:00:00 2001 From: Ingo Weinhold Date: Wed, 27 May 2009 13:57:07 +0000 Subject: [PATCH] Disabled the stack traces on unhandled userland page faults. As was already known those can cause a deadlock. Besides, when the debug server is running, it prints an even nicer stack trace. Not removing the code yet to make things easier for architectures on which we don't have a userland yet. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30877 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- src/system/kernel/vm/vm.cpp | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/system/kernel/vm/vm.cpp b/src/system/kernel/vm/vm.cpp index 4b6ace396b..e9877d3570 100644 --- a/src/system/kernel/vm/vm.cpp +++ b/src/system/kernel/vm/vm.cpp @@ -4496,10 +4496,6 @@ vm_page_fault(addr_t address, addr_t faultAddress, bool isWrite, bool isUser, // (and tools) vm_area* area = vm_area_lookup(addressSpace, faultAddress); -// TODO: The user_memcpy() below can cause a deadlock, if it causes a page -// fault and someone is already waiting for a write lock on the same address -// space. This thread will then try to acquire the semaphore again and will -// be queued after the writer. struct thread* thread = thread_get_current_thread(); dprintf("vm_page_fault: thread \"%s\" (%ld) in team \"%s\" (%ld) " "tried to %s address %#lx, ip %#lx (\"%s\" +%#lx)\n", @@ -4509,7 +4505,11 @@ vm_page_fault(addr_t address, addr_t faultAddress, bool isWrite, bool isUser, faultAddress - (area ? area->base : 0x0)); // We can print a stack trace of the userland thread here. -#if 1 +// TODO: The user_memcpy() below can cause a deadlock, if it causes a page +// fault and someone is already waiting for a write lock on the same address +// space. This thread will then try to acquire the lock again and will +// be queued after the writer. +#if 0 if (area) { struct stack_frame { #if defined(__INTEL__) || defined(__POWERPC__) || defined(__M68K__)