Re: kswapd oops reproduced with 2.6.17-rc2 (was Oops with 2.6.15.3 on amd64)

From: Steinar H. Gunderson
Date: Wed Apr 26 2006 - 13:07:36 EST


On Wed, Apr 26, 2006 at 06:12:14PM +0200, Steinar H. Gunderson wrote:
> It isn't, but I hadn't changed the sources, .config or build environment
> since I built it, so I did a straight recompile with CONFIG_DEBUG_INFO set,
> and got:
>
> (gdb) l *(isolate_lru_pages+74)
> 0xffffffff80250c2a is in isolate_lru_pages (list.h:154).
>
> (I had to run gdb on a machine with 64-bit userspace, but I guess just
> copying the vmlinux file should suffice.)

FWIW, I kept on looking at this, and I believe the kernel's symbol table is
borked somehow. The code doesn't match with the disassembly at all, and the
address of isolate_lru_pages in my disassembly doesn't really match what's
in /proc/kallsyms. OTOH, if I disassemble, I can find the exact code fragment
from the "Code" dump at:

ffffffff8025096a <invalidate_mapping_pages>:

<...>

static inline int page_mapped(struct page *page)
{
return atomic_read(&(page)->_mapcount) >= 0;
ffffffff802509cf: 75 0a jne ffffffff802509db <invalidate_mapping_pages+0x71>
ffffffff802509d1: 0f 0b ud2a
ffffffff802509d3: 68 9d 0f 3c 80 pushq $0xffffffff803c0f9d
ffffffff802509d8: c2 4f 02 retq $0x24f
ffffffff802509db: 49 8b 10 mov (%r8),%rdx
ffffffff802509de: 49 8b 40 08 mov 0x8(%r8),%rax
ffffffff802509e2: 48 89 42 08 mov %rax,0x8(%rdx)
ffffffff802509e6: 48 89 10 mov %rdx,(%rax) <-- crash is here
ffffffff802509e9: 41 8b 50 e0 mov 0xffffffffffffffe0(%r8),%edx
ffffffff802509ed: 49 c7 00 00 01 10 00 movq $0x100100,(%r8)
ffffffff802509f4: 49 c7 40 08 00 02 20 movq $0x200200,0x8(%r8)
ffffffff802509fb: 00

which matches the _address_ from the kernel, but not the _symbol_ it spits
out. Something's odd here :-)

/* Steinar */
--
Homepage: http://www.sesse.net/
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/