Lines Matching defs:p2

368 do_fork(struct thread *td, struct fork_req *fr, struct proc *p2, struct thread *td2,
380 bcopy(&p1->p_startcopy, &p2->p_startcopy,
382 pargs_hold(p2->p_args);
385 bzero(&p2->p_startzero,
389 prison_proc_hold(p2->p_ucred->cr_prison);
391 p2->p_state = PRS_NEW; /* protect against others */
392 p2->p_pid = fork_findpid(fr->fr_flags);
393 AUDIT_ARG_PID(p2->p_pid);
396 LIST_INSERT_HEAD(&allproc, p2, p_list);
400 sx_xlock(PIDHASHLOCK(p2->p_pid));
401 LIST_INSERT_HEAD(PIDHASH(p2->p_pid), p2, p_hash);
402 sx_xunlock(PIDHASHLOCK(p2->p_pid));
452 p1->p_fd, p2);
461 PROC_LOCK(p2);
470 bcopy(&p2->p_comm, &td2->td_name, sizeof(td2->td_name));
491 p2->p_flag = P_INMEM;
492 p2->p_flag2 = p1->p_flag2 & (P2_ASLR_DISABLE | P2_ASLR_ENABLE |
496 p2->p_swtick = ticks;
498 startprofclock(p2);
501 p2->p_sigacts = sigacts_hold(p1->p_sigacts);
504 p2->p_sigacts = newsigacts;
506 mtx_lock(&p2->p_sigacts->ps_mtx);
508 sig_drop_caught(p2);
510 p2->p_sigacts->ps_flag |= PS_NOCLDWAIT;
511 mtx_unlock(&p2->p_sigacts->ps_mtx);
516 p2->p_sigparent = RFTSIGNUM(fr->fr_flags);
518 p2->p_sigparent = SIGUSR1;
520 p2->p_sigparent = SIGCHLD;
523 p2->p_flag |= P_SYSTEM | P_KPROC;
527 p2->p_textvp = p1->p_textvp;
528 p2->p_fd = fd;
529 p2->p_fdtol = fdtol;
530 p2->p_pd = pd;
533 p2->p_flag |= P_PROTECTED;
534 p2->p_flag2 |= P2_INHERIT_PROTECTED;
540 lim_fork(p1, p2);
542 thread_cow_get_proc(td2, p2);
544 pstats_fork(p1->p_stats, p2->p_stats);
547 PROC_UNLOCK(p2);
550 if (p2->p_textvp)
551 vrefact(p2->p_textvp);
558 p2->p_peers = p1->p_peers;
559 p1->p_peers = p2;
560 p2->p_leader = p1->p_leader;
572 * to go ahead and kill the new process p2 since
578 PROC_LOCK(p2);
579 kern_psignal(p2, SIGKILL);
580 PROC_UNLOCK(p2);
584 p2->p_peers = NULL;
585 p2->p_leader = p2;
590 PROC_LOCK(p2);
597 p2->p_flag |= p1->p_flag & P_SUGID;
602 p2->p_flag |= P_CONTROLT;
605 p2->p_flag |= P_PPWAIT;
607 p2->p_pgrp = p1->p_pgrp;
608 LIST_INSERT_AFTER(p1, p2, p_pglist);
610 LIST_INIT(&p2->p_children);
611 LIST_INIT(&p2->p_orphans);
613 callout_init_mtx(&p2->p_itcallout, &p2->p_mtx, 0);
614 TAILQ_INIT(&p2->p_kqtim_stop);
632 p2->p_reaper = pptr;
634 p2->p_reaper = (p1->p_treeflag & P_TREE_REAPER) != 0 ?
638 p2->p_pptr = pptr;
639 p2->p_oppid = pptr->p_pid;
640 LIST_INSERT_HEAD(&pptr->p_children, p2, p_sibling);
641 LIST_INIT(&p2->p_reaplist);
642 LIST_INSERT_HEAD(&p2->p_reaper->p_reaplist, p2, p_reapsibling);
643 if (p2->p_reaper == p1 && p1 != initproc) {
644 p2->p_reapsubtree = p2->p_pid;
645 proc_id_set_cond(PROC_ID_REAP, p2->p_pid);
650 p2->p_acflag = AFORK;
651 PROC_UNLOCK(p2);
654 ktrprocfork(p1, p2);
661 vm_forkproc(td, p2, td2, vm2, fr->fr_flags);
665 VM_CNT_ADD(v_forkpages, p2->p_vmspace->vm_dsize +
666 p2->p_vmspace->vm_ssize);
669 VM_CNT_ADD(v_vforkpages, p2->p_vmspace->vm_dsize +
670 p2->p_vmspace->vm_ssize);
673 VM_CNT_ADD(v_kthreadpages, p2->p_vmspace->vm_dsize +
674 p2->p_vmspace->vm_ssize);
677 VM_CNT_ADD(v_rforkpages, p2->p_vmspace->vm_dsize +
678 p2->p_vmspace->vm_ssize);
687 procdesc_new(p2, fr->fr_pd_flags);
693 EVENTHANDLER_DIRECT_INVOKE(process_fork, p1, p2, fr->fr_flags);
698 PROC_LOCK(p2);
700 microuptime(&p2->p_stats->p_start);
701 PROC_SLOCK(p2);
702 p2->p_state = PRS_NORMAL;
703 PROC_SUNLOCK(p2);
713 dtrace_fasttrap_fork(p1, p2);
717 td->td_rfppwait_p = p2;
720 PROC_UNLOCK(p2);
725 knote_fork(p1->p_klist, p2->p_pid);
732 SDT_PROBE3(proc, , , create, p2, p1, fr->fr_flags);
735 procdesc_finit(p2->p_procdesc, fp_procdesc);
746 PROC_LOCK(p2);
762 td->td_dbg_forked = p2->p_pid;
764 proc_set_traced(p2, true);
767 p2->p_pid, p2->p_oppid);
768 proc_reparent(p2, p1->p_pptr, false);
770 PROC_UNLOCK(p2);
774 racct_proc_fork_done(p2);
778 *fr->fr_pidp = p2->p_pid;
787 *fr->fr_procp = p2;
794 struct proc *p, *p2;
810 p2 = td->td_rfppwait_p;
812 PROC_LOCK(p2);
813 while (p2->p_flag & P_PPWAIT) {
816 PROC_UNLOCK(p2);
823 cv_timedwait(&p2->p_pwait, &p2->p_mtx, hz);
825 PROC_UNLOCK(p2);