PERFORCE change 180840 for review

Edward Tomasz Napierala trasz at FreeBSD.org
Mon Jul 12 18:26:29 UTC 2010


http://p4web.freebsd.org/@@180840?ac=10

Change 180840 by trasz at trasz_victim on 2010/07/12 18:26:00

	Remove unfinished optimisation that had no chance of working.

Affected files ...

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

Differences ...

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

@@ -126,7 +126,6 @@
 static struct mtx hrl_lock;
 MTX_SYSINIT(hrl_lock, &hrl_lock, "HRL lock", MTX_DEF);
 
-static void hrl_compute_available(struct proc *p, int64_t (*availablep)[]);
 static int hrl_rule_fully_specified(const struct hrl_rule *rule);
 static void hrl_rule_to_sbuf(struct sbuf *sb, const struct hrl_rule *rule);
 
@@ -267,7 +266,6 @@
 int
 hrl_enforce_proc(struct proc *p, int resource, uint64_t amount)
 {
-	int64_t available[RUSAGE_MAX];
 	struct hrl_rule *rule;
 	struct hrl_rule_link *link;
 	struct sbuf sb;
@@ -277,16 +275,6 @@
 	mtx_lock(&hrl_lock);
 
 	/*
-	 * XXX: Do this just before we start running on a CPU, not all the time.
-	 */
-	hrl_compute_available(p, &available);
-
-	if (available[resource] >= amount) {
-		mtx_unlock(&hrl_lock);
-		return (0);
-	}
-
-	/*
 	 * It seems we've hit a limit.  Figure out what to do.  There may
 	 * be more than one matching limit; go through all of them.  Denial
 	 * should be done last, after logging and sending signals.
@@ -363,39 +351,6 @@
 	return (0);
 }
 
-/*
- * Go through all the rules applicable to the process, filling the array
- * with amount of resource left before hitting the next limit.
- */
-static void
-hrl_compute_available(struct proc *p, int64_t (*availablep)[])
-{
-	int i, resource;
-	int64_t available;
-	struct hrl_rule_link *link;
-	struct hrl_rule *rule;
-
-	mtx_assert(&hrl_lock, MA_OWNED);
-
-	for (i = 0; i <= RUSAGE_MAX; i++)
-		(*availablep)[i] = INT64_MAX;
-
-	LIST_FOREACH(link, &p->p_container.c_rule_links, hrl_next) {
-		rule = link->hrl_rule;
-		resource = rule->hr_resource;
-		available = hrl_available_resource(p, rule);
-		if (available < 0) {
-#ifdef notyet
-			KASSERT(rule->hr_action != HRL_ACTION_DENY,
-			    ("hrl_compute_available: deny rule already exceeded"));
-#endif
-			continue;
-		}
-		if (available < (*availablep)[resource])
-			(*availablep)[resource] = available;
-	}
-}
-
 static int
 hrl_rule_matches(const struct hrl_rule *rule, const struct hrl_rule *filter)
 {


More information about the p4-projects mailing list