Lines Matching refs:td

96 userret(struct thread *td, struct trapframe *frame)
98 struct proc *p = td->td_proc;
100 CTR3(KTR_SYSC, "userret: thread %p (pid %d, %s)", td, p->p_pid,
101 td->td_name);
116 thread_lock(td);
118 KASSERT(!SIGPENDING(td) || (td->td_flags &
122 "td %p fl %x", p, td, td->td_flags));
124 thread_unlock(td);
129 KTRUSERRET(td);
131 td_softdep_cleanup(td);
132 MPASS(td->td_su == NULL);
138 if (td->td_pflags & TDP_GEOM)
145 addupc_task(td, TRAPF_PC(frame), td->td_pticks * psratio);
149 sched_userret(td);
160 KASSERT(td->td_critnest == 0,
162 KASSERT(td->td_locks == 0,
163 ("userret: Returning with %d locks held", td->td_locks));
164 KASSERT(td->td_rw_rlocks == 0,
166 td->td_rw_rlocks));
167 KASSERT(td->td_lk_slocks == 0,
169 td->td_lk_slocks));
170 KASSERT((td->td_pflags & TDP_NOFAULTING) == 0,
172 KASSERT(td->td_no_sleeping == 0,
174 KASSERT(td->td_pinned == 0 || (td->td_pflags & TDP_CALLCHAIN) != 0,
176 KASSERT(td->td_vp_reserv == 0,
178 KASSERT((td->td_flags & (TDF_SBDRY | TDF_SEINTR | TDF_SERESTART)) == 0,
180 KASSERT(td->td_su == NULL,
182 KASSERT(td->td_vslock_sz == 0,
187 ("%s: Returning on td %p (pid %d, %s) with vnet %p set in %s",
188 __func__, td, p->p_pid, td->td_name, curvnet,
189 (td->td_vnet_lpush != NULL) ? td->td_vnet_lpush : "N/A"));
213 struct thread *td;
218 td = curthread;
219 p = td->td_proc;
221 CTR3(KTR_SYSC, "ast: thread %p (pid %d, %s)", td, p->p_pid,
226 THREAD_LOCK_ASSERT(td, MA_NOTOWNED);
227 td->td_frame = framep;
228 td->td_pticks = 0;
237 thread_lock(td);
238 flags = td->td_flags;
239 td->td_flags &= ~(TDF_ASTPENDING | TDF_NEEDSIGCHK | TDF_NEEDSUSPCHK |
241 thread_unlock(td);
244 if (td->td_cowgen != p->p_cowgen)
245 thread_cow_update(td);
246 if (td->td_pflags & TDP_OWEUPC && p->p_flag & P_PROFIL) {
247 addupc_task(td, td->td_profil_addr, td->td_profil_ticks);
248 td->td_profil_ticks = 0;
249 td->td_pflags &= ~TDP_OWEUPC;
253 if (PMC_IS_PENDING_CALLCHAIN(td))
254 PMC_CALL_HOOK_UNLOCKED(td, PMC_FN_USER_CALLCHAIN_SOFT, (void *) framep);
268 mac_thread_userret(td);
272 if (KTRPOINT(td, KTR_CSW))
275 thread_lock(td);
276 sched_prio(td, td->td_user_pri);
278 thread_unlock(td);
280 if (KTRPOINT(td, KTR_CSW))
288 thread_lock(td);
297 KASSERT(!SIGPENDING(td) || (td->td_flags &
300 ("failed2 to set signal flags for ast p %p td %p "
301 "fl %x %x", p, td, flags, td->td_flags));
303 thread_unlock(td);
317 while ((sig = cursig(td)) != 0)
332 if (td->td_pflags & TDP_OLDMASK) {
333 td->td_pflags &= ~TDP_OLDMASK;
334 kern_sigprocmask(td, SIG_SETMASK, &td->td_oldsigmask, NULL, 0);
337 userret(td, framep);