lkml.org 
[lkml]   [1996]   [Mar]   [12]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: Linux-1.3.71..
Sidewinder: "Re: Linux-1.3.71.." (Mar 11, 18:27):
>
> Unfortunately it trashed /tmp's root directory, and the kernel fell over
> *again* in get_free_pages on bootup. There is a major bug somewhere in that
> function.

Very improbable.

However, the "get_free_pages()" function is one of the most called
functions in the kernel, _and_ it is very susceptible to pointer
corruption. If some part of the kernel used a pointer that isn't valid
any more (for example, a pointer to a memory block that had been free'd
earlier), and corrupted the linked list of free pages, you'll see
problems in get_free_page().

This also makes that kind of bug very hard to find: by the time you get
the kernel Oops the thing that corrupted the list is long gone already.

I'll see if I can make it a bit more resistant to programming errors in
the kernel (by moving the free page lists into the "mem_map[]" array, so
that the list isn't in the free page itself). That won't make whatever
bug go away, but it might make it easier to debug (when the crash
hopefully happens in a less critical section).

Linus


\
 
 \ /
  Last update: 2009-11-18 23:46    [W:0.023 / U:0.480 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site