Hi Alan,
Your compiler must really like you, seeing as it would barf on any
significant I/O here. Somewhere along the line, somebody removed
the INIT_LIST_HEAD for current->local_pages from fork.c and didn't
put it back somewhere else (like INIT_TASK or whatever was in mind.)
I just put it back where it was for now, not knowing what the
original intention was. As long as it is put somewhere... :-)
Paul.
--- kernel/fork.c~ Mon Jan 6 14:26:50 2003
+++ kernel/fork.c Tue Jan 21 05:30:17 2003
@@ -688,6 +688,8 @@
p->lock_depth = -1; /* -1 = no lock */
p->start_time = jiffies;
+ INIT_LIST_HEAD(&p->local_pages);
+
retval = -ENOMEM;
/* copy all the process information */
if (copy_files(clone_flags, p))
On Tue, 21 Jan 2003, Paul Gortmaker wrote:
>
> Your compiler must really like you, seeing as it would barf on any
> significant I/O here. Somewhere along the line, somebody removed
> the INIT_LIST_HEAD for current->local_pages from fork.c and didn't
> put it back somewhere else (like INIT_TASK or whatever was in mind.)
Yes, I posted the same patch a couple of days ago. We've now had
several confirmations (for which thanks) that it fixes __free_pages_ok
oops many were seeing in 2.4.21-pre3-ac. (But the problem was in
allocating memory when low, rather than in significant I/O.)
Hugh