Remove unncessary atomic operation when reading process flags in

PMC_PROC_IS_USING_PMCS macro.

Invocations of this macro are not synchronized with setting/clearing
of P_HWPMC flag, so the atomic operation here isn't needed.  Removing
the atomic operation provides noticeable improvement (5-6%) on
some scheduler-intensive workloads with HWPMC_HOOKS enabled on an
8C Sandy Bridge Xeon system.

Sponsored by: Intel
Reviewed by: jhb
MFC after: 1 week
This commit is contained in:
jimharris 2012-08-22 20:22:55 +00:00
parent 9d2e20143f
commit a49bdc9a25

View File

@ -201,8 +201,7 @@ do { \
/* Check if a process is using HWPMCs.*/
#define PMC_PROC_IS_USING_PMCS(p) \
(__predict_false(atomic_load_acq_int(&(p)->p_flag) & \
P_HWPMC))
(__predict_false(p->p_flag & P_HWPMC))
/* Check if a thread have pending user capture. */
#define PMC_IS_PENDING_CALLCHAIN(p) \