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()
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

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