History log of /freebsd-9.3-release/sys/kern/kern_racct.c
Revision Date Author Comments
(<<< Hide modified files)
(Show modified files >>>)
# 267654 19-Jun-2014 gjb

Copy stable/9 to releng/9.3 as part of the 9.3-RELEASE cycle.

Approved by: re (implicit)
Sponsored by: The FreeBSD Foundation

# 262057 17-Feb-2014 avg

MFC r258622,258675: dtrace sdt: remove the ugly sname parameter of
SDT_PROBE_DEFINE


# 249444 13-Apr-2013 trasz

MFC r242139:

Add CPU percentage limit enforcement to RCTL. The resouce name is "pcpu".
It was implemented by Rudolf Tomori during Google Summer of Code 2012.

MFC r242957:

Don't divide by zero.

MFC r243070:

Fix kassert that's not really valid for %CPU accounting. The problem
here is race between decaying the resource usage in containers, and updating
per-process usage; basically, the former may cause per-container usage
to get smaller than per-process usage.

MFC r243088:

Improve KASSERT messages in racct, to make it clear which resource
caused the problem.

MFC r248298:

Accessing td_state requires thread lock to be held.

MFC r248300:

When throttling a process to enforce RACCT limits, do not use neither
PBDRY (which simply doesn't make any sense) nor PCATCH (which could
be used by a malicious process to work around the PCPU limit).


# 236253 29-May-2012 trasz

MFC r232598:

Make racct and rctl correctly handle jail renaming. Previously
they would continue using old name, the one jail was created with.

PR: bin/165207

MFC r235795:

Don't leak locks in prison_racct_modify().

MFC r235803:

Fix use-after-free in kern_jail_set() triggered e.g. by attempts
to clear "persist" flag from empty persistent jail, like this:

jail -c persist=1
jail -n 1 -m persist=0


# 236239 29-May-2012 trasz

MFC r235787:

Fix panic with RACCT that could occur in low memory (or out of swap)
situations, due to fork1() calling racct_proc_exit() without calling
racct_proc_fork() first.


# 235913 24-May-2012 trasz

MFC r234383:

Stop treating system processes as special. This fixes panics
like the one triggered by this:

# kldload geom_vinum
# pwait `pgrep -S gv_worker` &
# kldunload geom_vinum

or this:

GEOM_JOURNAL: Shutting down geom gjournal 3464572051.
panic: destroying non-empty racct: 1 allocated for resource 6

which were tracked by jh@ to be caused by checking p->p_flag,
while it wasn't initialised yet. Basically, during fork, the code
checked p_flag, concluded the process isn't marked as P_SYSTEM,
incremented the counter, and later on, when exiting, checked that
the process was marked as P_SYSTEM, and thus didn't decrement it.

Also, I believe there wasn't any good reason for checking P_SYSTEM
in the first place.


# 235893 24-May-2012 trasz

MFC r232782:

Remove useless thread_{lock,unlock}() in raccd.


# 233543 27-Mar-2012 jh

MFC r233126:

Cast wallclock.tv_sec to uint64_t to avoid overflow in the calculation.

PR: kern/161552


# 230167 15-Jan-2012 avg

MFC r228430,228433: put sys/systm.h at its proper place or add it if missing


# 226092 07-Oct-2011 trasz

MFC r225938:

Fix bug introduced in r225641, which would cause panic if racct_proc_fork()
returned error -- the racct_destroy_locked() would get called twice.

MFC r225940:

Fix another bug introduced in r225641, which caused rctl to access certain
fields in 'struct proc' before they got initialized in do_fork().

MFC r225944:

Move some code inside the racct_proc_fork(); it spares a few lock operations
and it's more logical this way.

MFC r225981:

Actually enforce limit for inheritable resources on fork.

Approved by: re (kib)


# 225736 22-Sep-2011 kensmith

Copy head to stable/9 as part of 9.0-RELEASE release cycle.

Approved by: re (implicit)


# 225364 03-Sep-2011 trasz

Fix panic that happens when fork(2) fails due to a limit other than
the rctl one - for example, it happens when someone reaches maximum
number of processes in the system.

Approved by: re (kib)


# 224036 14-Jul-2011 trasz

Rename resource names to match these in login.conf.


# 223844 07-Jul-2011 trasz

Style fix - macros are supposed to be uppercase.


# 222380 27-May-2011 trasz

Remove definitions for RACCT_FSIZE and RACCT_SBSIZE - these two are rather
performance-sensitive and not that useful, so I won't be merging them
before 9.0.


# 221362 03-May-2011 trasz

Change the way rctl interfaces with jails by introducing prison_racct
structure, which acts as a proxy between them. This makes jail rules
persistent, i.e. they can be added before jail gets created, and they
don't disappear when the jail gets destroyed.


# 220372 05-Apr-2011 trasz

Add missing stubs.


# 220146 29-Mar-2011 trasz

Remove pointless (always true) KASSERTs.

Submitted by: pjd


# 220137 29-Mar-2011 trasz

Add racct. It's an API to keep per-process, per-jail, per-loginclass
and per-loginclass resource accounting information, to be used by the new
resource limits code. It's connected to the build, but the code that
actually calls the new functions will come later.

Sponsored by: The FreeBSD Foundation
Reviewed by: kib (earlier version)