Move td_softdep_cleanup() from userret() to ast(); it's infrequent

at best.  The schedule_cleanup() function already sets TDF_ASTPENDING.

Reviewed by:	kib, mckusick
Tested by:	pho
MFC after:	2 weeks
Sponsored by:	DARPA
Differential Revision:	https://reviews.freebsd.org/D26375
This commit is contained in:
Edward Tomasz Napierala 2020-09-14 10:17:07 +00:00
parent 60f083efe2
commit fecb19e431

View File

@ -134,9 +134,6 @@ userret(struct thread *td, struct trapframe *frame)
KTRUSERRET(td);
#endif
td_softdep_cleanup(td);
MPASS(td->td_su == NULL);
/*
* Charge system time if profiling.
*/
@ -188,8 +185,6 @@ userret(struct thread *td, struct trapframe *frame)
("userret: Returning with preallocated vnode"));
KASSERT((td->td_flags & (TDF_SBDRY | TDF_SEINTR | TDF_SERESTART)) == 0,
("userret: Returning with stop signals deferred"));
KASSERT(td->td_su == NULL,
("userret: Returning with SU cleanup request not handled"));
KASSERT(td->td_vslock_sz == 0,
("userret: Returning with vslock-wired space"));
#ifdef VIMAGE
@ -279,6 +274,9 @@ ast(struct trapframe *framep)
#endif
}
td_softdep_cleanup(td);
MPASS(td->td_su == NULL);
/*
* If this thread tickled GEOM, we need to wait for the giggling to
* stop before we return to userland