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);
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_pflags & TDP_NOFAULTING) == 0,
169 KASSERT(td->td_no_sleeping == 0,
171 KASSERT(td->td_pinned == 0 || (td->td_pflags & TDP_CALLCHAIN) != 0,
173 KASSERT(td->td_vp_reserv == 0,
175 KASSERT((td->td_flags & (TDF_SBDRY | TDF_SEINTR | TDF_SERESTART)) == 0,
177 KASSERT(td->td_su == NULL,
182 ("%s: Returning on td %p (pid %d, %s) with vnet %p set in %s",
183 __func__, td, p->p_pid, td->td_name, curvnet,
184 (td->td_vnet_lpush != NULL) ? td->td_vnet_lpush : "N/A"));
208 struct thread *td;
213 td = curthread;
214 p = td->td_proc;
216 CTR3(KTR_SYSC, "ast: thread %p (pid %d, %s)", td, p->p_pid,
221 THREAD_LOCK_ASSERT(td, MA_NOTOWNED);
222 td->td_frame = framep;
223 td->td_pticks = 0;
232 thread_lock(td);
233 flags = td->td_flags;
234 td->td_flags &= ~(TDF_ASTPENDING | TDF_NEEDSIGCHK | TDF_NEEDSUSPCHK |
236 thread_unlock(td);
239 if (td->td_cowgen != p->p_cowgen)
240 thread_cow_update(td);
241 if (td->td_pflags & TDP_OWEUPC && p->p_flag & P_PROFIL) {
242 addupc_task(td, td->td_profil_addr, td->td_profil_ticks);
243 td->td_profil_ticks = 0;
244 td->td_pflags &= ~TDP_OWEUPC;
248 if (PMC_IS_PENDING_CALLCHAIN(td))
249 PMC_CALL_HOOK_UNLOCKED(td, PMC_FN_USER_CALLCHAIN_SOFT, (void *) framep);
263 mac_thread_userret(td);
267 if (KTRPOINT(td, KTR_CSW))
270 thread_lock(td);
271 sched_prio(td, td->td_user_pri);
273 thread_unlock(td);
275 if (KTRPOINT(td, KTR_CSW))
283 thread_lock(td);
292 KASSERT(!SIGPENDING(td) || (td->td_flags &
295 ("failed2 to set signal flags for ast p %p td %p "
296 "fl %x %x", p, td, flags, td->td_flags));
298 thread_unlock(td);
312 while ((sig = cursig(td)) != 0)
327 if (td->td_pflags & TDP_OLDMASK) {
328 td->td_pflags &= ~TDP_OLDMASK;
329 kern_sigprocmask(td, SIG_SETMASK, &td->td_oldsigmask, NULL, 0);
332 userret(td, framep);