From owner-p4-projects@FreeBSD.ORG Sun Mar 27 10:46:53 2011 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id F09601065673; Sun, 27 Mar 2011 10:46:52 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id B2E50106566C for ; Sun, 27 Mar 2011 10:46:52 +0000 (UTC) (envelope-from trasz@freebsd.org) Received: from skunkworks.freebsd.org (skunkworks.freebsd.org [IPv6:2001:4f8:fff6::2d]) by mx1.freebsd.org (Postfix) with ESMTP id A00D18FC0C for ; Sun, 27 Mar 2011 10:46:52 +0000 (UTC) Received: from skunkworks.freebsd.org (localhost [127.0.0.1]) by skunkworks.freebsd.org (8.14.4/8.14.4) with ESMTP id p2RAkq2i023571 for ; Sun, 27 Mar 2011 10:46:52 GMT (envelope-from trasz@freebsd.org) Received: (from perforce@localhost) by skunkworks.freebsd.org (8.14.4/8.14.4/Submit) id p2RAkqdO023568 for perforce@freebsd.org; Sun, 27 Mar 2011 10:46:52 GMT (envelope-from trasz@freebsd.org) Date: Sun, 27 Mar 2011 10:46:52 GMT Message-Id: <201103271046.p2RAkqdO023568@skunkworks.freebsd.org> X-Authentication-Warning: skunkworks.freebsd.org: perforce set sender to trasz@freebsd.org using -f From: Edward Tomasz Napierala To: Perforce Change Reviews Precedence: bulk Cc: Subject: PERFORCE change 190621 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 27 Mar 2011 10:46:53 -0000 http://p4web.freebsd.org/@@190621?ac=10 Change 190621 by trasz@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);