PERFORCE change 167408 for review
Edward Tomasz Napierala
trasz at FreeBSD.org
Sun Aug 16 14:21:49 UTC 2009
http://perforce.freebsd.org/chv.cgi?CH=167408
Change 167408 by trasz at trasz_anger on 2009/08/16 14:20:54
Even more KASSERTs.
Affected files ...
.. //depot/projects/soc2009/trasz_limits/sys/kern/kern_hrl.c#60 edit
Differences ...
==== //depot/projects/soc2009/trasz_limits/sys/kern/kern_hrl.c#60 (text+ko) ====
@@ -120,14 +120,13 @@
MALLOC_DEFINE(M_HRL, "hrl", "Hierarchical Resource Limits");
-#ifdef INVARIANTS
+#ifdef DIAGNOSTIC
/*
* Go through the resource usage info and verify that it makes sense.
*/
static void
hrl_assert_proc(const struct proc *p __unused)
{
-#ifdef notyet
int i, resource;
struct ucred *cred;
struct prison *pr;
@@ -139,18 +138,29 @@
("resource usage propagation meltdown"));
KASSERT(cred->cr_ruidinfo->ui_usage.hu_resources[resource] >= 0,
("resource usage propagation meltdown"));
- for (pr = cred->cr_prison; pr != NULL; pr = pr->pr_parent)
+ KASSERT(cred->cr_ruidinfo->ui_usage.hu_resources[resource] >=
+ p->p_usage.hu_resources[resource],
+ ("resource usage propagation meltdown"));
+ for (pr = cred->cr_prison; pr != NULL; pr = pr->pr_parent) {
KASSERT(pr->pr_usage.hu_resources[resource] >= 0,
("resource usage propagation meltdown"));
+ KASSERT(pr->pr_usage.hu_resources[resource] >=
+ p->p_usage.hu_resources[resource],
+ ("resource usage propagation meltdown"));
+ }
if (hrl_group_accounting) {
for (i = 0; i < cred->cr_ngroups; i++) {
- for (resource = 0; resource < HRL_RESOURCE_MAX; resource++)
- KASSERT(cred->cr_gidinfos[i]->gi_usage.hu_resources[resource] >= 0, ("resource usage propagation meltdown"));
+ for (resource = 0; resource < HRL_RESOURCE_MAX; resource++) {
+ KASSERT(cred->cr_gidinfos[i]->gi_usage.hu_resources[resource] >= 0,
+ ("resource usage propagation meltdown"));
+ KASSERT(cred->cr_gidinfos[i]->gi_usage.hu_resources[resource] >=
+ p->p_usage.hu_resources[resource],
+ ("resource usage propagation meltdown"));
+ }
}
}
-#endif
}
-#endif /* INVARIANTS */
+#endif /* DIAGNOSTIC */
void
hrl_proc_exiting(struct proc *p)
@@ -507,7 +517,7 @@
continue;
}
}
-#ifdef INVARIANTS
+#ifdef DIAGNOSTIC
hrl_assert_proc(p);
#endif
mtx_unlock(&hrl_lock);
@@ -571,7 +581,7 @@
continue;
}
}
-#ifdef INVARIANTS
+#ifdef DIAGNOSTIC
hrl_assert_proc(p);
#endif
mtx_unlock(&hrl_lock);
@@ -626,7 +636,7 @@
continue;
}
}
-#ifdef INVARIANTS
+#ifdef DIAGNOSTIC
hrl_assert_proc(p);
#endif
mtx_unlock(&hrl_lock);
More information about the p4-projects
mailing list