Re: [PATCH] race condition in procfs

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



(Andrew, this will be the last email that I include you on.  I'm taking
you off unless you want to stay on this thread, and say so.  I figure
that you get enough spam without having to read through this. I'll
obviously add you back if this results in a patch.)

On Wed, 2005-11-30 at 16:29 +0100, Grzegorz Nosek wrote:
> 2005/11/30, Steven Rostedt <[email protected]>:
> >
> > OK, Remove your patches, run the system where you can capture the log,
> > and provide a full output of the oops.  Make sure you have
> > CONFIG_KALLSYMS set.
> >
> 
> OK, attached an oops from netconsole.
> 

The oops happened at address a01b50eb.  Could you go into the compiled
directory run gdb on vmlinux and type li *0xa01b50eb and show what you
get.

For example:

~/work/ernie/linux-2.6.15-rc2-git5$ gdb vmlinux
GNU gdb 6.3-debian
Copyright 2004 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB.  Type "show warranty" for details.
This GDB was configured as "i386-linux"...Using host libthread_db library "/lib/tls/libthread_db.so.1".

(gdb) li *0xc01019e0
0xc01019e0 is in sys_clone (arch/i386/kernel/process.c:768).
763     {
764             return do_fork(SIGCHLD, regs.esp, &regs, 0, NULL, NULL);
765     }
766
767     asmlinkage int sys_clone(struct pt_regs regs)
768     {
769             unsigned long clone_flags;
770             unsigned long newsp;
771             int __user *parent_tidptr, *child_tidptr;
772
(gdb)

Obviously, use "li *0xa01b50eb" instead of 0xc01019e0.

Now if you get an error in starting gdb like:

$ gdb vmlinux
GNU gdb 6.3.90_20051119-debian
Copyright 2004 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB.  Type "show warranty" for details.
This GDB was configured as "i486-linux-gnu"...(no debugging symbols found)
Using host libthread_db library "/lib/tls/libthread_db.so.1".

(gdb) li *0xa01b50eb
No symbol table is loaded.  Use the "file" command.
(gdb)

Notice the (no debugging symbols found).  Then start up make menuconfig,
goto "Kernel Hacking", set "Kernel Debugging" and "Compile the kernel
with debug info".  And try again.  It may also be helpful to have
"Compile the kernel with frame pointers" also set.  If you do this, you
will probably need to use something other than the 0xa01b50eb.  Look at
the output of the oops and see the following:

Nov 27 00:15:26 s35 [43281574.240000] CPU:    1
Nov 27 00:15:26 s35 [43281574.240000] EIP:    0060:[<a01b50eb>]    Not tainted VLI
Nov 27 00:15:26 s35 [43281574.240000] EFLAGS: 00010257   (2.6.14.2amd64smp.17)

That EIP is what I want.

-- Steve


-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[Index of Archives]     [Kernel Newbies]     [Netfilter]     [Bugtraq]     [Photo]     [Stuff]     [Gimp]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Video 4 Linux]     [Linux for the blind]     [Linux Resources]
  Powered by Linux