1
0
mirror of https://git.FreeBSD.org/src.git synced 2025-01-17 15:27:36 +00:00

Inform hwpmc(4) of a thread's impending demise prior to invoking sched_throw().

Debugging help:		fabient
Review and testing by:	fabient
This commit is contained in:
Joseph Koshy 2009-10-25 04:34:47 +00:00
parent a0c703bf21
commit 16d95d4f92
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=198464

View File

@ -27,6 +27,7 @@
*/
#include "opt_witness.h"
#include "opt_hwpmc_hooks.h"
#include <sys/cdefs.h>
__FBSDID("$FreeBSD$");
@ -47,6 +48,9 @@ __FBSDID("$FreeBSD$");
#include <sys/ktr.h>
#include <sys/umtx.h>
#include <sys/cpuset.h>
#ifdef HWPMC_HOOKS
#include <sys/pmckern.h>
#endif
#include <security/audit/audit.h>
@ -417,6 +421,14 @@ thread_exit(void)
panic ("thread_exit: Last thread exiting on its own");
}
}
#ifdef HWPMC_HOOKS
/*
* If this thread is part of a process that is being tracked by hwpmc(4),
* inform the module of the thread's impending exit.
*/
if (PMC_PROC_IS_USING_PMCS(td->td_proc))
PMC_SWITCH_CONTEXT(td, PMC_FN_CSW_OUT);
#endif
PROC_UNLOCK(p);
thread_lock(td);
/* Save our tick information with both the thread and proc locked */