lkml.org 
[lkml]   [2008]   [Apr]   [8]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: proc_stack for x86_64 (spinning process)
On Tue, Apr 08, 2008 at 12:41:45PM +0100, Nuno Fernandes wrote:
> On Tuesday 08 April 2008 12:21:53 Andi Kleen wrote:
> > Nuno Pais Fernandes <npf@eurotux.com> writes:
> > > Hi,
> > >
> > > I have a spinning process that it's locking my server (eating 100% CPU).
> > > I can't kill it even with kill -9
> > >
> > > I'm trying to use proc_stack to check what's the problem, compiling the
> > > kernel with
> > >
> > > http://linuxhacker.ru/~nikita/patches/2.6.12-rc6/2005.06.11/vm_07-proc-st
> > >ack.patch
> > >
> > > But this patch is only for x86 as my arch is x86_64. Does anyone know if
> > > there's a patch for x86_64?
> >
> > The standard way to handle that is to just do
> >
> > echo 1 > /proc/sys/kernel/sysrq
> > echo t > /proc/sysrq-trigger
> >
> > and then look for the process backtrace in the kernel log.
> I've already done that but the problem is that the "R" script does not show
> any backtrack. Apparently it's spinning inside kernel and all other processes
> become in D state (uninterrutable sleep) because of that one.

Then you can either try to catch it with sysrq-p (but only works rarely)
or better use the crash method. But if the process is running live dump
might not work, you might need to force a non live dump using sysrq-c

Another way to identify spinning code is to use a profiler like oprofile
or readprofile. Something that spins tends to be on top.

-Andi



\
 
 \ /
  Last update: 2008-04-08 13:47    [W:1.247 / U:0.048 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site