summaryrefslogtreecommitdiff
path: root/viengoos
diff options
context:
space:
mode:
authorneal <neal>2008-06-23 19:58:47 +0000
committerneal <neal>2008-06-23 19:58:47 +0000
commit68ed7a07912acd5b5e7ba8b239681413f482e145 (patch)
treec402d196d77e0782428b9f5282a618710669d244 /viengoos
parent13948e6ff6a0cf094c9d104852fbf6e36a7f2e8d (diff)
hurd/
2008-06-23 Neal H. Walfield <neal@gnu.org> * activity.h (struct activity_stats): New fields available_local, pending_eviction and discarded. viengoos/ 2008-06-23 Neal H. Walfield <neal@gnu.org> * memory.c (memory_frame_allocate): If we discard a page, update DESC->ACTIVITY's DISCARDED statistic. * pager.c (pager_collect): When we collect an activity, update its pressure statistic.
Diffstat (limited to 'viengoos')
-rw-r--r--viengoos/ChangeLog8
-rw-r--r--viengoos/memory.c5
-rw-r--r--viengoos/pager.c3
3 files changed, 15 insertions, 1 deletions
diff --git a/viengoos/ChangeLog b/viengoos/ChangeLog
index 791061f..6e99205 100644
--- a/viengoos/ChangeLog
+++ b/viengoos/ChangeLog
@@ -1,5 +1,13 @@
2008-06-23 Neal H. Walfield <neal@gnu.org>
+ * memory.c (memory_frame_allocate): If we discard a page, update
+ DESC->ACTIVITY's DISCARDED statistic.
+
+ * pager.c (pager_collect): When we collect an activity, update
+ its pressure statistic.
+
+2008-06-23 Neal H. Walfield <neal@gnu.org>
+
* pager.c: Include "profile.h".
(pager_collect): Profile.
diff --git a/viengoos/memory.c b/viengoos/memory.c
index 257459b..1c9d60f 100644
--- a/viengoos/memory.c
+++ b/viengoos/memory.c
@@ -396,7 +396,10 @@ memory_frame_allocate (struct activity *activity)
bool discarded = desc->dirty;
if (discarded)
- assert (desc->policy.discardable);
+ {
+ assert (desc->policy.discardable);
+ ACTIVITY_STATS (desc->activity)->discarded ++;
+ }
oid_t oid = desc->oid;
memory_object_destroy (activity, object);
diff --git a/viengoos/pager.c b/viengoos/pager.c
index a489dbe..0dd3f72 100644
--- a/viengoos/pager.c
+++ b/viengoos/pager.c
@@ -502,6 +502,9 @@ pager_collect (int goal)
if (! victim)
break;
+
+ ACTIVITY_STATS (victim)->pressure += 4;
+
assert (victim);
}
while (victim != parent);