lkml.org 
[lkml]   [2003]   [Jun]   [13]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
Date
From
SubjectRe: linux-2.4.21 released
Here's a minor patch against 2.4.21 that should help reduce out of 
memory problems on high ram systems with no swap space. It's only been
minimally tested in 2.4.21, but I've been running something similiar on
2.4.18 for a bit now.

Ross


diff -urbBd linux-2.4.21/include/linux/swap.h linux-2.4.21-1/include/linux/swap.h
--- linux-2.4.21/include/linux/swap.h Fri Jun 13 07:51:39 2003
+++ linux-2.4.21-1/include/linux/swap.h Fri Jun 13 10:40:24 2003
@@ -82,6 +82,7 @@

/* Swap 50% full? Release swapcache more aggressively.. */
#define vm_swap_full() (nr_swap_pages*2 < total_swap_pages)
+#define swap_avail() (nr_swap_pages > 0)

extern unsigned int nr_free_pages(void);
extern unsigned int nr_free_buffer_pages(void);
diff -urbBd linux-2.4.21/mm/vmscan.c linux-2.4.21-1/mm/vmscan.c
--- linux-2.4.21/mm/vmscan.c Thu Nov 28 15:53:15 2002
+++ linux-2.4.21-1/mm/vmscan.c Fri Jun 13 11:26:26 2003
@@ -474,6 +474,18 @@
spin_unlock(&pagecache_lock);
UnlockPage(page);
page_mapped:
+ /* if we don't have swap, it doesn't
+ do much good to swap things out. */
+ if (!page->mapping && !swap_avail()) {
+ /* Let's make the page active since we
+ cannot swap it out. It gets it off
+ the inactive list. */
+ spin_unlock(&pagemap_lru_lock);
+ activate_page(page);
+ ClearPageReferenced(page);
+ spin_lock(&pagemap_lru_lock);
+ continue;
+ }
if (--max_mapped >= 0)
continue;
\
 
 \ /
  Last update: 2005-03-22 13:36    [W:0.285 / U:0.088 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site