PERFORCE change 165762 for review

Edward Tomasz Napierala trasz at FreeBSD.org
Tue Jul 7 17:49:01 UTC 2009


http://perforce.freebsd.org/chv.cgi?CH=165762

Change 165762 by trasz at trasz_victim on 2009/07/07 17:48:09

	Add some more debugging stuff, fix a KASSERT.

Affected files ...

.. //depot/projects/soc2009/trasz_limits/sys/kern/kern_hrl.c#26 edit

Differences ...

==== //depot/projects/soc2009/trasz_limits/sys/kern/kern_hrl.c#26 (text+ko) ====

@@ -53,6 +53,7 @@
 #define	HRF_DONT_ACCUMULATE	2
 
 int hrl_group_accounting = 0;
+
 TUNABLE_INT("kern.hrl_group_accounting", &hrl_group_accounting);
 SYSCTL_INT(_kern, OID_AUTO, hrl_group_accounting, CTLFLAG_RD, &hrl_group_accounting, 0, "");
 
@@ -199,11 +200,11 @@
 	 */
 	hrl_allocated_proc(p, HRL_RESOURCE_FILESIZE, 0);
 	hrl_allocated_proc(p, HRL_RESOURCE_COREDUMPSIZE, 0);
+	hrl_allocated_proc(p, HRL_RESOURCE_PTY, 0);
 
 	mtx_lock(&hrl_lock);
 	for (i = 0; i < HRL_RESOURCE_MAX; i++) {
-		if (p->p_usage.hu_resources[i] != 0)
-			KASSERT(p->p_usage.hu_resources == 0,
+		KASSERT(p->p_usage.hu_resources[i] == 0,
 			    ("dead process still holding resources"));
 	}
 	mtx_unlock(&hrl_lock);
@@ -287,6 +288,10 @@
 	KASSERT(amount > 0, ("hrl_alloc_proc: invalid amount for %s: %lld",
 	    hrl_resource_name(resource), amount));
 
+#if 0
+	printf("hrl_alloc_proc: allocating %lld of %s for %s (pid %d)\n", amount, hrl_resource_name(resource), p->p_comm, p->p_pid);
+#endif
+
 	mtx_lock(&hrl_lock);
 	p->p_usage.hu_resources[resource] += amount;
 	cred = p->p_ucred;
@@ -347,6 +352,10 @@
 	KASSERT(amount >= 0, ("hrl_allocated_proc: invalid amount for %s: %lld",
 	    hrl_resource_name(resource), amount));
 
+#if 0
+	printf("hrl_allocated_proc: allocated %lld of %s for %s (pid %d)\n", amount, hrl_resource_name(resource), p->p_comm, p->p_pid);
+#endif
+
 	mtx_lock(&hrl_lock);
 	diff = amount - p->p_usage.hu_resources[resource];
 	p->p_usage.hu_resources[resource] = amount;
@@ -395,14 +404,16 @@
 	KASSERT(amount > 0, ("hrl_free_proc: invalid amount for %s: %lld",
 	    hrl_resource_name(resource), amount));
 
+#if 0
+	printf("hrl_free_proc: freeing %lld of %s for %s (pid %d)\n", amount, hrl_resource_name(resource), p->p_comm, p->p_pid);
+#endif
+
 	mtx_lock(&hrl_lock);
+	KASSERT(amount <= p->p_usage.hu_resources[resource],
+	    ("hrl_free_proc: freeing %lld of %s, which is more than allocated %lld "
+	    "for %s (pid %d)", amount, hrl_resource_name(resource), p->p_usage.hu_resources[resource],
+	    p->p_comm, p->p_pid));
 	p->p_usage.hu_resources[resource] -= amount;
-#ifdef notyet
-	KASSERT(amount <= p->p_usage.hu_resources[resource],
-	    ("hrl_free_proc: freeing %lld, which is more than allocated %lld "
-	    "for %s", amount, p->p_usage.hu_resources[resource],
-	    hrl_resource_name(resource)));
-#endif
 	cred = p->p_ucred;
 	cred->cr_ruidinfo->ui_usage.hu_resources[resource] -= amount;
 	if (cred->cr_ruidinfo != cred->cr_uidinfo)


More information about the p4-projects mailing list