patch-2.1.127 linux/mm/page_alloc.c
Next file: linux/mm/slab.c
Previous file: linux/mm/mmap.c
Back to the patch index
Back to the overall index
- Lines: 22
- Date:
Thu Oct 29 12:53:39 1998
- Orig file:
v2.1.126/linux/mm/page_alloc.c
- Orig date:
Fri Oct 23 22:01:27 1998
diff -u --recursive --new-file v2.1.126/linux/mm/page_alloc.c linux/mm/page_alloc.c
@@ -268,14 +268,15 @@
spin_unlock_irqrestore(&page_alloc_lock, flags);
/*
- * If we failed to find anything, we'll return NULL, but we'll
- * wake up kswapd _now_ ad even wait for it synchronously if
- * we can.. This way we'll at least make some forward progress
- * over time.
+ * If we can schedule, do so, and make sure to yield.
+ * We may be a real-time process, and if kswapd is
+ * waiting for us we need to allow it to run a bit.
*/
- wake_up(&kswapd_wait);
- if (gfp_mask & __GFP_WAIT)
+ if (gfp_mask & __GFP_WAIT) {
+ current->policy |= SCHED_YIELD;
schedule();
+ }
+
nopage:
return 0;
}
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen, slshen@lbl.gov