PERFORCE change 186635 for review

Edward Tomasz Napierala trasz at FreeBSD.org
Sat Dec 4 20:41:56 UTC 2010


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

Change 186635 by trasz at trasz_victim on 2010/12/04 20:40:57

	Get rid of the ugly #ifdef CONTAINERS.

Affected files ...

.. //depot/projects/soc2009/trasz_limits/sys/compat/linux/linux_misc.c#18 edit
.. //depot/projects/soc2009/trasz_limits/sys/compat/svr4/imgact_svr4.c#11 edit
.. //depot/projects/soc2009/trasz_limits/sys/conf/files#39 edit
.. //depot/projects/soc2009/trasz_limits/sys/fs/fdescfs/fdesc_vfsops.c#5 edit
.. //depot/projects/soc2009/trasz_limits/sys/i386/linux/imgact_linux.c#10 edit
.. //depot/projects/soc2009/trasz_limits/sys/kern/imgact_aout.c#11 edit
.. //depot/projects/soc2009/trasz_limits/sys/kern/imgact_elf.c#19 edit
.. //depot/projects/soc2009/trasz_limits/sys/kern/imgact_gzip.c#9 edit
.. //depot/projects/soc2009/trasz_limits/sys/kern/init_main.c#31 edit
.. //depot/projects/soc2009/trasz_limits/sys/kern/kern_container.c#40 edit
.. //depot/projects/soc2009/trasz_limits/sys/kern/kern_descrip.c#17 edit
.. //depot/projects/soc2009/trasz_limits/sys/kern/kern_exit.c#29 edit
.. //depot/projects/soc2009/trasz_limits/sys/kern/kern_fork.c#26 edit
.. //depot/projects/soc2009/trasz_limits/sys/kern/kern_jail.c#26 edit
.. //depot/projects/soc2009/trasz_limits/sys/kern/kern_sig.c#19 edit
.. //depot/projects/soc2009/trasz_limits/sys/kern/kern_thr.c#12 edit
.. //depot/projects/soc2009/trasz_limits/sys/kern/sysv_msg.c#9 edit
.. //depot/projects/soc2009/trasz_limits/sys/kern/sysv_sem.c#9 edit
.. //depot/projects/soc2009/trasz_limits/sys/kern/sysv_shm.c#11 edit
.. //depot/projects/soc2009/trasz_limits/sys/kern/tty_pts.c#21 edit
.. //depot/projects/soc2009/trasz_limits/sys/kern/uipc_sockbuf.c#7 edit
.. //depot/projects/soc2009/trasz_limits/sys/kern/uipc_socket.c#18 edit
.. //depot/projects/soc2009/trasz_limits/sys/kern/uipc_usrreq.c#10 edit
.. //depot/projects/soc2009/trasz_limits/sys/kern/vfs_vnops.c#20 edit
.. //depot/projects/soc2009/trasz_limits/sys/vm/swap_pager.c#14 edit
.. //depot/projects/soc2009/trasz_limits/sys/vm/vm_glue.c#9 edit
.. //depot/projects/soc2009/trasz_limits/sys/vm/vm_map.c#28 edit
.. //depot/projects/soc2009/trasz_limits/sys/vm/vm_mmap.c#20 edit
.. //depot/projects/soc2009/trasz_limits/sys/vm/vm_pageout.c#19 edit
.. //depot/projects/soc2009/trasz_limits/sys/vm/vm_unix.c#11 edit

Differences ...

==== //depot/projects/soc2009/trasz_limits/sys/compat/linux/linux_misc.c#18 (text+ko) ====

@@ -369,7 +369,6 @@
 	}
 	PROC_UNLOCK(td->td_proc);
 #endif
-#ifdef CONTAINERS
 	if (a_out->a_text > maxtsiz) {
 		error = ENOMEM;
 		goto cleanup;
@@ -380,7 +379,6 @@
 		error = ENOMEM;
 		goto cleanup;
 	}
-#endif /* !CONTAINERS */
 
 	/*
 	 * Prevent more writers.

==== //depot/projects/soc2009/trasz_limits/sys/compat/svr4/imgact_svr4.c#11 (text+ko) ====

@@ -116,14 +116,12 @@
     }
     PROC_UNLOCK(imgp->proc);
 #endif /* !HRL */
-#ifdef CONTAINERS
     if (a_out->a_text > maxtsiz)
         return (ENOMEM);
     error = rusage_set(imgp->proc, RUSAGE_DATA,
         a_out->a_data + bss_size);
     if (error != 0)
         return (ENOMEM);
-#endif
 
     VOP_UNLOCK(imgp->vp, 0);
 

==== //depot/projects/soc2009/trasz_limits/sys/conf/files#39 (text+ko) ====

@@ -2124,7 +2124,7 @@
 kern/kern_condvar.c		standard
 kern/kern_conf.c		standard
 kern/kern_cons.c		standard
-kern/kern_container.c		optional containers
+kern/kern_container.c		standard
 kern/kern_cpu.c			standard
 kern/kern_cpuset.c		standard
 kern/kern_context.c		standard

==== //depot/projects/soc2009/trasz_limits/sys/fs/fdescfs/fdesc_vfsops.c#5 (text+ko) ====

@@ -187,9 +187,7 @@
 	int i;
 	int last;
 	int freefd;
-#ifdef CONTAINERS
 	uint64_t limit;
-#endif
 
 	td = curthread;
 
@@ -206,7 +204,6 @@
 #endif
 	fdp = td->td_proc->p_fd;
 	FILEDESC_SLOCK(fdp);
-#ifdef CONTAINERS
 	limit = rusage_get_limit(td->td_proc, RUSAGE_NOFILE);
 #ifdef HRL
 	lim = limit;
@@ -214,7 +211,6 @@
 	if (lim > limit)
 		lim = limit;
 #endif
-#endif
 	last = min(fdp->fd_nfiles, lim);
 	freefd = 0;
 	for (i = fdp->fd_freefile; i < last; i++)

==== //depot/projects/soc2009/trasz_limits/sys/i386/linux/imgact_linux.c#10 (text+ko) ====

@@ -114,14 +114,12 @@
     }
     PROC_UNLOCK(imgp->proc);
 #endif /* !HRL */
-#ifdef CONTAINERS
     if (a_out->a_text > maxtsiz)
 	return (ENOMEM);
     error = rusage_set(imgp->proc, RUSAGE_DATA,
 	a_out->a_data + bss_size);
     if (error != 0)
 	return (ENOMEM);
-#endif /* CONTAINERS */
 
     VOP_UNLOCK(imgp->vp, 0);
 

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

@@ -197,7 +197,6 @@
 	}
 	PROC_UNLOCK(imgp->proc);
 #endif /* !HRL */
-#ifdef CONTAINERS
 	if (/* text can't exceed maximum text size */
 	    a_out->a_text > maxtsiz)
 		return (ENOMEM);
@@ -205,7 +204,6 @@
 	    a_out->a_data + bss_size);
 	if (error != 0)
 		return (ENOMEM);
-#endif /* CONTAINERS */
 
 	/*
 	 * Avoid a possible deadlock if the current address space is destroyed

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

@@ -885,7 +885,6 @@
 #else
 	PROC_LOCK(imgp->proc);
 #endif /* !HRL */
-#ifdef CONTAINERS
 	if (text_size > maxtsiz)
 		return (ENOMEM);
 	error = rusage_set(imgp->proc, RUSAGE_DATA,
@@ -896,7 +895,6 @@
 	    total_size);
 	if (error != 0)
 		return (ENOMEM);
-#endif /* CONTAINERS */
 
 	vmspace->vm_tsize = text_size >> PAGE_SHIFT;
 	vmspace->vm_taddr = (caddr_t)(uintptr_t)text_addr;
@@ -1117,12 +1115,10 @@
 	hdrsize = 0;
 	__elfN(puthdr)(td, (void *)NULL, &hdrsize, seginfo.count);
 
-#ifdef CONTAINERS
 	if (rusage_add(td->td_proc, RUSAGE_CORE, hdrsize + seginfo.size)) {
 		error = EFAULT;
 		goto done;
 	}
-#endif /* CONTAINERS */
 	if (hdrsize + seginfo.size >= limit) {
 		error = EFAULT;
 		goto done;

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

@@ -224,7 +224,6 @@
 	}
 	PROC_UNLOCK(gz->ip->proc);
 #endif /* !HRL */
-#ifdef CONTAINERS
 	if (			/* text can't exceed maximum text size */
 	    gz->a_out.a_text > maxtsiz) {
 		gz->where = __LINE__;
@@ -234,7 +233,6 @@
 	    gz->a_out.a_data + gz->bss_size);
 	if (error != 0)
 		return (ENOMEM);
-#endif /* CONTAINERS */
 	/* Find out how far we should go */
 	gz->file_end = gz->file_offset + gz->a_out.a_text + gz->a_out.a_data;
 

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

@@ -399,9 +399,6 @@
 proc0_init(void *dummy __unused)
 {
 	struct proc *p;
-#ifdef CONTAINERS
-	unsigned error;
-#endif
 	struct thread *td;
 	vm_paddr_t pageablemem;
 	int i;
@@ -560,10 +557,7 @@
 	 * Charge root for one process.
 	 */
 	(void)chgproccnt(p->p_ucred->cr_ruidinfo, 1, 0);
-#ifdef CONTAINERS
-	error = rusage_add(p, RUSAGE_NPROC, 1);
-	KASSERT(error == 0, ("rusage_add failed"));
-#endif
+	rusage_add_force(p, RUSAGE_NPROC, 1);
 }
 SYSINIT(p0init, SI_SUB_INTRINSIC, SI_ORDER_FIRST, proc0_init, NULL);
 

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

@@ -58,6 +58,8 @@
 #include <sys/hrl.h>
 #endif
 
+#ifdef CONTAINERS
+
 static struct mtx container_lock;
 MTX_SYSINIT(container_lock, &container_lock, "container lock", MTX_DEF);
 
@@ -786,3 +788,84 @@
 	NULL
 };
 SYSINIT(containerd, SI_SUB_RUN_SCHEDULER, SI_ORDER_FIRST, kproc_start, &containerd_kp);
+
+#else /* !CONTAINERS */
+
+int
+rusage_add(struct proc *p, int resource, uint64_t amount)
+{
+
+	return (0);
+}
+
+void
+rusage_add_cred(struct ucred *cred, int resource, uint64_t amount)
+{
+}
+
+void
+rusage_add_force(struct proc *p, int resource, uint64_t amount)
+{
+
+	return (0);
+}
+
+int
+rusage_set(struct proc *p, int resource, uint64_t amount)
+{
+
+	return (0);
+}
+
+void
+rusage_sub(struct proc *p, int resource, uint64_t amount)
+{
+}
+
+void
+rusage_sub_cred(struct ucred *cred, int resource, uint64_t amount)
+{
+}
+
+uint64_t
+rusage_get_limit(struct proc *p, int resource)
+{
+
+	return (UINT64_MAX);
+}
+
+void
+container_create(struct container *container)
+{
+}
+
+void
+container_destroy(struct container *container)
+{
+}
+
+int
+container_join(struct container *child, struct container *parent)
+{
+
+	return (0);
+}
+
+void
+container_leave(struct container *child, struct container *parent)
+{
+}
+
+int
+container_proc_fork(struct proc *parent, struct proc *child)
+{
+
+	return (0);
+}
+
+void
+container_proc_exit(struct proc *p)
+{
+}
+
+#endif /* !CONTAINERS */

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

@@ -274,19 +274,15 @@
 getdtablesize(struct thread *td, struct getdtablesize_args *uap)
 {
 	struct proc *p = td->td_proc;
-#ifdef CONTAINERS
 	uint64_t lim;
-#endif
 
 	PROC_LOCK(p);
 	td->td_retval[0] =
 	    min((int)lim_cur(p, RLIMIT_NOFILE), maxfilesperproc);
 	PROC_UNLOCK(p);
-#ifdef CONTAINERS
 	lim = rusage_get_limit(td->td_proc, RUSAGE_NOFILE);
 	if (lim < td->td_retval[0])
 		td->td_retval[0] = lim;
-#endif
 	return (0);
 }
 
@@ -800,22 +796,19 @@
 	 */
 	if (flags & DUP_FIXED) {
 		if (new >= fdp->fd_nfiles) {
-#ifdef CONTAINERS
 			/*
 			 * 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().
-			 * Instead of e.g. counting the number of actually allocated
+			 * Instead of counting the number of actually allocated
 			 * descriptors, just put the limit on the size of the file
-			 * descriptor table.  Entries are small, and we'll need a limit
-			 * for vnodes and sockets anyway.
+			 * descriptor table.
 			 */
 			if (rusage_set(p, RUSAGE_NOFILE, new + 1)) {
 				FILEDESC_XUNLOCK(fdp);
 				fdrop(fp, td);
 				return (EMFILE);
 			}
-#endif
 			fdgrowtable(fdp, new + 1);
 		}
 		if (fdp->fd_ofiles[new] == NULL)
@@ -1486,10 +1479,8 @@
 			return (EMFILE);
 		if (fd < fdp->fd_nfiles)
 			break;
-#ifdef CONTAINERS
 		if (rusage_set(p, RUSAGE_NOFILE, min(fdp->fd_nfiles * 2, maxfd)))
 			return (EMFILE);
-#endif
 		fdgrowtable(fdp, min(fdp->fd_nfiles * 2, maxfd));
 	}
 
@@ -1772,9 +1763,8 @@
 	if (fdp == NULL)
 		return;
 
-#ifdef CONTAINERS
 	rusage_set(td->td_proc, RUSAGE_NOFILE, 0);
-#endif
+
 	/* Check for special need to clear POSIX style locks */
 	fdtol = td->td_proc->p_fdtol;
 	if (fdtol != NULL) {

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

@@ -177,9 +177,7 @@
 	}
 	KASSERT(p->p_numthreads == 1,
 	    ("exit1: proc %p exiting with %d threads", p, p->p_numthreads));
-#ifdef CONTAINERS
 	rusage_sub(p, RUSAGE_NTHR, 1);
-#endif
 	/*
 	 * Wakeup anyone in procfs' PIOCWAIT.  They should have a hold
 	 * on our vmspace, so we should block below until they have
@@ -743,7 +741,6 @@
 	 * Decrement the count of procs running with this uid.
 	 */
 	(void)chgproccnt(p->p_ucred->cr_ruidinfo, -1, 0);
-#ifdef CONTAINERS
 	rusage_set(p, RUSAGE_CPU, cputick2usec(p->p_rux.rux_runtime));
 	rusage_sub(p->p_pptr, RUSAGE_NPROC, 1);
 
@@ -751,7 +748,6 @@
 	 * Destroy resource container associated with the process.
 	 */
 	container_proc_exit(p);
-#endif
 
 	/*
 	 * Free credentials, arguments, and sigacts.
@@ -912,11 +908,8 @@
 	if (child->p_pptr == parent)
 		return;
 
-#ifdef CONTAINERS
 	rusage_sub(child->p_pptr, RUSAGE_NPROC, 1);
-	/* XXX: What about return value? */
-	rusage_add(parent, RUSAGE_NPROC, 1);
-#endif
+	rusage_add_force(parent, RUSAGE_NPROC, 1);
 
 	PROC_LOCK(child->p_pptr);
 	sigqueue_take(child->p_ksi);

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

@@ -224,11 +224,9 @@
 
 	p1 = td->td_proc;
 
-#ifdef CONTAINERS
 	error = rusage_add(p1, RUSAGE_NPROC, 1);
 	if (error != 0)
 		return (error);
-#endif
 
 	/*
 	 * Here we don't create a new process, but we divorce
@@ -240,9 +238,7 @@
 			PROC_LOCK(p1);
 			if (thread_single(SINGLE_BOUNDARY)) {
 				PROC_UNLOCK(p1);
-#ifdef CONTAINERS
 				rusage_sub(p1, RUSAGE_NPROC, 1);
-#endif
 				return (ERESTART);
 			}
 			PROC_UNLOCK(p1);
@@ -276,10 +272,8 @@
 			PROC_UNLOCK(p1);
 		}
 		*procp = NULL;
-#ifdef CONTAINERS
 		if (error != 0)
 			rusage_sub(p1, RUSAGE_NPROC, 1);
-#endif
 		return (error);
 	}
 
@@ -356,7 +350,6 @@
 		goto fail;
 	}
 
-#ifdef CONTAINERS
 	/*
 	 * Initialize resource container for the child process.
 	 */
@@ -373,7 +366,6 @@
 		error = EAGAIN;
 		goto fail;
 	}
-#endif
 
 	/*
 	 * Increment the count of procs running with this uid. Don't allow
@@ -810,9 +802,7 @@
 	*procp = p2;
 	return (0);
 fail:
-#ifdef CONTAINERS
 	container_proc_exit(newproc);
-#endif
 	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",
@@ -826,9 +816,7 @@
 		vmspace_free(vm2);
 	uma_zfree(proc_zone, newproc);
 	pause("fork", hz / 2);
-#ifdef CONTAINERS
 	rusage_sub(p1, RUSAGE_NPROC, 1);
-#endif
 	return (error);
 }
 

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

@@ -1188,9 +1188,7 @@
 			root = mypr->pr_root;
 			vref(root);
 		}
-#ifdef CONTAINERS
 		container_create(&pr->pr_container);
-#endif
 		strlcpy(pr->pr_hostuuid, DEFAULT_HOSTUUID, HOSTUUIDLEN);
 		pr->pr_flags |= PR_HOST;
 #if defined(INET) || defined(INET6)
@@ -2523,9 +2521,7 @@
 		if (pr->pr_cpuset != NULL)
 			cpuset_rel(pr->pr_cpuset);
 		osd_jail_exit(pr);
-#ifdef CONTAINERS
 		container_destroy(&pr->pr_container);
-#endif
 		free(pr, M_PRISON);
 
 		/* Removing a prison frees a reference on its parent. */

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

@@ -3170,12 +3170,8 @@
 	 */
 	limit = (off_t)lim_cur(p, RLIMIT_CORE);
 	PROC_UNLOCK(p);
-#ifdef CONTAINERS
 	if (limit == 0 && rusage_add(td->td_proc, RUSAGE_CORE, 1) == 0) {
 		rusage_sub(td->td_proc, RUSAGE_CORE, 1);
-#else
-	if (limit == 0) {
-#endif
 #ifdef AUDIT
 		audit_proc_coredump(td, name, EFBIG);
 #endif

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

@@ -176,10 +176,8 @@
 			return (EINVAL);
 		}
 	}
-#ifdef CONTAINERS
 	if (rusage_add(p, RUSAGE_NTHR, 1))
 		return (EPROCLIM);
-#endif
 
 	/* Initialize our td */
 	newtd = thread_alloc(0);
@@ -267,9 +265,7 @@
 	return (0);
 
 fail:
-#ifdef CONTAINERS
 	rusage_sub(p, RUSAGE_NTHR, 1);
-#endif
 	return (error);
 }
 
@@ -301,9 +297,7 @@
 
 	rw_wlock(&tidhash_lock);
 
-#ifdef CONTAINERS
 	rusage_sub(p, RUSAGE_NTHR, 1);
-#endif
 
 	PROC_LOCK(p);
 	/*

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

@@ -465,11 +465,9 @@
 		}
 #endif
 
-#ifdef CONTAINERS
 		rusage_sub_cred(msqkptr->cred, RUSAGE_NMSGQ, 1);
 		rusage_sub_cred(msqkptr->cred, RUSAGE_MSGQQUEUED, msqkptr->u.msg_qnum);
 		rusage_sub_cred(msqkptr->cred, RUSAGE_MSGQSIZE, msqkptr->u.msg_cbytes);
-#endif
 		crfree(msqkptr->cred);
 		msqkptr->cred = NULL;
 
@@ -620,12 +618,10 @@
 			error = ENOSPC;
 			goto done2;
 		}
-#ifdef CONTAINERS
 		if (rusage_add(td->td_proc, RUSAGE_NMSGQ, 1)) {
 			error = ENOSPC;
 			goto done2;
 		}
-#endif
 		DPRINTF(("msqid %d is available\n", msqid));
 		msqkptr->u.msg_perm.key = key;
 		msqkptr->u.msg_perm.cuid = cred->cr_uid;
@@ -685,9 +681,7 @@
 	register struct msqid_kernel *msqkptr;
 	register struct msg *msghdr;
 	short next;
-#ifdef CONTAINERS
 	size_t saved_msgsz;
-#endif
 
 	if (!prison_allow(td->td_ucred, PR_ALLOW_SYSVIPC))
 		return (ENOSYS);
@@ -725,19 +719,16 @@
 		goto done2;
 #endif
 
-#ifdef CONTAINERS
 	if (rusage_add(td->td_proc, RUSAGE_MSGQQUEUED, 1)) {
 		error = EAGAIN;
 		goto done2;
 	}
-
 	saved_msgsz = msgsz;
 	if (rusage_add(td->td_proc, RUSAGE_MSGQSIZE, msgsz)) {
 		rusage_sub(td->td_proc, RUSAGE_MSGQQUEUED, 1);
 		error = EAGAIN;
 		goto done2;
 	}
-#endif
 
 	segs_needed = (msgsz + msginfo.msgssz - 1) / msginfo.msgssz;
 	DPRINTF(("msgsz=%zu, msgssz=%d, segs_needed=%d\n", msgsz,
@@ -992,12 +983,10 @@
 	wakeup(msqkptr);
 	td->td_retval[0] = 0;
 done3:
-#ifdef CONTAINERS
 	if (error != 0) {
 		rusage_sub(td->td_proc, RUSAGE_MSGQQUEUED, 1);
 		rusage_sub(td->td_proc, RUSAGE_MSGQSIZE, saved_msgsz);
 	}
-#endif
 done2:
 	mtx_unlock(&msq_mtx);
 	return (error);
@@ -1231,10 +1220,8 @@
 	msqkptr->u.msg_lrpid = td->td_proc->p_pid;
 	msqkptr->u.msg_rtime = time_second;
 
-#ifdef CONTAINERS
 	rusage_sub_cred(msqkptr->cred, RUSAGE_MSGQQUEUED, 1);
 	rusage_sub_cred(msqkptr->cred, RUSAGE_MSGQSIZE, msghdr->msg_ts);
-#endif
 
 	/*
 	 * Make msgsz the actual amount that we'll be returning.

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

@@ -655,9 +655,7 @@
 		semakptr->u.sem_perm.cuid = cred->cr_uid;
 		semakptr->u.sem_perm.uid = cred->cr_uid;
 		semakptr->u.sem_perm.mode = 0;
-#ifdef CONTAINERS
 		rusage_sub_cred(semakptr->cred, RUSAGE_NSEM, semakptr->u.sem_nsems);
-#endif
 		crfree(semakptr->cred);
 		semakptr->cred = NULL;
 		SEMUNDO_LOCK();
@@ -931,12 +929,10 @@
 			error = ENOSPC;
 			goto done2;
 		}
-#ifdef CONTAINERS
 		if (rusage_add(td->td_proc, RUSAGE_NSEM, nsems)) {
 			error = ENOSPC;
 			goto done2;
 		}
-#endif
 		DPRINTF(("semid %d is available\n", semid));
 		mtx_lock(&sema_mtx[semid]);
 		KASSERT((sema[semid].u.sem_perm.mode & SEM_ALLOC) == 0,
@@ -1022,10 +1018,8 @@
 		DPRINTF(("too many sops (max=%d, nsops=%d)\n", seminfo.semopm,
 		    nsops));
 		return (E2BIG);
-#ifdef CONTAINERS
 	} else if (nsops > rusage_get_limit(td->td_proc, RUSAGE_NSEMOP)) {
 		return (E2BIG);
-#endif
 	} else
 		sops = malloc(nsops * sizeof(*sops), M_TEMP, M_WAITOK);
 	if ((error = copyin(uap->sops, sops, nsops * sizeof(sops[0]))) != 0) {

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

@@ -245,10 +245,8 @@
 #ifdef MAC
 	mac_sysvshm_cleanup(shmseg);
 #endif
-#ifdef CONTAINERS
 	rusage_sub_cred(shmseg->cred, RUSAGE_NSHM, 1);
 	rusage_sub_cred(shmseg->cred, RUSAGE_SHMSIZE, size);
-#endif
 	crfree(shmseg->cred);
 	shmseg->cred = NULL;
 }
@@ -672,14 +670,12 @@
 		shm_last_free = -1;
 	}
 	shmseg = &shmsegs[segnum];
-#ifdef CONTAINERS
 	if (rusage_add(td->td_proc, RUSAGE_NSHM, 1))
 		return (ENOSPC);
 	if (rusage_add(td->td_proc, RUSAGE_SHMSIZE, size)) {
 		rusage_sub(td->td_proc, RUSAGE_NSHM, 1);
 		return (ENOMEM);
 	}
-#endif
 	/*
 	 * In case we sleep in malloc(), mark the segment present but deleted
 	 * so that noone else tries to create the same key.
@@ -696,10 +692,8 @@
 	shm_object = vm_pager_allocate(shm_use_phys ? OBJT_PHYS : OBJT_SWAP,
 	    0, size, VM_PROT_DEFAULT, 0, cred);
 	if (shm_object == NULL) {
-#ifdef CONTAINERS
 		rusage_sub(td->td_proc, RUSAGE_NSHM, 1);
 		rusage_sub(td->td_proc, RUSAGE_SHMSIZE, size);
-#endif
 		return (ENOMEM);
 	}
 	VM_OBJECT_LOCK(shm_object);

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

@@ -576,9 +576,7 @@
 	tty_lock(tp);
 	tty_rel_gone(tp);
 
-#ifdef CONTAINERS
 	rusage_sub(td->td_proc, RUSAGE_NPTS, 1);
-#endif
 
 	/*
 	 * Open of /dev/ptmx or /dev/ptyXX changes the type of file
@@ -717,34 +715,28 @@
 int
 pts_alloc(int fflags, struct thread *td, struct file *fp)
 {
-	int unit, ok;
+	int unit, ok, error;
 	struct tty *tp;
 	struct pts_softc *psc;
 	struct proc *p = td->td_proc;
 	struct uidinfo *uid = td->td_ucred->cr_ruidinfo;
 
 	/* Resource limiting. */
-#ifdef CONTAINERS
-	ok = !rusage_add(p, RUSAGE_NPTS, 1);
-	if (!ok)
+	error = rusage_add(p, RUSAGE_NPTS, 1);
+	if (error != 0)
 		return (EAGAIN);
-#endif
 	PROC_LOCK(p);
 	ok = chgptscnt(uid, 1, lim_cur(p, RLIMIT_NPTS));
 	PROC_UNLOCK(p);
 	if (!ok) {
-#ifdef CONTAINERS
 		rusage_sub(p, RUSAGE_NPTS, 1);
-#endif
 		return (EAGAIN);
 	}
 
 	/* Try to allocate a new pts unit number. */
 	unit = alloc_unr(pts_pool);
 	if (unit < 0) {
-#ifdef CONTAINERS
 		rusage_sub(p, RUSAGE_NPTS, 1);
-#endif
 		chgptscnt(uid, -1, 0);
 		return (EAGAIN);
 	}
@@ -775,25 +767,21 @@
 pts_alloc_external(int fflags, struct thread *td, struct file *fp,
     struct cdev *dev, const char *name)
 {
-	int ok;
+	int ok, error;
 	struct tty *tp;
 	struct pts_softc *psc;
 	struct proc *p = td->td_proc;
 	struct uidinfo *uid = td->td_ucred->cr_ruidinfo;
 
 	/* Resource limiting. */
-#ifdef CONTAINERS
-	ok = !rusage_add(p, RUSAGE_NPTS, 1);
-	if (!ok)
+	error = rusage_add(p, RUSAGE_NPTS, 1);
+	if (error != 0)
 		return (EAGAIN);
-#endif
 	PROC_LOCK(p);
 	ok = chgptscnt(uid, 1, lim_cur(p, RLIMIT_NPTS));
 	PROC_UNLOCK(p);
 	if (!ok) {
-#ifdef CONTAINERS
 		rusage_sub(p, RUSAGE_NPTS, 1);
-#endif
 		return (EAGAIN);
 	}
 

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

@@ -291,9 +291,7 @@
     struct thread *td)
 {
 	rlim_t sbsize_limit;
-#ifdef CONTAINER
 	int error;
-#endif
 
 	SOCKBUF_LOCK_ASSERT(sb);
 
@@ -310,21 +308,16 @@
 		PROC_LOCK(td->td_proc);
 		sbsize_limit = lim_cur(td->td_proc, RLIMIT_SBSIZE);
 		PROC_UNLOCK(td->td_proc);
-	} else
-		sbsize_limit = RLIM_INFINITY;
-#ifdef CONTAINER
-	if (td != NULL) {
 		error = rusage_add(td->td_proc, RUSAGE_SBSIZE, cc);
 		if (error != 0)
 			return (0);
-	} else
+	} else {
+		sbsize_limit = RLIM_INFINITY;
 		rusage_add_cred(so->so_cred, RUSAGE_SBSIZE, cc);
-#endif
+	}
 	if (!chgsbsize(so->so_cred->cr_uidinfo, &sb->sb_hiwat, cc,
 	    sbsize_limit)) {
-#ifdef CONTAINER
 		rusage_sub_cred(so->so_cred, RUSAGE_SBSIZE, cc);
-#endif
 		return (0);
 	}
 	sb->sb_mbmax = min(cc * sb_efficiency, sb_max);
@@ -353,9 +346,7 @@
 {
 
 	sbflush_internal(sb);
-#ifdef CONTAINERS
 	rusage_sub_cred(so->so_cred, RUSAGE_SBSIZE, sb->sb_hiwat);
-#endif
 	(void)chgsbsize(so->so_cred->cr_uidinfo, &sb->sb_hiwat, 0,
 	    RLIM_INFINITY);
 	sb->sb_mbmax = 0;

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

@@ -323,18 +323,14 @@
 #endif
 	mtx_unlock(&so_global_mtx);
 	if (so->so_rcv.sb_hiwat) {
-#ifdef CONTAINERS
 		rusage_sub_cred(so->so_cred, RUSAGE_SBSIZE,
 		    so->so_rcv.sb_hiwat);
-#endif
 		(void)chgsbsize(so->so_cred->cr_uidinfo,
 		    &so->so_rcv.sb_hiwat, 0, RLIM_INFINITY);
 	}
 	if (so->so_snd.sb_hiwat) {
-#ifdef CONTAINERS
 		rusage_sub_cred(so->so_cred, RUSAGE_SBSIZE,
 		    so->so_snd.sb_hiwat);
-#endif
 		(void)chgsbsize(so->so_cred->cr_uidinfo,
 		    &so->so_snd.sb_hiwat, 0, RLIM_INFINITY);
 	}

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

@@ -801,9 +801,7 @@
 	SOCKBUF_LOCK(&so2->so_snd);
 	so2->so_snd.sb_mbmax += unp->unp_mbcnt - mbcnt;
 	newhiwat = so2->so_snd.sb_hiwat + unp->unp_cc - sbcc;
-#ifdef CONTAINERS
 	rusage_add_cred(so2->so_cred, RUSAGE_SBSIZE, newhiwat - so2->so_snd.sb_hiwat);
-#endif
 	(void)chgsbsize(so2->so_cred->cr_uidinfo, &so2->so_snd.sb_hiwat,
 	    newhiwat, RLIM_INFINITY);
 	sowwakeup_locked(so2);
@@ -979,9 +977,7 @@
 
 		SOCKBUF_LOCK(&so->so_snd);
 		newhiwat = so->so_snd.sb_hiwat - (sbcc - unp2->unp_cc);
-#ifdef CONTAINERS
 		rusage_add_cred(so->so_cred, RUSAGE_SBSIZE, newhiwat - so->so_snd.sb_hiwat);
-#endif
 		(void)chgsbsize(so->so_cred->cr_uidinfo, &so->so_snd.sb_hiwat,
 		    newhiwat, RLIM_INFINITY);
 		so->so_snd.sb_mbmax -= mbcnt_delta;

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

@@ -1357,11 +1357,9 @@
 	}
 	PROC_UNLOCK(td->td_proc);
 #endif
-#ifdef CONTAINERS
 	if (rusage_set(td->td_proc, RUSAGE_FSIZE,
 	    (uoff_t)uio->uio_offset + uio->uio_resid))
 		return (EFBIG);
-#endif
 
 	return (0);
 }

==== //depot/projects/soc2009/trasz_limits/sys/vm/swap_pager.c#14 (text+ko) ====

@@ -212,9 +212,7 @@
 		PROC_LOCK(curproc);
 		UIDINFO_VMSIZE_LOCK(uip);
 		if (
-#ifdef CONTAINERS
 		    rusage_add(curproc, RUSAGE_SWAP, incr) &&
-#endif
 #ifndef HRL
 		    (overcommit & SWAP_RESERVE_RLIMIT_ON) != 0 &&
 		    uip->ui_vmsize + incr > lim_cur(curproc, RLIMIT_SWAP) &&
@@ -248,9 +246,7 @@
 	swap_reserved += incr;
 	mtx_unlock(&sw_dev_mtx);
 
-#ifdef CONTAINERS
 	rusage_add_force(curproc, RUSAGE_SWAP, incr);
-#endif
 
 	uip = curthread->td_ucred->cr_ruidinfo;
 	PROC_LOCK(curproc);
@@ -293,9 +289,7 @@
 	uip->ui_vmsize -= decr;
 	UIDINFO_VMSIZE_UNLOCK(uip);
 
-#ifdef CONTAINERS
 	rusage_sub_cred(cred, RUSAGE_SWAP, decr);
-#endif
 }
 
 static void swapdev_strategy(struct buf *, struct swdevt *sw);

==== //depot/projects/soc2009/trasz_limits/sys/vm/vm_glue.c#9 (text+ko) ====

@@ -207,10 +207,8 @@
 	}
 #endif
 	PROC_UNLOCK(curproc);
-#ifdef CONTAINERS
 	if (rusage_set(curproc, RUSAGE_MEMLOCK, nsize))
 		return (ENOMEM);
-#endif
 #if 0
 	/*
 	 * XXX - not yet
@@ -226,11 +224,9 @@
 #endif
 	error = vm_map_wire(&curproc->p_vmspace->vm_map, start, end,
 	    VM_MAP_WIRE_SYSTEM | VM_MAP_WIRE_NOHOLES);
-#ifdef CONTAINERS
 	if (error != KERN_SUCCESS)
 		rusage_sub(curproc, RUSAGE_MEMLOCK, 
 		    ptoa(pmap_wired_count(vm_map_pmap(&curproc->p_vmspace->vm_map))));
-#endif
 	/*
 	 * Return EFAULT on error to match copy{in,out}() behaviour
 	 * rather than returning ENOMEM like mlock() would.
@@ -247,10 +243,8 @@
 	    trunc_page((vm_offset_t)addr), round_page((vm_offset_t)addr + len),
 	    VM_MAP_WIRE_SYSTEM | VM_MAP_WIRE_NOHOLES);
 
-#ifdef CONTAINERS
 	rusage_set(curproc, RUSAGE_MEMLOCK,
 	    ptoa(pmap_wired_count(vm_map_pmap(&curproc->p_vmspace->vm_map))));
-#endif
 }
 
 /*

>>> TRUNCATED FOR MAIL (1000 lines) <<<


More information about the p4-projects mailing list