PERFORCE change 190621 for review
Edward Tomasz Napierala
trasz at FreeBSD.org
Sun Mar 27 10:46:53 UTC 2011
http://p4web.freebsd.org/@@190621?ac=10
Change 190621 by trasz at trasz_victim on 2011/03/27 10:46:14
style(9)
Affected files ...
.. //depot/projects/soc2009/trasz_limits/sys/kern/kern_racct.c#2 edit
Differences ...
==== //depot/projects/soc2009/trasz_limits/sys/kern/kern_racct.c#2 (text+ko) ====
@@ -70,47 +70,82 @@
static uma_zone_t racct_zone;
static void racct_sub_racct(struct racct *dest, const struct racct *src);
-static void racct_sub_cred_locked(struct ucred *cred, int resource, uint64_t amount);
-static void racct_add_cred_locked(struct ucred *cred, int resource, uint64_t amount);
+static void racct_sub_cred_locked(struct ucred *cred, int resource,
+ uint64_t amount);
+static void racct_add_cred_locked(struct ucred *cred, int resource,
+ uint64_t amount);
SDT_PROVIDER_DEFINE(racct);
-SDT_PROBE_DEFINE3(racct, kernel, rusage, add, add, "struct proc *", "int", "uint64_t");
-SDT_PROBE_DEFINE3(racct, kernel, rusage, add_failure, add-failure, "struct proc *", "int", "uint64_t");
-SDT_PROBE_DEFINE3(racct, kernel, rusage, add_cred, add-cred, "struct ucred *", "int", "uint64_t");
-SDT_PROBE_DEFINE3(racct, kernel, rusage, add_force, add-force, "struct proc *", "int", "uint64_t");
-SDT_PROBE_DEFINE3(racct, kernel, rusage, set, set, "struct proc *", "int", "uint64_t");
-SDT_PROBE_DEFINE3(racct, kernel, rusage, set_failure, set-failure, "struct proc *", "int", "uint64_t");
-SDT_PROBE_DEFINE3(racct, kernel, rusage, sub, sub, "struct proc *", "int", "uint64_t");
-SDT_PROBE_DEFINE3(racct, kernel, rusage, sub_cred, sub-cred, "struct ucred *", "int", "uint64_t");
+SDT_PROBE_DEFINE3(racct, kernel, rusage, add, add, "struct proc *", "int",
+ "uint64_t");
+SDT_PROBE_DEFINE3(racct, kernel, rusage, add_failure, add-failure,
+ "struct proc *", "int", "uint64_t");
+SDT_PROBE_DEFINE3(racct, kernel, rusage, add_cred, add-cred, "struct ucred *",
+ "int", "uint64_t");
+SDT_PROBE_DEFINE3(racct, kernel, rusage, add_force, add-force, "struct proc *",
+ "int", "uint64_t");
+SDT_PROBE_DEFINE3(racct, kernel, rusage, set, set, "struct proc *", "int",
+ "uint64_t");
+SDT_PROBE_DEFINE3(racct, kernel, rusage, set_failure, set-failure,
+ "struct proc *", "int", "uint64_t");
+SDT_PROBE_DEFINE3(racct, kernel, rusage, sub, sub, "struct proc *", "int",
+ "uint64_t");
+SDT_PROBE_DEFINE3(racct, kernel, rusage, sub_cred, sub-cred, "struct ucred *",
+ "int", "uint64_t");
SDT_PROBE_DEFINE1(racct, kernel, racct, create, create, "struct racct *");
SDT_PROBE_DEFINE1(racct, kernel, racct, destroy, destroy, "struct racct *");
-SDT_PROBE_DEFINE2(racct, kernel, racct, join, join, "struct racct *", "struct racct *");
-SDT_PROBE_DEFINE2(racct, kernel, racct, join_failure, join-failure, "struct racct *", "struct racct *");
-SDT_PROBE_DEFINE2(racct, kernel, racct, leave, leave, "struct racct *", "struct racct *");
+SDT_PROBE_DEFINE2(racct, kernel, racct, join, join, "struct racct *",
+ "struct racct *");
+SDT_PROBE_DEFINE2(racct, kernel, racct, join_failure, join-failure,
+ "struct racct *", "struct racct *");
+SDT_PROBE_DEFINE2(racct, kernel, racct, leave, leave, "struct racct *",
+ "struct racct *");
int racct_types[] = {
- [RACCT_CPU] = RACCT_IN_THOUSANDS,
- [RACCT_FSIZE] = RACCT_RECLAIMABLE | RACCT_INHERITABLE | RACCT_DENIABLE,
- [RACCT_DATA] = RACCT_RECLAIMABLE | RACCT_INHERITABLE | RACCT_DENIABLE,
- [RACCT_STACK] = RACCT_RECLAIMABLE | RACCT_INHERITABLE | RACCT_DENIABLE,
- [RACCT_CORE] = RACCT_DENIABLE,
- [RACCT_RSS] = RACCT_RECLAIMABLE,
- [RACCT_MEMLOCK] = RACCT_RECLAIMABLE | RACCT_DENIABLE,
- [RACCT_NPROC] = RACCT_RECLAIMABLE | RACCT_DENIABLE,
- [RACCT_NOFILE] = RACCT_RECLAIMABLE | RACCT_INHERITABLE | RACCT_DENIABLE,
- [RACCT_SBSIZE] = RACCT_RECLAIMABLE | RACCT_DENIABLE | RACCT_SLOPPY,
- [RACCT_VMEM] = RACCT_RECLAIMABLE | RACCT_INHERITABLE | RACCT_DENIABLE,
- [RACCT_NPTS] = RACCT_RECLAIMABLE | RACCT_DENIABLE | RACCT_SLOPPY,
- [RACCT_SWAP] = RACCT_RECLAIMABLE | RACCT_DENIABLE | RACCT_SLOPPY,
- [RACCT_NTHR] = RACCT_RECLAIMABLE | RACCT_DENIABLE,
- [RACCT_MSGQQUEUED] = RACCT_RECLAIMABLE | RACCT_DENIABLE | RACCT_SLOPPY,
- [RACCT_MSGQSIZE] = RACCT_RECLAIMABLE | RACCT_DENIABLE | RACCT_SLOPPY,
- [RACCT_NMSGQ] = RACCT_RECLAIMABLE | RACCT_DENIABLE | RACCT_SLOPPY,
- [RACCT_NSEM] = RACCT_RECLAIMABLE | RACCT_DENIABLE | RACCT_SLOPPY,
- [RACCT_NSEMOP] = RACCT_RECLAIMABLE | RACCT_INHERITABLE | RACCT_DENIABLE,
- [RACCT_NSHM] = RACCT_RECLAIMABLE | RACCT_DENIABLE | RACCT_SLOPPY,
- [RACCT_SHMSIZE] = RACCT_RECLAIMABLE | RACCT_DENIABLE | RACCT_SLOPPY,
- [RACCT_WALLCLOCK] = RACCT_IN_THOUSANDS };
+ [RACCT_CPU] =
+ RACCT_IN_THOUSANDS,
+ [RACCT_FSIZE] =
+ RACCT_RECLAIMABLE | RACCT_INHERITABLE | RACCT_DENIABLE,
+ [RACCT_DATA] =
+ RACCT_RECLAIMABLE | RACCT_INHERITABLE | RACCT_DENIABLE,
+ [RACCT_STACK] =
+ RACCT_RECLAIMABLE | RACCT_INHERITABLE | RACCT_DENIABLE,
+ [RACCT_CORE] =
+ RACCT_DENIABLE,
+ [RACCT_RSS] =
+ RACCT_RECLAIMABLE,
+ [RACCT_MEMLOCK] =
+ RACCT_RECLAIMABLE | RACCT_DENIABLE,
+ [RACCT_NPROC] =
+ RACCT_RECLAIMABLE | RACCT_DENIABLE,
+ [RACCT_NOFILE] =
+ RACCT_RECLAIMABLE | RACCT_INHERITABLE | RACCT_DENIABLE,
+ [RACCT_SBSIZE] =
+ RACCT_RECLAIMABLE | RACCT_DENIABLE | RACCT_SLOPPY,
+ [RACCT_VMEM] =
+ RACCT_RECLAIMABLE | RACCT_INHERITABLE | RACCT_DENIABLE,
+ [RACCT_NPTS] =
+ RACCT_RECLAIMABLE | RACCT_DENIABLE | RACCT_SLOPPY,
+ [RACCT_SWAP] =
+ RACCT_RECLAIMABLE | RACCT_DENIABLE | RACCT_SLOPPY,
+ [RACCT_NTHR] =
+ RACCT_RECLAIMABLE | RACCT_DENIABLE,
+ [RACCT_MSGQQUEUED] =
+ RACCT_RECLAIMABLE | RACCT_DENIABLE | RACCT_SLOPPY,
+ [RACCT_MSGQSIZE] =
+ RACCT_RECLAIMABLE | RACCT_DENIABLE | RACCT_SLOPPY,
+ [RACCT_NMSGQ] =
+ RACCT_RECLAIMABLE | RACCT_DENIABLE | RACCT_SLOPPY,
+ [RACCT_NSEM] =
+ RACCT_RECLAIMABLE | RACCT_DENIABLE | RACCT_SLOPPY,
+ [RACCT_NSEMOP] =
+ RACCT_RECLAIMABLE | RACCT_INHERITABLE | RACCT_DENIABLE,
+ [RACCT_NSHM] =
+ RACCT_RECLAIMABLE | RACCT_DENIABLE | RACCT_SLOPPY,
+ [RACCT_SHMSIZE] =
+ RACCT_RECLAIMABLE | RACCT_DENIABLE | RACCT_SLOPPY,
+ [RACCT_WALLCLOCK] =
+ RACCT_IN_THOUSANDS };
static void
racct_add_racct(struct racct *dest, const struct racct *src)
@@ -124,9 +159,9 @@
*/
for (i = 0; i <= RACCT_MAX; i++) {
KASSERT(dest->r_resources[i] >= 0,
- ("resource usage propagation meltdown: dest < 0"));
+ ("racct propagation meltdown: dest < 0"));
KASSERT(src->r_resources[i] >= 0,
- ("resource usage propagation meltdown: src < 0"));
+ ("racct propagation meltdown: src < 0"));
dest->r_resources[i] += src->r_resources[i];
}
}
@@ -145,11 +180,11 @@
if (!racct_is_sloppy(i) &&
!racct_is_dampened(i)) {
KASSERT(dest->r_resources[i] >= 0,
- ("resource usage propagation meltdown: dest < 0"));
+ ("racct propagation meltdown: dest < 0"));
KASSERT(src->r_resources[i] >= 0,
- ("resource usage propagation meltdown: src < 0"));
+ ("racct propagation meltdown: src < 0"));
KASSERT(src->r_resources[i] <= dest->r_resources[i],
- ("resource usage propagation meltdown: src > dest"));
+ ("racct propagation meltdown: src > dest"));
}
if (racct_is_reclaimable(i)) {
dest->r_resources[i] -= src->r_resources[i];
@@ -262,7 +297,8 @@
#ifdef RCTL
error = rctl_enforce(p, resource, amount);
if (error && racct_is_deniable(resource)) {
- SDT_PROBE(racct, kernel, rusage, add_failure, p, resource, amount, 0, 0);
+ SDT_PROBE(racct, kernel, rusage, add_failure, p, resource,
+ amount, 0, 0);
mtx_unlock(&racct_lock);
return (error);
}
@@ -279,9 +315,11 @@
{
struct prison *pr;
- SDT_PROBE(racct, kernel, rusage, add_cred, cred, resource, amount, 0, 0);
+ SDT_PROBE(racct, kernel, rusage, add_cred, cred, resource, amount,
+ 0, 0);
- KASSERT(amount >= 0, ("racct_add_cred: invalid amount for resource %d: %ju",
+ KASSERT(amount >= 0,
+ ("racct_add_cred: invalid amount for resource %d: %ju",
resource, amount));
racct_alloc_resource(cred->cr_ruidinfo->ui_racct, resource, amount);
@@ -291,8 +329,8 @@
}
/*
- * Increase allocation of 'resource' by 'amount' for credential 'cred'. Doesn't
- * check for limits and never fails.
+ * Increase allocation of 'resource' by 'amount' for credential 'cred'.
+ * Doesn't check for limits and never fails.
*
* XXX: Shouldn't this ever return an error?
*/
@@ -306,8 +344,8 @@
}
/*
- * Increase allocation of 'resource' by 'amount' for process 'p'. Doesn't check
- * for limits and never fails.
+ * Increase allocation of 'resource' by 'amount' for process 'p'.
+ * Doesn't check for limits and never fails.
*/
void
racct_add_force(struct proc *p, int resource, uint64_t amount)
@@ -322,7 +360,8 @@
* We need proc lock to dereference p->p_ucred.
*/
PROC_LOCK_ASSERT(p, MA_OWNED);
- KASSERT(amount >= 0, ("racct_add_force: invalid amount for resource %d: %ju",
+ KASSERT(amount >= 0,
+ ("racct_add_force: invalid amount for resource %d: %ju",
resource, amount));
mtx_lock(&racct_lock);
@@ -361,7 +400,8 @@
if (diff > 0) {
error = rctl_enforce(p, resource, diff);
if (error && racct_is_deniable(resource)) {
- SDT_PROBE(racct, kernel, rusage, set_failure, p, resource, amount, 0, 0);
+ SDT_PROBE(racct, kernel, rusage, set_failure, p,
+ resource, amount, 0, 0);
return (error);
}
}
@@ -407,7 +447,8 @@
* We need proc lock to dereference p->p_ucred.
*/
PROC_LOCK_ASSERT(p, MA_OWNED);
- KASSERT(amount >= 0, ("racct_set_force: invalid amount for resource %d: %ju",
+ KASSERT(amount >= 0,
+ ("racct_set_force: invalid amount for resource %d: %ju",
resource, amount));
mtx_lock(&racct_lock);
@@ -477,8 +518,8 @@
mtx_lock(&racct_lock);
KASSERT(amount <= p->p_racct->r_resources[resource],
- ("racct_sub: freeing %ju of resource %d, which is more than allocated "
- "%jd for %s (pid %d)", amount, resource,
+ ("racct_sub: freeing %ju of resource %d, which is more "
+ "than allocated %jd for %s (pid %d)", amount, resource,
(intmax_t)p->p_racct->r_resources[resource], p->p_comm, p->p_pid));
racct_alloc_resource(p->p_racct, resource, -amount);
@@ -491,13 +532,16 @@
{
struct prison *pr;
- SDT_PROBE(racct, kernel, rusage, sub_cred, cred, resource, amount, 0, 0);
+ SDT_PROBE(racct, kernel, rusage, sub_cred, cred, resource, amount,
+ 0, 0);
- KASSERT(amount >= 0, ("racct_sub_cred: invalid amount for resource %d: %ju",
+ KASSERT(amount >= 0,
+ ("racct_sub_cred: invalid amount for resource %d: %ju",
resource, amount));
#ifdef notyet
KASSERT(racct_is_reclaimable(resource),
- ("racct_sub_cred: called for non-reclaimable resource %d", resource));
+ ("racct_sub_cred: called for non-reclaimable resource %d",
+ resource));
#endif
racct_alloc_resource(cred->cr_ruidinfo->ui_racct, resource, -amount);
@@ -549,11 +593,12 @@
!racct_is_inheritable(i))
continue;
- error = racct_set_locked(child, i, parent->p_racct->r_resources[i]);
+ error = racct_set_locked(child, i,
+ parent->p_racct->r_resources[i]);
if (error != 0) {
/*
- * XXX: The only purpose of these two lines is to prevent from
- * tripping checks in racct_destroy().
+ * XXX: The only purpose of these two lines is
+ * to prevent from tripping checks in racct_destroy().
*/
for (i = 0; i <= RACCT_MAX; i++)
racct_set_locked(child, i, 0);
More information about the p4-projects
mailing list