aboutsummaryrefslogtreecommitdiffstats
path: root/mm/thrash.c
diff options
context:
space:
mode:
authorSteve French <sfrench@us.ibm.com>2005-11-29 20:56:07 -0800
committerSteve French <sfrench@us.ibm.com>2005-11-29 20:56:07 -0800
commit606c0dafbe88102d64c1253caed8a2c36987070f (patch)
tree23ce7b30341e71c6da8e0183d27e29167e833e26 /mm/thrash.c
parent6ab16d249513a50bef3f1b275cea6aa8d3f51832 (diff)
parentd2ef5ebb4c4fe141a82252d4db8d8521e6765c5a (diff)
downloadkernel_samsung_smdk4412-606c0dafbe88102d64c1253caed8a2c36987070f.zip
kernel_samsung_smdk4412-606c0dafbe88102d64c1253caed8a2c36987070f.tar.gz
kernel_samsung_smdk4412-606c0dafbe88102d64c1253caed8a2c36987070f.tar.bz2
Merge with /pub/scm/linux/kernel/git/torvalds/linux-2.6.git
Diffstat (limited to 'mm/thrash.c')
-rw-r--r--mm/thrash.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/mm/thrash.c b/mm/thrash.c
index eff3c18..f4c560b 100644
--- a/mm/thrash.c
+++ b/mm/thrash.c
@@ -57,14 +57,17 @@ void grab_swap_token(void)
/* We have the token. Let others know we still need it. */
if (has_swap_token(current->mm)) {
current->mm->recent_pagein = 1;
+ if (unlikely(!swap_token_default_timeout))
+ disable_swap_token();
return;
}
if (time_after(jiffies, swap_token_check)) {
- /* Can't get swapout protection if we exceed our RSS limit. */
- // if (current->mm->rss > current->mm->rlimit_rss)
- // return;
+ if (!swap_token_default_timeout) {
+ swap_token_check = jiffies + SWAP_TOKEN_CHECK_INTERVAL;
+ return;
+ }
/* ... or if we recently held the token. */
if (time_before(jiffies, current->mm->swap_token_time))
@@ -95,6 +98,7 @@ void __put_swap_token(struct mm_struct *mm)
{
spin_lock(&swap_token_lock);
if (likely(mm == swap_token_mm)) {
+ mm->swap_token_time = jiffies + SWAP_TOKEN_CHECK_INTERVAL;
swap_token_mm = &init_mm;
swap_token_check = jiffies;
}