FAQ Search Today's Posts Mark Forums Read
» Video Reviews

» Linux Archive

Linux-archive is a website aiming to archive linux email lists and to make them easily accessible for linux users/developers.


» Sponsor

» Partners

» Sponsor

Go Back   Linux Archive > Debian > Debian Kernel

 
 
LinkBack Thread Tools
 
Old 08-26-2011, 06:47 AM
François-Frédéric Ozog
 
Default Bug#556030: Root cause: deadlock in a driver

We extensively researched the problem.
*
The TLB flush softlockup is only a CONSEQUENCE of a deadlock.
*
Background: The TLB flush is issued by a CPU to *a number of other CPUs using inter-processor interupts to progagate paging changes. Then the issuing CPU loops until all processor acknowledge the change. If such processor is in deadlock on a spinlock, this never hapens, then the softlockup triggers. The deadlock arise on a spinlock, this lock may be held by user code sometimes (through /proc or /sys interfaces of modules).
*
The only way to identify the root cause (i.e. which driver is causing problems) is to dump ALL CPU stacks in the soft lockup code.
*
One way to do that is to modifiy the kernel and add
*************** arch_trigger_all_cpu_backtrace()
in the
*************** kernel/softlockup.c:softlockup_tick()
function.
*
This is based on NMI IPI which ensure all stacks are dump, even in the case of deadlock (well don't expect the impossible to happen either).
*
You should easily find the faulty driver and post the relevant bug.
*
Hope this helps
*
François-Frédéric
 

Thread Tools




All times are GMT. The time now is 06:06 AM.

VBulletin, Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.
Content Relevant URLs by vBSEO ©2007, Crawlability, Inc.
Copyright ©2007 - 2008, www.linux-archive.org