@@ -762,9 +762,9 @@ u64 Profiler::recordJVMTISample(u64 counter, int tid, jthread thread, jint event
762762 atomicIncRelaxed (_total_samples);
763763
764764 u32 lock_index = getLockIndex (tid);
765- if (!_locks[lock_index].tryLock () &&
765+ if (unlikely ( !_locks[lock_index].tryLock () &&
766766 !_locks[lock_index = (lock_index + 1 ) % CONCURRENCY_LEVEL].tryLock () &&
767- !_locks[lock_index = (lock_index + 2 ) % CONCURRENCY_LEVEL].tryLock ()) {
767+ !_locks[lock_index = (lock_index + 2 ) % CONCURRENCY_LEVEL].tryLock ())) {
768768 // Too many concurrent signals already
769769 atomicIncRelaxed (_failures[-ticks_skipped]);
770770
@@ -809,9 +809,9 @@ void Profiler::recordDeferredSample(int tid, u64 call_trace_id, jint event_type,
809809 atomicIncRelaxed (_total_samples);
810810
811811 u32 lock_index = getLockIndex (tid);
812- if (!_locks[lock_index].tryLock () &&
812+ if (unlikely ( !_locks[lock_index].tryLock () &&
813813 !_locks[lock_index = (lock_index + 1 ) % CONCURRENCY_LEVEL].tryLock () &&
814- !_locks[lock_index = (lock_index + 2 ) % CONCURRENCY_LEVEL].tryLock ()) {
814+ !_locks[lock_index = (lock_index + 2 ) % CONCURRENCY_LEVEL].tryLock ())) {
815815 // Too many concurrent signals already
816816 atomicIncRelaxed (_failures[-ticks_skipped]);
817817 return ;
@@ -827,9 +827,9 @@ void Profiler::recordSample(void *ucontext, u64 counter, int tid,
827827 atomicIncRelaxed (_total_samples);
828828
829829 u32 lock_index = getLockIndex (tid);
830- if (!_locks[lock_index].tryLock () &&
830+ if (unlikely ( !_locks[lock_index].tryLock () &&
831831 !_locks[lock_index = (lock_index + 1 ) % CONCURRENCY_LEVEL].tryLock () &&
832- !_locks[lock_index = (lock_index + 2 ) % CONCURRENCY_LEVEL].tryLock ()) {
832+ !_locks[lock_index = (lock_index + 2 ) % CONCURRENCY_LEVEL].tryLock ())) {
833833 // Too many concurrent signals already
834834 atomicIncRelaxed (_failures[-ticks_skipped]);
835835
@@ -847,7 +847,7 @@ void Profiler::recordSample(void *ucontext, u64 counter, int tid,
847847 // record a null stacktrace we can skip the unwind if we've got a
848848 // call_trace_id determined to be reusable at a higher level
849849
850- if (!_omit_stacktraces && call_trace_id == 0 ) {
850+ if (likely ( !_omit_stacktraces && call_trace_id == 0 ) ) {
851851 u64 startTime = TSC::ticks ();
852852 ASGCT_CallFrame *frames = _calltrace_buffer[lock_index]->_asgct_frames ;
853853
@@ -857,7 +857,7 @@ void Profiler::recordSample(void *ucontext, u64 counter, int tid,
857857 ASGCT_CallFrame *native_stop = frames + num_frames;
858858 num_frames += getNativeTrace (ucontext, native_stop, event_type, tid,
859859 &java_ctx, &truncated, lock_index);
860- if (num_frames < _max_stack_depth) {
860+ if (likely ( num_frames < _max_stack_depth) ) {
861861 int max_remaining = _max_stack_depth - num_frames;
862862 if (_features.mixed ) {
863863 int vm_start = num_frames;
@@ -885,14 +885,14 @@ void Profiler::recordSample(void *ucontext, u64 counter, int tid,
885885 }
886886 }
887887 }
888- if (num_frames == 0 ) {
888+ if (unlikely ( num_frames == 0 ) ) {
889889 num_frames += makeFrame (frames + num_frames, BCI_ERROR, " no_Java_frame" );
890890 }
891891
892892 call_trace_id =
893893 _call_trace_storage.put (num_frames, frames, truncated, counter);
894894 ProfiledThread *thread = ProfiledThread::currentSignalSafe ();
895- if (thread != nullptr ) {
895+ if (likely ( thread != nullptr ) ) {
896896 thread->recordCallTraceId (call_trace_id);
897897 }
898898 u64 duration = TSC::ticks () - startTime;
@@ -907,9 +907,9 @@ void Profiler::recordSample(void *ucontext, u64 counter, int tid,
907907
908908void Profiler::recordWallClockEpoch (int tid, WallClockEpochEvent *event) {
909909 u32 lock_index = getLockIndex (tid);
910- if (!_locks[lock_index].tryLock () &&
910+ if (unlikely ( !_locks[lock_index].tryLock () &&
911911 !_locks[lock_index = (lock_index + 1 ) % CONCURRENCY_LEVEL].tryLock () &&
912- !_locks[lock_index = (lock_index + 2 ) % CONCURRENCY_LEVEL].tryLock ()) {
912+ !_locks[lock_index = (lock_index + 2 ) % CONCURRENCY_LEVEL].tryLock ())) {
913913 return ;
914914 }
915915 _jfr.wallClockEpoch (lock_index, event);
@@ -918,9 +918,9 @@ void Profiler::recordWallClockEpoch(int tid, WallClockEpochEvent *event) {
918918
919919void Profiler::recordTraceRoot (int tid, TraceRootEvent *event) {
920920 u32 lock_index = getLockIndex (tid);
921- if (!_locks[lock_index].tryLock () &&
921+ if (unlikely ( !_locks[lock_index].tryLock () &&
922922 !_locks[lock_index = (lock_index + 1 ) % CONCURRENCY_LEVEL].tryLock () &&
923- !_locks[lock_index = (lock_index + 2 ) % CONCURRENCY_LEVEL].tryLock ()) {
923+ !_locks[lock_index = (lock_index + 2 ) % CONCURRENCY_LEVEL].tryLock ())) {
924924 return ;
925925 }
926926 _jfr.recordTraceRoot (lock_index, tid, event);
@@ -929,9 +929,9 @@ void Profiler::recordTraceRoot(int tid, TraceRootEvent *event) {
929929
930930void Profiler::recordQueueTime (int tid, QueueTimeEvent *event) {
931931 u32 lock_index = getLockIndex (tid);
932- if (!_locks[lock_index].tryLock () &&
932+ if (unlikely ( !_locks[lock_index].tryLock () &&
933933 !_locks[lock_index = (lock_index + 1 ) % CONCURRENCY_LEVEL].tryLock () &&
934- !_locks[lock_index = (lock_index + 2 ) % CONCURRENCY_LEVEL].tryLock ()) {
934+ !_locks[lock_index = (lock_index + 2 ) % CONCURRENCY_LEVEL].tryLock ())) {
935935 return ;
936936 }
937937 _jfr.recordQueueTime (lock_index, tid, event);
@@ -955,9 +955,9 @@ void Profiler::recordExternalSample(u64 weight, int tid, int num_frames,
955955
956956 u64 call_trace_id =
957957 _call_trace_storage.put (num_frames, extended_frames, truncated, weight);
958- if (!_locks[lock_index].tryLock () &&
958+ if (unlikely ( !_locks[lock_index].tryLock () &&
959959 !_locks[lock_index = (lock_index + 1 ) % CONCURRENCY_LEVEL].tryLock () &&
960- !_locks[lock_index = (lock_index + 2 ) % CONCURRENCY_LEVEL].tryLock ()) {
960+ !_locks[lock_index = (lock_index + 2 ) % CONCURRENCY_LEVEL].tryLock ())) {
961961 // Too many concurrent signals already
962962 atomicIncRelaxed (_failures[-ticks_skipped]);
963963 return ;
@@ -980,9 +980,9 @@ void Profiler::writeDatadogProfilerSetting(int tid, int length,
980980 const char *name, const char *value,
981981 const char *unit) {
982982 u32 lock_index = getLockIndex (tid);
983- if (!_locks[lock_index].tryLock () &&
983+ if (unlikely ( !_locks[lock_index].tryLock () &&
984984 !_locks[lock_index = (lock_index + 1 ) % CONCURRENCY_LEVEL].tryLock () &&
985- !_locks[lock_index = (lock_index + 2 ) % CONCURRENCY_LEVEL].tryLock ()) {
985+ !_locks[lock_index = (lock_index + 2 ) % CONCURRENCY_LEVEL].tryLock ())) {
986986 return ;
987987 }
988988 _jfr.recordDatadogSetting (lock_index, length, name, value, unit);
@@ -995,9 +995,9 @@ void Profiler::writeHeapUsage(long value, bool live) {
995995 return ;
996996 }
997997 u32 lock_index = getLockIndex (tid);
998- if (!_locks[lock_index].tryLock () &&
998+ if (unlikely ( !_locks[lock_index].tryLock () &&
999999 !_locks[lock_index = (lock_index + 1 ) % CONCURRENCY_LEVEL].tryLock () &&
1000- !_locks[lock_index = (lock_index + 2 ) % CONCURRENCY_LEVEL].tryLock ()) {
1000+ !_locks[lock_index = (lock_index + 2 ) % CONCURRENCY_LEVEL].tryLock ())) {
10011001 return ;
10021002 }
10031003 _jfr.recordHeapUsage (lock_index, value, live);
0 commit comments