lkml.org 
[lkml]   [1996]   [Apr]   [7]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: Crash report #1 with SADISTIC_KMALLOC/no modules

[...]

> The "Code:" part disassembles to
>
> repz movsl %ds:(%esi),%es:(%edi)
> andl $0x3,%ebx
> movl %ebx,%ecx
> repz movsb %ds:(%esi),%es:(%edi)
> popl %es
> pushl $0x0
> movl 0x20(%esp,1),%esi

[...]

> Ok, so far so good. HOWEVER, that instruction then traps with:
>
> Unable to handle kernel paging request at virtual address 00000004
>
>even though virtual address 0x00000004 never even enters the picture. In
>short, that particular instruction should under no circumstances be able
>to trap with that address.

This is not quite true. I can see at least two possibilities where
the instruction could validly generate the page fault:

1. The page directory or some page table contains bogus information.
This includes entries not flushed correctly.

2. A non-sequential event (i.e., an interrupt) hides the real cause.

3. Something trashes [part of] the register dump before it gets
dumped.

I don't really believe in 2 and 3, but 1 could generate some really
nasty-to-find, long-hiding, "non-deterministic" crashes.

If I remember things right then CR2 contains a physical address, not
a linear one. Something could also have gone wrong with the
translation before the printing.


Morten


\
 
 \ /
  Last update: 2005-03-22 13:37    [W:0.174 / U:1.544 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site