Lines Matching refs:p

71 static void	calcru1(struct proc *p, struct rusage_ext *ruxp,
96 struct proc *p; in kern_getpriority() local
107 p = pfind(who); in kern_getpriority()
108 if (p == NULL) in kern_getpriority()
110 if (p_cansee(td, p) == 0) in kern_getpriority()
111 low = p->p_nice; in kern_getpriority()
112 PROC_UNLOCK(p); in kern_getpriority()
129 LIST_FOREACH(p, &pg->pg_members, p_pglist) { in kern_getpriority()
130 PROC_LOCK(p); in kern_getpriority()
131 if (p->p_state == PRS_NORMAL && in kern_getpriority()
132 p_cansee(td, p) == 0) { in kern_getpriority()
133 if (p->p_nice < low) in kern_getpriority()
134 low = p->p_nice; in kern_getpriority()
136 PROC_UNLOCK(p); in kern_getpriority()
145 FOREACH_PROC_IN_SYSTEM(p) { in kern_getpriority()
146 PROC_LOCK(p); in kern_getpriority()
147 if (p->p_state == PRS_NORMAL && in kern_getpriority()
148 p_cansee(td, p) == 0 && in kern_getpriority()
149 p->p_ucred->cr_uid == who) { in kern_getpriority()
150 if (p->p_nice < low) in kern_getpriority()
151 low = p->p_nice; in kern_getpriority()
153 PROC_UNLOCK(p); in kern_getpriority()
185 struct proc *curp, *p; in kern_setpriority() local
197 p = pfind(who); in kern_setpriority()
198 if (p == NULL) in kern_setpriority()
200 error = p_cansee(td, p); in kern_setpriority()
202 error = donice(td, p, prio); in kern_setpriority()
203 PROC_UNLOCK(p); in kern_setpriority()
221 LIST_FOREACH(p, &pg->pg_members, p_pglist) { in kern_setpriority()
222 PROC_LOCK(p); in kern_setpriority()
223 if (p->p_state == PRS_NORMAL && in kern_setpriority()
224 p_cansee(td, p) == 0) { in kern_setpriority()
225 error = donice(td, p, prio); in kern_setpriority()
228 PROC_UNLOCK(p); in kern_setpriority()
237 FOREACH_PROC_IN_SYSTEM(p) { in kern_setpriority()
238 PROC_LOCK(p); in kern_setpriority()
239 if (p->p_state == PRS_NORMAL && in kern_setpriority()
240 p->p_ucred->cr_uid == who && in kern_setpriority()
241 p_cansee(td, p) == 0) { in kern_setpriority()
242 error = donice(td, p, prio); in kern_setpriority()
245 PROC_UNLOCK(p); in kern_setpriority()
263 donice(struct thread *td, struct proc *p, int n) in donice() argument
267 PROC_LOCK_ASSERT(p, MA_OWNED); in donice()
268 if ((error = p_cansched(td, p))) in donice()
274 if (n < p->p_nice && priv_check(td, PRIV_SCHED_SETPRIORITY) != 0) in donice()
276 sched_nice(p, n); in donice()
298 struct proc *p; in sys_rtprio_thread() local
310 p = td->td_proc; in sys_rtprio_thread()
312 PROC_LOCK(p); in sys_rtprio_thread()
317 p = td1->td_proc; in sys_rtprio_thread()
322 if ((error = p_cansee(td, p))) in sys_rtprio_thread()
325 PROC_UNLOCK(p); in sys_rtprio_thread()
328 if ((error = p_cansched(td, p)) || (error = cierror)) in sys_rtprio_thread()
362 PROC_UNLOCK(p); in sys_rtprio_thread()
379 struct proc *p; in sys_rtprio() local
391 p = td->td_proc; in sys_rtprio()
392 PROC_LOCK(p); in sys_rtprio()
394 p = pfind(uap->pid); in sys_rtprio()
395 if (p == NULL) in sys_rtprio()
401 if ((error = p_cansee(td, p))) in sys_rtprio()
418 FOREACH_THREAD_IN_PROC(p, tdp) { in sys_rtprio()
428 PROC_UNLOCK(p); in sys_rtprio()
431 if ((error = p_cansched(td, p)) || (error = cierror)) in sys_rtprio()
456 FOREACH_THREAD_IN_PROC(p, td) { in sys_rtprio()
466 PROC_UNLOCK(p); in sys_rtprio()
613 struct proc *p; in lim_cb() local
615 p = arg; in lim_cb()
616 PROC_LOCK_ASSERT(p, MA_OWNED); in lim_cb()
621 if (p->p_cpulimit == RLIM_INFINITY) in lim_cb()
623 PROC_STATLOCK(p); in lim_cb()
624 FOREACH_THREAD_IN_PROC(p, td) { in lim_cb()
625 ruxagg(p, td); in lim_cb()
627 PROC_STATUNLOCK(p); in lim_cb()
628 if (p->p_rux.rux_runtime > p->p_cpulimit * cpu_tickrate()) { in lim_cb()
629 lim_rlimit_proc(p, RLIMIT_CPU, &rlim); in lim_cb()
630 if (p->p_rux.rux_runtime >= rlim.rlim_max * cpu_tickrate()) { in lim_cb()
631 killproc(p, "exceeded maximum CPU limit"); in lim_cb()
633 if (p->p_cpulimit < rlim.rlim_max) in lim_cb()
634 p->p_cpulimit += 5; in lim_cb()
635 kern_psignal(p, SIGXCPU); in lim_cb()
638 if ((p->p_flag & P_WEXIT) == 0) in lim_cb()
639 callout_reset_sbt(&p->p_limco, SBT_1S, 0, in lim_cb()
640 lim_cb, p, C_PREL(1)); in lim_cb()
651 kern_proc_setrlimit(struct thread *td, struct proc *p, u_int which, in kern_proc_setrlimit() argument
672 PROC_LOCK(p); in kern_proc_setrlimit()
673 oldlim = p->p_limit; in kern_proc_setrlimit()
678 PROC_UNLOCK(p); in kern_proc_setrlimit()
690 p->p_cpulimit == RLIM_INFINITY) in kern_proc_setrlimit()
691 callout_reset_sbt(&p->p_limco, SBT_1S, 0, in kern_proc_setrlimit()
692 lim_cb, p, C_PREL(1)); in kern_proc_setrlimit()
693 p->p_cpulimit = limp->rlim_cur; in kern_proc_setrlimit()
708 if (p->p_sysent->sv_fixlimit != NULL) in kern_proc_setrlimit()
709 p->p_sysent->sv_fixlimit(&oldssiz, in kern_proc_setrlimit()
731 if (p->p_sysent->sv_fixlimit != NULL) in kern_proc_setrlimit()
732 p->p_sysent->sv_fixlimit(limp, which); in kern_proc_setrlimit()
734 p->p_limit = newlim; in kern_proc_setrlimit()
735 PROC_UPDATE_COW(p); in kern_proc_setrlimit()
737 if (td == curthread && PROC_COW_CHANGECOUNT(td, p) == 1) { in kern_proc_setrlimit()
741 PROC_UNLOCK(p); in kern_proc_setrlimit()
754 (td != curthread || (p->p_flag & P_INEXEC) == 0)) { in kern_proc_setrlimit()
766 prot = p->p_sysent->sv_stackprot; in kern_proc_setrlimit()
768 addr = round_page(p->p_vmspace->vm_stacktop) - in kern_proc_setrlimit()
773 addr = round_page(p->p_vmspace->vm_stacktop) - in kern_proc_setrlimit()
778 (void)vm_map_protect(&p->p_vmspace->vm_map, in kern_proc_setrlimit()
812 calccru(struct proc *p, struct timeval *up, struct timeval *sp) in calccru() argument
815 PROC_LOCK_ASSERT(p, MA_OWNED); in calccru()
816 calcru1(p, &p->p_crux, up, sp); in calccru()
825 calcru(struct proc *p, struct timeval *up, struct timeval *sp) in calcru() argument
830 PROC_LOCK_ASSERT(p, MA_OWNED); in calcru()
831 PROC_STATLOCK_ASSERT(p, MA_OWNED); in calcru()
839 if (td->td_proc == p) { in calcru()
847 FOREACH_THREAD_IN_PROC(p, td) { in calcru()
850 ruxagg(p, td); in calcru()
852 calcru1(p, &p->p_rux, up, sp); in calcru()
859 struct proc *p; in rufetchtd() local
862 p = td->td_proc; in rufetchtd()
863 PROC_STATLOCK_ASSERT(p, MA_OWNED); in rufetchtd()
878 ruxagg_locked(p, td); in rufetchtd()
880 calcru1(p, &td->td_rux, &ru->ru_utime, &ru->ru_stime); in rufetchtd()
963 calcru1(struct proc *p, struct rusage_ext *ruxp, struct timeval *up, in calcru1() argument
982 (intmax_t)tu, p->p_pid, p->p_comm); in calcru1()
1030 p->p_pid, p->p_comm); in calcru1()
1064 struct proc *p; in kern_getrusage() local
1068 p = td->td_proc; in kern_getrusage()
1069 PROC_LOCK(p); in kern_getrusage()
1072 rufetchcalc(p, rup, &rup->ru_utime, in kern_getrusage()
1077 *rup = p->p_stats->p_cru; in kern_getrusage()
1078 calccru(p, &rup->ru_utime, &rup->ru_stime); in kern_getrusage()
1082 PROC_STATLOCK(p); in kern_getrusage()
1086 PROC_STATUNLOCK(p); in kern_getrusage()
1092 PROC_UNLOCK(p); in kern_getrusage()
1139 ruxagg_locked(struct proc *p, struct thread *td) in ruxagg_locked() argument
1144 ruxagg_ext_locked(&p->p_rux, td); in ruxagg_locked()
1153 ruxagg(struct proc *p, struct thread *td) in ruxagg() argument
1157 ruxagg_locked(p, td); in ruxagg()
1166 rufetch(struct proc *p, struct rusage *ru) in rufetch() argument
1170 PROC_STATLOCK_ASSERT(p, MA_OWNED); in rufetch()
1172 *ru = p->p_ru; in rufetch()
1173 if (p->p_numthreads > 0) { in rufetch()
1174 FOREACH_THREAD_IN_PROC(p, td) { in rufetch()
1175 ruxagg(p, td); in rufetch()
1187 rufetchcalc(struct proc *p, struct rusage *ru, struct timeval *up, in rufetchcalc() argument
1191 PROC_STATLOCK(p); in rufetchcalc()
1192 rufetch(p, ru); in rufetchcalc()
1193 calcru(p, up, sp); in rufetchcalc()
1194 PROC_STATUNLOCK(p); in rufetchcalc()
1223 struct proc *p; in lim_cowsync() local
1227 p = td->td_proc; in lim_cowsync()
1228 PROC_LOCK_ASSERT(p, MA_OWNED); in lim_cowsync()
1230 if (td->td_limit == p->p_limit) in lim_cowsync()
1234 td->td_limit = lim_hold(p->p_limit); in lim_cowsync()
1322 lim_max_proc(struct proc *p, int which) in lim_max_proc() argument
1326 lim_rlimit_proc(p, which, &rl); in lim_max_proc()
1344 lim_cur_proc(struct proc *p, int which) in lim_cur_proc() argument
1348 lim_rlimit_proc(p, which, &rl); in lim_cur_proc()
1359 struct proc *p = td->td_proc; in lim_rlimit() local
1365 if (p->p_sysent->sv_fixlimit != NULL) in lim_rlimit()
1366 p->p_sysent->sv_fixlimit(rlp, which); in lim_rlimit()
1370 lim_rlimit_proc(struct proc *p, int which, struct rlimit *rlp) in lim_rlimit_proc() argument
1373 PROC_LOCK_ASSERT(p, MA_OWNED); in lim_rlimit_proc()
1376 *rlp = p->p_limit->pl_rlimit[which]; in lim_rlimit_proc()
1377 if (p->p_sysent->sv_fixlimit != NULL) in lim_rlimit_proc()
1378 p->p_sysent->sv_fixlimit(rlp, which); in lim_rlimit_proc()