Lines Matching refs:p2
366 do_fork(struct thread *td, struct fork_req *fr, struct proc *p2, struct thread *td2, in do_fork() argument
378 bcopy(&p1->p_startcopy, &p2->p_startcopy, in do_fork()
380 pargs_hold(p2->p_args); in do_fork()
383 bzero(&p2->p_startzero, in do_fork()
387 prison_proc_hold(p2->p_ucred->cr_prison); in do_fork()
389 p2->p_state = PRS_NEW; /* protect against others */ in do_fork()
390 p2->p_pid = fork_findpid(fr->fr_flags); in do_fork()
391 AUDIT_ARG_PID(p2->p_pid); in do_fork()
392 TSFORK(p2->p_pid, p1->p_pid); in do_fork()
395 LIST_INSERT_HEAD(&allproc, p2, p_list); in do_fork()
397 prison_proc_link(p2->p_ucred->cr_prison, p2); in do_fork()
400 sx_xlock(PIDHASHLOCK(p2->p_pid)); in do_fork()
401 LIST_INSERT_HEAD(PIDHASH(p2->p_pid), p2, p_hash); in do_fork()
402 sx_xunlock(PIDHASHLOCK(p2->p_pid)); in do_fork()
449 p1->p_fd, p2); in do_fork()
458 PROC_LOCK(p2); in do_fork()
467 bcopy(&p2->p_comm, &td2->td_name, sizeof(td2->td_name)); in do_fork()
494 p2->p_flag = P_INMEM; in do_fork()
495 p2->p_flag2 = p1->p_flag2 & (P2_ASLR_DISABLE | P2_ASLR_ENABLE | in do_fork()
501 p2->p_swtick = ticks; in do_fork()
503 startprofclock(p2); in do_fork()
506 p2->p_sigacts = sigacts_hold(p1->p_sigacts); in do_fork()
509 p2->p_sigacts = newsigacts; in do_fork()
511 mtx_lock(&p2->p_sigacts->ps_mtx); in do_fork()
513 sig_drop_caught(p2); in do_fork()
515 p2->p_sigacts->ps_flag |= PS_NOCLDWAIT; in do_fork()
516 mtx_unlock(&p2->p_sigacts->ps_mtx); in do_fork()
521 p2->p_sigparent = RFTSIGNUM(fr->fr_flags); in do_fork()
523 p2->p_sigparent = SIGUSR1; in do_fork()
525 p2->p_sigparent = SIGCHLD; in do_fork()
528 p2->p_flag |= P_SYSTEM | P_KPROC; in do_fork()
532 p2->p_textvp = p1->p_textvp; in do_fork()
533 p2->p_textdvp = p1->p_textdvp; in do_fork()
534 p2->p_fd = fd; in do_fork()
535 p2->p_fdtol = fdtol; in do_fork()
536 p2->p_pd = pd; in do_fork()
539 p2->p_flag |= P_PROTECTED; in do_fork()
540 p2->p_flag2 |= P2_INHERIT_PROTECTED; in do_fork()
546 lim_fork(p1, p2); in do_fork()
548 thread_cow_get_proc(td2, p2); in do_fork()
550 pstats_fork(p1->p_stats, p2->p_stats); in do_fork()
553 PROC_UNLOCK(p2); in do_fork()
559 if (p2->p_textvp != NULL) in do_fork()
560 vrefact(p2->p_textvp); in do_fork()
561 if (p2->p_textdvp != NULL) in do_fork()
562 vrefact(p2->p_textdvp); in do_fork()
563 p2->p_binname = p1->p_binname == NULL ? NULL : in do_fork()
571 p2->p_peers = p1->p_peers; in do_fork()
572 p1->p_peers = p2; in do_fork()
573 p2->p_leader = p1->p_leader; in do_fork()
591 PROC_LOCK(p2); in do_fork()
592 kern_psignal(p2, SIGKILL); in do_fork()
593 PROC_UNLOCK(p2); in do_fork()
597 p2->p_peers = NULL; in do_fork()
598 p2->p_leader = p2; in do_fork()
603 PROC_LOCK(p2); in do_fork()
610 p2->p_flag |= p1->p_flag & P_SUGID; in do_fork()
614 p2->p_flag |= P_CONTROLT; in do_fork()
617 p2->p_flag |= P_PPWAIT; in do_fork()
619 p2->p_pgrp = p1->p_pgrp; in do_fork()
620 LIST_INSERT_AFTER(p1, p2, p_pglist); in do_fork()
622 LIST_INIT(&p2->p_children); in do_fork()
623 LIST_INIT(&p2->p_orphans); in do_fork()
625 callout_init_mtx(&p2->p_itcallout, &p2->p_mtx, 0); in do_fork()
643 p2->p_reaper = pptr; in do_fork()
645 p2->p_reaper = (p1->p_treeflag & P_TREE_REAPER) != 0 ? in do_fork()
649 p2->p_pptr = pptr; in do_fork()
650 p2->p_oppid = pptr->p_pid; in do_fork()
651 LIST_INSERT_HEAD(&pptr->p_children, p2, p_sibling); in do_fork()
652 LIST_INIT(&p2->p_reaplist); in do_fork()
653 LIST_INSERT_HEAD(&p2->p_reaper->p_reaplist, p2, p_reapsibling); in do_fork()
654 if (p2->p_reaper == p1 && p1 != initproc) { in do_fork()
655 p2->p_reapsubtree = p2->p_pid; in do_fork()
656 proc_id_set_cond(PROC_ID_REAP, p2->p_pid); in do_fork()
661 p2->p_acflag = AFORK; in do_fork()
662 PROC_UNLOCK(p2); in do_fork()
665 ktrprocfork(p1, p2); in do_fork()
672 vm_forkproc(td, p2, td2, vm2, fr->fr_flags); in do_fork()
676 VM_CNT_ADD(v_forkpages, p2->p_vmspace->vm_dsize + in do_fork()
677 p2->p_vmspace->vm_ssize); in do_fork()
680 VM_CNT_ADD(v_vforkpages, p2->p_vmspace->vm_dsize + in do_fork()
681 p2->p_vmspace->vm_ssize); in do_fork()
684 VM_CNT_ADD(v_kthreadpages, p2->p_vmspace->vm_dsize + in do_fork()
685 p2->p_vmspace->vm_ssize); in do_fork()
688 VM_CNT_ADD(v_rforkpages, p2->p_vmspace->vm_dsize + in do_fork()
689 p2->p_vmspace->vm_ssize); in do_fork()
698 procdesc_new(p2, fr->fr_pd_flags); in do_fork()
704 EVENTHANDLER_DIRECT_INVOKE(process_fork, p1, p2, fr->fr_flags); in do_fork()
709 PROC_LOCK(p2); in do_fork()
711 microuptime(&p2->p_stats->p_start); in do_fork()
712 PROC_SLOCK(p2); in do_fork()
713 p2->p_state = PRS_NORMAL; in do_fork()
714 PROC_SUNLOCK(p2); in do_fork()
724 dtrace_fasttrap_fork(p1, p2); in do_fork()
728 td->td_rfppwait_p = p2; in do_fork()
731 PROC_UNLOCK(p2); in do_fork()
736 knote_fork(p1->p_klist, p2->p_pid); in do_fork()
743 SDT_PROBE3(proc, , , create, p2, p1, fr->fr_flags); in do_fork()
746 procdesc_finit(p2->p_procdesc, fp_procdesc); in do_fork()
757 PROC_LOCK(p2); in do_fork()
773 td->td_dbg_forked = p2->p_pid; in do_fork()
775 proc_set_traced(p2, true); in do_fork()
778 p2->p_pid, p2->p_oppid); in do_fork()
779 proc_reparent(p2, p1->p_pptr, false); in do_fork()
781 PROC_UNLOCK(p2); in do_fork()
785 racct_proc_fork_done(p2); in do_fork()
789 *fr->fr_pidp = p2->p_pid; in do_fork()
798 *fr->fr_procp = p2; in do_fork()
805 struct proc *p, *p2; in ast_vfork() local
821 p2 = td->td_rfppwait_p; in ast_vfork()
823 PROC_LOCK(p2); in ast_vfork()
824 while (p2->p_flag & P_PPWAIT) { in ast_vfork()
827 PROC_UNLOCK(p2); in ast_vfork()
834 cv_timedwait(&p2->p_pwait, &p2->p_mtx, hz); in ast_vfork()
836 PROC_UNLOCK(p2); in ast_vfork()