PERFORCE change 190618 for review
Edward Tomasz Napierala
trasz at FreeBSD.org
Sun Mar 27 08:57:41 UTC 2011
http://p4web.freebsd.org/@@190618?ac=10
Change 190618 by trasz at trasz_victim on 2011/03/27 08:57:39
Replace "container" and "rusage" with "racct".
Affected files ...
.. //depot/projects/soc2009/trasz_limits/sys/compat/linux/linux_misc.c#22 edit
.. //depot/projects/soc2009/trasz_limits/sys/conf/NOTES#35 edit
.. //depot/projects/soc2009/trasz_limits/sys/conf/files#51 edit
.. //depot/projects/soc2009/trasz_limits/sys/conf/options#32 edit
.. //depot/projects/soc2009/trasz_limits/sys/fs/fdescfs/fdesc_vfsops.c#7 edit
.. //depot/projects/soc2009/trasz_limits/sys/kern/imgact_aout.c#15 edit
.. //depot/projects/soc2009/trasz_limits/sys/kern/imgact_elf.c#26 edit
.. //depot/projects/soc2009/trasz_limits/sys/kern/imgact_gzip.c#11 edit
.. //depot/projects/soc2009/trasz_limits/sys/kern/init_main.c#40 edit
.. //depot/projects/soc2009/trasz_limits/sys/kern/kern_container.c#77 move/delete
.. //depot/projects/soc2009/trasz_limits/sys/kern/kern_descrip.c#24 edit
.. //depot/projects/soc2009/trasz_limits/sys/kern/kern_exit.c#32 edit
.. //depot/projects/soc2009/trasz_limits/sys/kern/kern_fork.c#36 edit
.. //depot/projects/soc2009/trasz_limits/sys/kern/kern_jail.c#39 edit
.. //depot/projects/soc2009/trasz_limits/sys/kern/kern_loginclass.c#35 edit
.. //depot/projects/soc2009/trasz_limits/sys/kern/kern_prot.c#35 edit
.. //depot/projects/soc2009/trasz_limits/sys/kern/kern_racct.c#1 move/add
.. //depot/projects/soc2009/trasz_limits/sys/kern/kern_rctl.c#40 edit
.. //depot/projects/soc2009/trasz_limits/sys/kern/kern_resource.c#62 edit
.. //depot/projects/soc2009/trasz_limits/sys/kern/kern_sig.c#23 edit
.. //depot/projects/soc2009/trasz_limits/sys/kern/kern_thr.c#15 edit
.. //depot/projects/soc2009/trasz_limits/sys/kern/sysv_msg.c#13 edit
.. //depot/projects/soc2009/trasz_limits/sys/kern/sysv_sem.c#14 edit
.. //depot/projects/soc2009/trasz_limits/sys/kern/sysv_shm.c#15 edit
.. //depot/projects/soc2009/trasz_limits/sys/kern/tty_pts.c#26 edit
.. //depot/projects/soc2009/trasz_limits/sys/kern/uipc_sockbuf.c#9 edit
.. //depot/projects/soc2009/trasz_limits/sys/kern/uipc_socket.c#21 edit
.. //depot/projects/soc2009/trasz_limits/sys/kern/uipc_usrreq.c#14 edit
.. //depot/projects/soc2009/trasz_limits/sys/kern/vfs_vnops.c#24 edit
.. //depot/projects/soc2009/trasz_limits/sys/sys/container.h#28 move/delete
.. //depot/projects/soc2009/trasz_limits/sys/sys/jail.h#22 edit
.. //depot/projects/soc2009/trasz_limits/sys/sys/kernel.h#9 edit
.. //depot/projects/soc2009/trasz_limits/sys/sys/loginclass.h#16 edit
.. //depot/projects/soc2009/trasz_limits/sys/sys/proc.h#35 edit
.. //depot/projects/soc2009/trasz_limits/sys/sys/racct.h#1 move/add
.. //depot/projects/soc2009/trasz_limits/sys/sys/rctl.h#14 edit
.. //depot/projects/soc2009/trasz_limits/sys/sys/resourcevar.h#26 edit
.. //depot/projects/soc2009/trasz_limits/sys/vm/swap_pager.c#22 edit
.. //depot/projects/soc2009/trasz_limits/sys/vm/vm_glue.c#14 edit
.. //depot/projects/soc2009/trasz_limits/sys/vm/vm_map.c#35 edit
.. //depot/projects/soc2009/trasz_limits/sys/vm/vm_mmap.c#25 edit
.. //depot/projects/soc2009/trasz_limits/sys/vm/vm_pageout.c#33 edit
.. //depot/projects/soc2009/trasz_limits/sys/vm/vm_unix.c#15 edit
Moved files ...
.. //depot/projects/soc2009/trasz_limits/sys/kern/kern_racct.c#1 moved from //depot/projects/soc2009/trasz_limits/sys/kern/kern_container.c#76
.. //depot/projects/soc2009/trasz_limits/sys/sys/racct.h#1 moved from //depot/projects/soc2009/trasz_limits/sys/sys/container.h#27
Differences ...
==== //depot/projects/soc2009/trasz_limits/sys/compat/linux/linux_misc.c#22 (text+ko) ====
@@ -35,7 +35,6 @@
#include <sys/param.h>
#include <sys/blist.h>
#include <sys/fcntl.h>
-#include <sys/container.h>
#if defined(__i386__)
#include <sys/imgact_aout.h>
#endif
@@ -51,6 +50,7 @@
#include <sys/priv.h>
#include <sys/proc.h>
#include <sys/reboot.h>
+#include <sys/racct.h>
#include <sys/resourcevar.h>
#include <sys/sched.h>
#include <sys/signalvar.h>
@@ -359,7 +359,7 @@
PROC_LOCK(td->td_proc);
if (a_out->a_text > maxtsiz ||
a_out->a_data + bss_size > lim_cur(td->td_proc, RLIMIT_DATA) ||
- rusage_set(td->td_proc, RUSAGE_DATA, a_out->a_data +
+ racct_set(td->td_proc, RACCT_DATA, a_out->a_data +
bss_size) != 0) {
PROC_UNLOCK(td->td_proc);
error = ENOMEM;
==== //depot/projects/soc2009/trasz_limits/sys/conf/NOTES#35 (text+ko) ====
@@ -1161,8 +1161,8 @@
# Support for Capsicum
options CAPABILITIES
-# Resource Containers
-options CONTAINERS
+# Resource Accounting
+options RACCT
# Resource Limits
options RCTL
==== //depot/projects/soc2009/trasz_limits/sys/conf/files#51 (text+ko) ====
@@ -2185,7 +2185,6 @@
kern/kern_condvar.c standard
kern/kern_conf.c standard
kern/kern_cons.c standard
-kern/kern_container.c standard
kern/kern_cpu.c standard
kern/kern_cpuset.c standard
kern/kern_context.c standard
@@ -2226,6 +2225,7 @@
kern/kern_priv.c standard
kern/kern_proc.c standard
kern/kern_prot.c standard
+kern/kern_racct.c standard
kern/kern_rctl.c standard
kern/kern_resource.c standard
kern/kern_rmlock.c standard
==== //depot/projects/soc2009/trasz_limits/sys/conf/options#32 (text+ko) ====
@@ -873,8 +873,8 @@
IPOIB_DEBUG opt_ofed.h
IPOIB_CM opt_ofed.h
-# Resource Containers
-CONTAINERS opt_global.h
+# Resource Accounting
+RACCT opt_global.h
# Resource Limits
RCTL opt_global.h
==== //depot/projects/soc2009/trasz_limits/sys/fs/fdescfs/fdesc_vfsops.c#7 (text+ko) ====
@@ -38,7 +38,6 @@
* /dev/fd Filesystem
*/
-#include <sys/container.h>
#include <sys/param.h>
#include <sys/systm.h>
#include <sys/filedesc.h>
@@ -48,6 +47,7 @@
#include <sys/malloc.h>
#include <sys/mount.h>
#include <sys/proc.h>
+#include <sys/racct.h>
#include <sys/resourcevar.h>
#include <sys/vnode.h>
@@ -202,7 +202,7 @@
PROC_UNLOCK(td->td_proc);
fdp = td->td_proc->p_fd;
FILEDESC_SLOCK(fdp);
- limit = rusage_get_limit(td->td_proc, RUSAGE_NOFILE);
+ limit = racct_get_limit(td->td_proc, RACCT_NOFILE);
if (lim > limit)
lim = limit;
last = min(fdp->fd_nfiles, lim);
==== //depot/projects/soc2009/trasz_limits/sys/kern/imgact_aout.c#15 (text+ko) ====
@@ -29,7 +29,6 @@
#include <sys/param.h>
#include <sys/exec.h>
-#include <sys/container.h>
#include <sys/imgact.h>
#include <sys/imgact_aout.h>
#include <sys/kernel.h>
@@ -37,6 +36,7 @@
#include <sys/malloc.h>
#include <sys/mutex.h>
#include <sys/proc.h>
+#include <sys/racct.h>
#include <sys/resourcevar.h>
#include <sys/signalvar.h>
#include <sys/syscall.h>
@@ -192,7 +192,7 @@
/* data + bss can't exceed rlimit */
a_out->a_data + bss_size > lim_cur(imgp->proc, RLIMIT_DATA) ||
- rusage_set(imgp->proc, RUSAGE_DATA,
+ racct_set(imgp->proc, RACCT_DATA,
a_out->a_data + bss_size) != 0) {
PROC_UNLOCK(imgp->proc);
return (ENOMEM);
==== //depot/projects/soc2009/trasz_limits/sys/kern/imgact_elf.c#26 (text+ko) ====
@@ -35,7 +35,6 @@
#include "opt_core.h"
#include <sys/param.h>
-#include <sys/container.h>
#include <sys/exec.h>
#include <sys/fcntl.h>
#include <sys/imgact.h>
@@ -50,6 +49,7 @@
#include <sys/pioctl.h>
#include <sys/proc.h>
#include <sys/procfs.h>
+#include <sys/racct.h>
#include <sys/resourcevar.h>
#include <sys/sf_buf.h>
#include <sys/smp.h>
@@ -876,8 +876,8 @@
if (data_size > lim_cur(imgp->proc, RLIMIT_DATA) ||
text_size > maxtsiz ||
total_size > lim_cur(imgp->proc, RLIMIT_VMEM) ||
- rusage_set(imgp->proc, RUSAGE_DATA, data_size) != 0 ||
- rusage_set(imgp->proc, RUSAGE_VMEM, total_size) != 0) {
+ racct_set(imgp->proc, RACCT_DATA, data_size) != 0 ||
+ racct_set(imgp->proc, RACCT_VMEM, total_size) != 0) {
PROC_UNLOCK(imgp->proc);
return (ENOMEM);
}
@@ -1105,7 +1105,7 @@
__elfN(puthdr)(td, (void *)NULL, &hdrsize, seginfo.count);
PROC_LOCK(td->td_proc);
- error = rusage_add(td->td_proc, RUSAGE_CORE, hdrsize + seginfo.size);
+ error = racct_add(td->td_proc, RACCT_CORE, hdrsize + seginfo.size);
PROC_UNLOCK(td->td_proc);
if (error != 0) {
error = EFAULT;
==== //depot/projects/soc2009/trasz_limits/sys/kern/imgact_gzip.c#11 (text+ko) ====
@@ -33,6 +33,7 @@
#include <sys/mman.h>
#include <sys/mutex.h>
#include <sys/proc.h>
+#include <sys/racct.h>
#include <sys/resourcevar.h>
#include <sys/sysent.h>
#include <sys/systm.h>
@@ -217,7 +218,7 @@
/* data + bss can't exceed rlimit */
gz->a_out.a_data + gz->bss_size >
lim_cur(gz->ip->proc, RLIMIT_DATA) ||
- rusage_set(gz->ip->proc, RUSAGE_DATA,
+ racct_set(gz->ip->proc, RACCT_DATA,
gz->a_out.a_data + gz->bss_size) != 0) {
PROC_UNLOCK(gz->ip->proc);
gz->where = __LINE__;
==== //depot/projects/soc2009/trasz_limits/sys/kern/init_main.c#40 (text+ko) ====
@@ -49,7 +49,6 @@
#include <sys/param.h>
#include <sys/kernel.h>
-#include <sys/container.h>
#include <sys/exec.h>
#include <sys/file.h>
#include <sys/filedesc.h>
@@ -62,6 +61,7 @@
#include <sys/syscallsubr.h>
#include <sys/sysctl.h>
#include <sys/proc.h>
+#include <sys/racct.h>
#include <sys/resourcevar.h>
#include <sys/systm.h>
#include <sys/signalvar.h>
@@ -528,7 +528,7 @@
p->p_cpulimit = RLIM_INFINITY;
/* Initialize resource accounting structures. */
- container_create(&p->p_container);
+ racct_create(&p->p_racct);
p->p_stats = pstats_alloc();
@@ -558,7 +558,7 @@
*/
(void)chgproccnt(p->p_ucred->cr_ruidinfo, 1, 0);
PROC_LOCK(p);
- rusage_add_force(p, RUSAGE_NPROC, 1);
+ racct_add_force(p, RACCT_NPROC, 1);
PROC_UNLOCK(p);
}
SYSINIT(p0init, SI_SUB_INTRINSIC, SI_ORDER_FIRST, proc0_init, NULL);
==== //depot/projects/soc2009/trasz_limits/sys/kern/kern_descrip.c#24 (text+ko) ====
@@ -45,7 +45,6 @@
#include <sys/systm.h>
#include <sys/conf.h>
-#include <sys/container.h>
#include <sys/domain.h>
#include <sys/fcntl.h>
#include <sys/file.h>
@@ -63,6 +62,7 @@
#include <sys/priv.h>
#include <sys/proc.h>
#include <sys/protosw.h>
+#include <sys/racct.h>
#include <sys/resourcevar.h>
#include <sys/signalvar.h>
#include <sys/socketvar.h>
@@ -282,7 +282,7 @@
PROC_LOCK(p);
td->td_retval[0] =
min((int)lim_cur(p, RLIMIT_NOFILE), maxfilesperproc);
- lim = rusage_get_limit(td->td_proc, RUSAGE_NOFILE);
+ lim = racct_get_limit(td->td_proc, RACCT_NOFILE);
PROC_UNLOCK(p);
if (lim < td->td_retval[0])
td->td_retval[0] = lim;
@@ -802,13 +802,13 @@
/*
* The resource limits are here instead of e.g. fdalloc(),
* because the file descriptor table may be shared between
- * processes, so we can't really use rusage_add()/rusage_sub().
+ * processes, so we can't really use racct_add()/racct_sub().
* Instead of counting the number of actually allocated
* descriptors, just put the limit on the size of the file
* descriptor table.
*/
PROC_LOCK(p);
- error = rusage_set(p, RUSAGE_NOFILE, new + 1);
+ error = racct_set(p, RACCT_NOFILE, new + 1);
PROC_UNLOCK(p);
if (error != 0) {
FILEDESC_XUNLOCK(fdp);
@@ -1486,7 +1486,7 @@
if (fd < fdp->fd_nfiles)
break;
PROC_LOCK(p);
- error = rusage_set(p, RUSAGE_NOFILE, min(fdp->fd_nfiles * 2, maxfd));
+ error = racct_set(p, RACCT_NOFILE, min(fdp->fd_nfiles * 2, maxfd));
PROC_UNLOCK(p);
if (error != 0)
return (EMFILE);
@@ -1523,7 +1523,7 @@
/*
* XXX: This is only called from uipc_usrreq.c:unp_externalize();
- * call rusage_add() from there instead of dealing with containers
+ * call racct_add() from there instead of dealing with containers
* here.
*/
PROC_LOCK(p);
@@ -1782,7 +1782,7 @@
return;
PROC_LOCK(td->td_proc);
- rusage_set(td->td_proc, RUSAGE_NOFILE, 0);
+ racct_set(td->td_proc, RACCT_NOFILE, 0);
PROC_UNLOCK(td->td_proc);
/* Check for special need to clear POSIX style locks */
==== //depot/projects/soc2009/trasz_limits/sys/kern/kern_exit.c#32 (text+ko) ====
@@ -56,6 +56,7 @@
#include <sys/wait.h>
#include <sys/vmmeter.h>
#include <sys/vnode.h>
+#include <sys/racct.h>
#include <sys/resourcevar.h>
#include <sys/sbuf.h>
#include <sys/signalvar.h>
@@ -66,7 +67,6 @@
#include <sys/ptrace.h>
#include <sys/acct.h> /* for acct_process() function prototype */
#include <sys/filedesc.h>
-#include <sys/container.h>
#include <sys/sdt.h>
#include <sys/shm.h>
#include <sys/sem.h>
@@ -177,7 +177,7 @@
}
KASSERT(p->p_numthreads == 1,
("exit1: proc %p exiting with %d threads", p, p->p_numthreads));
- rusage_sub(p, RUSAGE_NTHR, 1);
+ racct_sub(p, RACCT_NTHR, 1);
/*
* Wakeup anyone in procfs' PIOCWAIT. They should have a hold
* on our vmspace, so we should block below until they have
@@ -743,11 +743,11 @@
(void)chgproccnt(p->p_ucred->cr_ruidinfo, -1, 0);
/*
- * Destroy resource container associated with the process.
+ * Destroy resource accounting information associated with the process.
*/
- container_proc_exit(p);
+ racct_proc_exit(p);
PROC_LOCK(p->p_pptr);
- rusage_sub(p->p_pptr, RUSAGE_NPROC, 1);
+ racct_sub(p->p_pptr, RACCT_NPROC, 1);
PROC_UNLOCK(p->p_pptr);
/*
@@ -910,10 +910,10 @@
return;
PROC_LOCK(parent);
- rusage_add_force(parent, RUSAGE_NPROC, 1);
+ racct_add_force(parent, RACCT_NPROC, 1);
PROC_UNLOCK(parent);
PROC_LOCK(child->p_pptr);
- rusage_sub(child->p_pptr, RUSAGE_NPROC, 1);
+ racct_sub(child->p_pptr, RACCT_NPROC, 1);
sigqueue_take(child->p_ksi);
PROC_UNLOCK(child->p_pptr);
LIST_REMOVE(child, p_sibling);
==== //depot/projects/soc2009/trasz_limits/sys/kern/kern_fork.c#36 (text+ko) ====
@@ -46,7 +46,6 @@
#include <sys/sysproto.h>
#include <sys/eventhandler.h>
#include <sys/filedesc.h>
-#include <sys/container.h>
#include <sys/jail.h>
#include <sys/kernel.h>
#include <sys/kthread.h>
@@ -57,6 +56,7 @@
#include <sys/priv.h>
#include <sys/proc.h>
#include <sys/pioctl.h>
+#include <sys/racct.h>
#include <sys/resourcevar.h>
#include <sys/sched.h>
#include <sys/syscall.h>
@@ -735,7 +735,7 @@
}
PROC_LOCK(p1);
- error = rusage_add(p1, RUSAGE_NPROC, 1);
+ error = racct_add(p1, RACCT_NPROC, 1);
PROC_UNLOCK(p1);
if (error != 0)
return (EAGAIN);
@@ -797,9 +797,9 @@
newproc->p_ucred = p1->p_ucred;
/*
- * Initialize resource container for the child process.
+ * Initialize resource accounting for the child process.
*/
- error = container_proc_fork(p1, newproc);
+ error = racct_proc_fork(p1, newproc);
if (error != 0) {
error = EAGAIN;
goto fail1;
@@ -826,7 +826,7 @@
* After fork, there is exactly one thread running.
*/
PROC_LOCK(newproc);
- error = rusage_set(newproc, RUSAGE_NTHR, 1);
+ error = racct_set(newproc, RACCT_NTHR, 1);
PROC_UNLOCK(newproc);
if (error != 0) {
error = EAGAIN;
@@ -860,7 +860,7 @@
error = EAGAIN;
fail:
- container_proc_exit(newproc);
+ racct_proc_exit(newproc);
sx_sunlock(&proctree_lock);
if (ppsratecheck(&lastfail, &curfail, 1))
printf("maxproc limit exceeded by uid %i, please see tuning(7) and login.conf(5).\n",
@@ -875,7 +875,7 @@
uma_zfree(proc_zone, newproc);
pause("fork", hz / 2);
PROC_LOCK(p1);
- rusage_sub(p1, RUSAGE_NPROC, 1);
+ racct_sub(p1, RACCT_NPROC, 1);
PROC_UNLOCK(p1);
return (error);
}
==== //depot/projects/soc2009/trasz_limits/sys/kern/kern_jail.c#39 (text+ko) ====
@@ -38,7 +38,6 @@
#include <sys/types.h>
#include <sys/kernel.h>
#include <sys/systm.h>
-#include <sys/container.h>
#include <sys/errno.h>
#include <sys/sysproto.h>
#include <sys/malloc.h>
@@ -50,6 +49,7 @@
#include <sys/jail.h>
#include <sys/lock.h>
#include <sys/mutex.h>
+#include <sys/racct.h>
#include <sys/rctl.h>
#include <sys/sx.h>
#include <sys/sysent.h>
@@ -1197,7 +1197,7 @@
root = mypr->pr_root;
vref(root);
}
- container_create(&pr->pr_container);
+ racct_create(&pr->pr_racct);
strlcpy(pr->pr_hostuuid, DEFAULT_HOSTUUID, HOSTUUIDLEN);
pr->pr_flags |= PR_HOST;
#if defined(INET) || defined(INET6)
@@ -2298,8 +2298,8 @@
newcred->cr_prison = pr;
p->p_ucred = newcred;
PROC_UNLOCK(p);
-#ifdef CONTAINERS
- container_proc_ucred_changed(p, oldcred, newcred);
+#ifdef RACCT
+ racct_proc_ucred_changed(p, oldcred, newcred);
#endif
crfree(oldcred);
prison_deref(ppr, PD_DEREF | PD_DEUREF);
@@ -2534,9 +2534,9 @@
cpuset_rel(pr->pr_cpuset);
osd_jail_exit(pr);
#ifdef RCTL
- rctl_container_release(pr->pr_container);
+ rctl_racct_release(pr->pr_racct);
#endif
- container_destroy(&pr->pr_container);
+ racct_destroy(&pr->pr_racct);
free(pr, M_PRISON);
/* Removing a prison frees a reference on its parent. */
@@ -4274,14 +4274,14 @@
"B", "Jail may create sockets other than just UNIX/IPv4/IPv6/route");
void
-prison_container_foreach(void (*callback)(struct container *container,
+prison_racct_foreach(void (*callback)(struct racct *racct,
void *arg2, void *arg3), void *arg2, void *arg3)
{
struct prison *pr;
sx_slock(&allprison_lock);
TAILQ_FOREACH(pr, &allprison, pr_list)
- (callback)(pr->pr_container, arg2, arg3);
+ (callback)(pr->pr_racct, arg2, arg3);
sx_sunlock(&allprison_lock);
}
==== //depot/projects/soc2009/trasz_limits/sys/kern/kern_loginclass.c#35 (text+ko) ====
@@ -46,7 +46,6 @@
__FBSDID("$FreeBSD: src/sys/kern/kern_loginclass.c,v 1.1 2011/03/05 12:40:35 trasz Exp $");
#include <sys/param.h>
-#include <sys/container.h>
#include <sys/eventhandler.h>
#include <sys/kernel.h>
#include <sys/lock.h>
@@ -57,6 +56,7 @@
#include <sys/priv.h>
#include <sys/proc.h>
#include <sys/queue.h>
+#include <sys/racct.h>
#include <sys/refcount.h>
#include <sys/sysproto.h>
#include <sys/systm.h>
@@ -91,7 +91,7 @@
mtx_lock(&loginclasses_lock);
if (refcount_release(&lc->lc_refcount)) {
- container_destroy(&lc->lc_container);
+ racct_destroy(&lc->lc_racct);
LIST_REMOVE(lc, lc_next);
mtx_unlock(&loginclasses_lock);
free(lc, M_LOGINCLASS);
@@ -117,7 +117,7 @@
return (NULL);
newlc = malloc(sizeof(*newlc), M_LOGINCLASS, M_ZERO | M_WAITOK);
- container_create(&newlc->lc_container);
+ racct_create(&newlc->lc_racct);
mtx_lock(&loginclasses_lock);
LIST_FOREACH(lc, &loginclasses, lc_next) {
@@ -127,7 +127,7 @@
/* Found loginclass with a matching name? */
loginclass_hold(lc);
mtx_unlock(&loginclasses_lock);
- container_destroy(&newlc->lc_container);
+ racct_destroy(&newlc->lc_racct);
free(newlc, M_LOGINCLASS);
return (lc);
}
@@ -209,8 +209,8 @@
newcred->cr_loginclass = newlc;
p->p_ucred = newcred;
PROC_UNLOCK(p);
-#ifdef CONTAINERS
- container_proc_ucred_changed(p, oldcred, newcred);
+#ifdef RACCT
+ racct_proc_ucred_changed(p, oldcred, newcred);
#endif
loginclass_free(oldcred->cr_loginclass);
crfree(oldcred);
@@ -219,14 +219,14 @@
}
void
-loginclass_container_foreach(void (*callback)(struct container *container,
+loginclass_racct_foreach(void (*callback)(struct racct *racct,
void *arg2, void *arg3), void *arg2, void *arg3)
{
struct loginclass *lc;
mtx_lock(&loginclasses_lock);
LIST_FOREACH(lc, &loginclasses, lc_next)
- (callback)(lc->lc_container, arg2, arg3);
+ (callback)(lc->lc_racct, arg2, arg3);
mtx_unlock(&loginclasses_lock);
}
==== //depot/projects/soc2009/trasz_limits/sys/kern/kern_prot.c#35 (text+ko) ====
@@ -51,7 +51,6 @@
#include <sys/param.h>
#include <sys/systm.h>
#include <sys/acct.h>
-#include <sys/container.h>
#include <sys/kdb.h>
#include <sys/kernel.h>
#include <sys/lock.h>
@@ -65,6 +64,7 @@
#include <sys/sysproto.h>
#include <sys/jail.h>
#include <sys/pioctl.h>
+#include <sys/racct.h>
#include <sys/resourcevar.h>
#include <sys/socket.h>
#include <sys/socketvar.h>
@@ -585,8 +585,8 @@
}
p->p_ucred = newcred;
PROC_UNLOCK(p);
-#ifdef CONTAINERS
- container_proc_ucred_changed(p, oldcred, newcred);
+#ifdef RACCT
+ racct_proc_ucred_changed(p, oldcred, newcred);
#endif
uifree(uip);
crfree(oldcred);
@@ -926,8 +926,8 @@
}
p->p_ucred = newcred;
PROC_UNLOCK(p);
-#ifdef CONTAINERS
- container_proc_ucred_changed(p, oldcred, newcred);
+#ifdef RACCT
+ racct_proc_ucred_changed(p, oldcred, newcred);
#endif
uifree(ruip);
uifree(euip);
@@ -1067,8 +1067,8 @@
}
p->p_ucred = newcred;
PROC_UNLOCK(p);
-#ifdef CONTAINERS
- container_proc_ucred_changed(p, oldcred, newcred);
+#ifdef RACCT
+ racct_proc_ucred_changed(p, oldcred, newcred);
#endif
uifree(ruip);
uifree(euip);
==== //depot/projects/soc2009/trasz_limits/sys/kern/kern_racct.c#1 (text+ko) ====
@@ -35,7 +35,6 @@
#include "opt_kdtrace.h"
#include <sys/param.h>
-#include <sys/container.h>
#include <sys/eventhandler.h>
#include <sys/param.h>
#include <sys/jail.h>
@@ -46,6 +45,7 @@
#include <sys/malloc.h>
#include <sys/mutex.h>
#include <sys/proc.h>
+#include <sys/racct.h>
#include <sys/resourcevar.h>
#include <sys/sbuf.h>
#include <sys/sched.h>
@@ -60,178 +60,178 @@
#include <sys/rctl.h>
#endif
-#ifdef CONTAINERS
+#ifdef RACCT
-FEATURE(containers, "Resource Containers");
+FEATURE(racct, "Resource Accounting");
-static struct mtx container_lock;
-MTX_SYSINIT(container_lock, &container_lock, "container lock", MTX_DEF);
+static struct mtx racct_lock;
+MTX_SYSINIT(racct_lock, &racct_lock, "racct lock", MTX_DEF);
-static uma_zone_t container_zone;
+static uma_zone_t racct_zone;
-static void container_sub(struct container *dest, const struct container *src);
-static void rusage_sub_cred_locked(struct ucred *cred, int resource, uint64_t amount);
-static void rusage_add_cred_locked(struct ucred *cred, int resource, uint64_t amount);
+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);
-SDT_PROVIDER_DEFINE(container);
-SDT_PROBE_DEFINE3(container, kernel, rusage, add, add, "struct proc *", "int", "uint64_t");
-SDT_PROBE_DEFINE3(container, kernel, rusage, add_failure, add-failure, "struct proc *", "int", "uint64_t");
-SDT_PROBE_DEFINE3(container, kernel, rusage, add_cred, add-cred, "struct ucred *", "int", "uint64_t");
-SDT_PROBE_DEFINE3(container, kernel, rusage, add_force, add-force, "struct proc *", "int", "uint64_t");
-SDT_PROBE_DEFINE3(container, kernel, rusage, set, set, "struct proc *", "int", "uint64_t");
-SDT_PROBE_DEFINE3(container, kernel, rusage, set_failure, set-failure, "struct proc *", "int", "uint64_t");
-SDT_PROBE_DEFINE3(container, kernel, rusage, sub, sub, "struct proc *", "int", "uint64_t");
-SDT_PROBE_DEFINE3(container, kernel, rusage, sub_cred, sub-cred, "struct ucred *", "int", "uint64_t");
-SDT_PROBE_DEFINE1(container, kernel, container, create, create, "struct container *");
-SDT_PROBE_DEFINE1(container, kernel, container, destroy, destroy, "struct container *");
-SDT_PROBE_DEFINE2(container, kernel, container, join, join, "struct container *", "struct container *");
-SDT_PROBE_DEFINE2(container, kernel, container, join_failure, join-failure, "struct container *", "struct container *");
-SDT_PROBE_DEFINE2(container, kernel, container, leave, leave, "struct container *", "struct container *");
+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_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 *");
-int rusage_types[] = {
- [RUSAGE_CPU] = RUSAGE_IN_THOUSANDS,
- [RUSAGE_FSIZE] = RUSAGE_RECLAIMABLE | RUSAGE_INHERITABLE | RUSAGE_DENIABLE,
- [RUSAGE_DATA] = RUSAGE_RECLAIMABLE | RUSAGE_INHERITABLE | RUSAGE_DENIABLE,
- [RUSAGE_STACK] = RUSAGE_RECLAIMABLE | RUSAGE_INHERITABLE | RUSAGE_DENIABLE,
- [RUSAGE_CORE] = RUSAGE_DENIABLE,
- [RUSAGE_RSS] = RUSAGE_RECLAIMABLE,
- [RUSAGE_MEMLOCK] = RUSAGE_RECLAIMABLE | RUSAGE_DENIABLE,
- [RUSAGE_NPROC] = RUSAGE_RECLAIMABLE | RUSAGE_DENIABLE,
- [RUSAGE_NOFILE] = RUSAGE_RECLAIMABLE | RUSAGE_INHERITABLE | RUSAGE_DENIABLE,
- [RUSAGE_SBSIZE] = RUSAGE_RECLAIMABLE | RUSAGE_DENIABLE | RUSAGE_SLOPPY,
- [RUSAGE_VMEM] = RUSAGE_RECLAIMABLE | RUSAGE_INHERITABLE | RUSAGE_DENIABLE,
- [RUSAGE_NPTS] = RUSAGE_RECLAIMABLE | RUSAGE_DENIABLE | RUSAGE_SLOPPY,
- [RUSAGE_SWAP] = RUSAGE_RECLAIMABLE | RUSAGE_DENIABLE | RUSAGE_SLOPPY,
- [RUSAGE_NTHR] = RUSAGE_RECLAIMABLE | RUSAGE_DENIABLE,
- [RUSAGE_MSGQQUEUED] = RUSAGE_RECLAIMABLE | RUSAGE_DENIABLE | RUSAGE_SLOPPY,
- [RUSAGE_MSGQSIZE] = RUSAGE_RECLAIMABLE | RUSAGE_DENIABLE | RUSAGE_SLOPPY,
- [RUSAGE_NMSGQ] = RUSAGE_RECLAIMABLE | RUSAGE_DENIABLE | RUSAGE_SLOPPY,
- [RUSAGE_NSEM] = RUSAGE_RECLAIMABLE | RUSAGE_DENIABLE | RUSAGE_SLOPPY,
- [RUSAGE_NSEMOP] = RUSAGE_RECLAIMABLE | RUSAGE_INHERITABLE | RUSAGE_DENIABLE,
- [RUSAGE_NSHM] = RUSAGE_RECLAIMABLE | RUSAGE_DENIABLE | RUSAGE_SLOPPY,
- [RUSAGE_SHMSIZE] = RUSAGE_RECLAIMABLE | RUSAGE_DENIABLE | RUSAGE_SLOPPY,
- [RUSAGE_WALLCLOCK] = RUSAGE_IN_THOUSANDS };
+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 };
static void
-container_add(struct container *dest, const struct container *src)
+racct_add_racct(struct racct *dest, const struct racct *src)
{
int i;
- mtx_assert(&container_lock, MA_OWNED);
+ mtx_assert(&racct_lock, MA_OWNED);
/*
* Update resource usage in dest.
*/
- for (i = 0; i <= RUSAGE_MAX; i++) {
- KASSERT(dest->c_resources[i] >= 0,
+ for (i = 0; i <= RACCT_MAX; i++) {
+ KASSERT(dest->r_resources[i] >= 0,
("resource usage propagation meltdown: dest < 0"));
- KASSERT(src->c_resources[i] >= 0,
+ KASSERT(src->r_resources[i] >= 0,
("resource usage propagation meltdown: src < 0"));
- dest->c_resources[i] += src->c_resources[i];
+ dest->r_resources[i] += src->r_resources[i];
}
}
static void
-container_sub(struct container *dest, const struct container *src)
+racct_sub_racct(struct racct *dest, const struct racct *src)
{
int i;
- mtx_assert(&container_lock, MA_OWNED);
+ mtx_assert(&racct_lock, MA_OWNED);
/*
* Update resource usage in dest.
*/
- for (i = 0; i <= RUSAGE_MAX; i++) {
- if (!rusage_is_sloppy(i) &&
- !rusage_is_dampened(i)) {
- KASSERT(dest->c_resources[i] >= 0,
+ for (i = 0; i <= RACCT_MAX; i++) {
+ if (!racct_is_sloppy(i) &&
+ !racct_is_dampened(i)) {
+ KASSERT(dest->r_resources[i] >= 0,
("resource usage propagation meltdown: dest < 0"));
- KASSERT(src->c_resources[i] >= 0,
+ KASSERT(src->r_resources[i] >= 0,
("resource usage propagation meltdown: src < 0"));
- KASSERT(src->c_resources[i] <= dest->c_resources[i],
+ KASSERT(src->r_resources[i] <= dest->r_resources[i],
("resource usage propagation meltdown: src > dest"));
}
- if (rusage_is_reclaimable(i)) {
- dest->c_resources[i] -= src->c_resources[i];
- if (dest->c_resources[i] < 0) {
- KASSERT(rusage_is_sloppy(i) ||
- rusage_is_dampened(i),
- ("container_sub: usage < 0"));
- dest->c_resources[i] = 0;
+ if (racct_is_reclaimable(i)) {
+ dest->r_resources[i] -= src->r_resources[i];
+ if (dest->r_resources[i] < 0) {
+ KASSERT(racct_is_sloppy(i) ||
+ racct_is_dampened(i),
+ ("racct_sub_racct: usage < 0"));
+ dest->r_resources[i] = 0;
}
}
}
}
void
-container_create(struct container **containerp)
+racct_create(struct racct **racctp)
{
- SDT_PROBE(container, kernel, container, create, containerp, 0, 0, 0, 0);
+ SDT_PROBE(racct, kernel, racct, create, racctp, 0, 0, 0, 0);
- KASSERT(*containerp == NULL, ("container already allocated"));
+ KASSERT(*racctp == NULL, ("racct already allocated"));
- *containerp = uma_zalloc(container_zone, M_WAITOK | M_ZERO);
+ *racctp = uma_zalloc(racct_zone, M_WAITOK | M_ZERO);
}
static void
-container_destroy_locked(struct container **containerp)
+racct_destroy_locked(struct racct **racctp)
{
int i;
- struct container *container;
+ struct racct *racct;
- SDT_PROBE(container, kernel, container, destroy, containerp, 0, 0, 0, 0);
+ SDT_PROBE(racct, kernel, racct, destroy, racctp, 0, 0, 0, 0);
- mtx_assert(&container_lock, MA_OWNED);
- KASSERT(containerp != NULL, ("NULL containerp"));
- KASSERT(*containerp != NULL, ("NULL container"));
+ mtx_assert(&racct_lock, MA_OWNED);
+ KASSERT(racctp != NULL, ("NULL racctp"));
+ KASSERT(*racctp != NULL, ("NULL racct"));
- container = *containerp;
+ racct = *racctp;
- for (i = 0; i <= RUSAGE_MAX; i++) {
- if (rusage_is_sloppy(i))
+ for (i = 0; i <= RACCT_MAX; i++) {
+ if (racct_is_sloppy(i))
continue;
- if (!rusage_is_reclaimable(i))
+ if (!racct_is_reclaimable(i))
continue;
- if (rusage_is_dampened(i))
+ if (racct_is_dampened(i))
continue;
- KASSERT(container->c_resources[i] == 0,
- ("destroying non-empty container: "
+ KASSERT(racct->r_resources[i] == 0,
+ ("destroying non-empty racct: "
"%ju allocated for resource %d\n",
- container->c_resources[i], i));
+ racct->r_resources[i], i));
}
- uma_zfree(container_zone, container);
- *containerp = NULL;
+ uma_zfree(racct_zone, racct);
+ *racctp = NULL;
}
void
-container_destroy(struct container **container)
+racct_destroy(struct racct **racct)
{
- mtx_lock(&container_lock);
- container_destroy_locked(container);
- mtx_unlock(&container_lock);
+ mtx_lock(&racct_lock);
+ racct_destroy_locked(racct);
+ mtx_unlock(&racct_lock);
}
/*
- * Increase consumption of 'resource' by 'amount' for 'container'
+ * Increase consumption of 'resource' by 'amount' for 'racct'
* and all its parents. Differently from other cases, 'amount' here
* may be less than zero.
*/
static void
-container_alloc_resource(struct container *container, int resource,
+racct_alloc_resource(struct racct *racct, int resource,
uint64_t amount)
{
- mtx_assert(&container_lock, MA_OWNED);
- KASSERT(container != NULL, ("NULL container"));
+ mtx_assert(&racct_lock, MA_OWNED);
+ KASSERT(racct != NULL, ("NULL racct"));
- container->c_resources[resource] += amount;
- if (container->c_resources[resource] < 0) {
- KASSERT(rusage_is_sloppy(resource) ||
- rusage_is_dampened(resource),
- ("container_alloc_resource: usage < 0"));
- container->c_resources[resource] = 0;
+ racct->r_resources[resource] += amount;
+ if (racct->r_resources[resource] < 0) {
+ KASSERT(racct_is_sloppy(resource) ||
+ racct_is_dampened(resource),
+ ("racct_alloc_resource: usage < 0"));
+ racct->r_resources[resource] = 0;
}
}
@@ -240,7 +240,7 @@
* Return 0 if it's below limits, or errno, if it's not.
*/
int
-rusage_add(struct proc *p, int resource, uint64_t amount)
+racct_add(struct proc *p, int resource, uint64_t amount)
{
#ifdef RCTL
int error;
@@ -249,45 +249,45 @@
if (p->p_flag & P_SYSTEM)
return (0);
- SDT_PROBE(container, kernel, rusage, add, p, resource, amount, 0, 0);
+ SDT_PROBE(racct, kernel, rusage, add, p, resource, amount, 0, 0);
/*
* We need proc lock to dereference p->p_ucred.
*/
PROC_LOCK_ASSERT(p, MA_OWNED);
- KASSERT(amount >= 0, ("rusage_add: invalid amount for resource %d: %ju",
+ KASSERT(amount >= 0, ("racct_add: invalid amount for resource %d: %ju",
resource, amount));
- mtx_lock(&container_lock);
+ mtx_lock(&racct_lock);
#ifdef RCTL
error = rctl_enforce(p, resource, amount);
- if (error && rusage_is_deniable(resource)) {
- SDT_PROBE(container, kernel, rusage, add_failure, p, resource, amount, 0, 0);
- mtx_unlock(&container_lock);
>>> TRUNCATED FOR MAIL (1000 lines) <<<
More information about the p4-projects
mailing list