-
Notifications
You must be signed in to change notification settings - Fork 54
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Configure | run_test.sh : Disable perf_event and perf_event_uncore #237
base: master
Are you sure you want to change the base?
Conversation
f7b2192
to
9a13e0a
Compare
c1ca1e1
to
11cbfcc
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
In configure, I'm not sure where "as_fn_result
" originates from. If I rerun autoconf on configure.in, it disappears and configure works fine. However, without it, I receive the following error:
checking for timer_create and timer_*ettime symbols in -lrt -lpthread... ./configure: line 4463: as_fn_result: command not found
Since we need to regenerate the configure file anyway, could you please make the following change to line 232 in configure.in before rerunning autoconf?:
diff --git a/src/configure.in b/src/configure.in
index 53f3dd63..c04fa823 100644
--- a/src/configure.in
+++ b/src/configure.in
@@ -232,7 +232,7 @@ else
AC_MSG_RESULT([found])
LRT="-lrt -lpthread"
else
- AC_MSG_RESULT([cannot find timer_create and timer_*ettime symbols neither in the base system libraries nor in -lrt, nor in -lrt -lpthread])
+ AC_MSG_RESULT([not found])
fi
fi
fi
c4c26c8
to
18f84e8
Compare
Components would get configured even if the user provided an empty "--with-components="". Daniel and I figured out a new check to ensure that the component would only be configured when there wouldn't be an empty string. This problem didn't appear in gcc 11.4 but did in 12.2.1. |
If a user is on a machine that has insufficient permissions, upon running
If a user is on a machine with insufficient permissions, but uses |
Assuming that users would need perf_event_paranoid set to 2 (or less) or to run as root to access hardware counters beyond the CPU, I believe we should still print out the above message during the configure stage. |
453d804
to
a9a0d3b
Compare
These changes function properly, as tested using the PAPI utilities and the run_tests.sh script on IBM POWER10, AMD Zen2 + NVIDIA A100, and Intel Sapphire Rapids + NVIDIA RTX-A2000 systems. |
I further tested to see if the component index shifted properly when compiling in another component (e.g. cuda) and using one of the provided flags: Both |
Pull Request Description
--disable-perf-event-uncore Disable perf_event_uncore component
--disable-perf-event Disable perf_event component(disabling perf_event will disable perf_event_uncore as well)
--disable-cpu Disable perf_event and perf_event_uncore component
configure/configure.in
--disable-cpu
,--disable-perf-event
,--disable-perf-event-uncore
.sysdetect
if perf-event is disabledAC_MSG_ERROR
→AC_MSG_RESULT
.awk
statements to commentctest/ftest/vtest
inMakefile.inc
.Run_tests.sh
perf_event
.Darwin-common.h
pthread_self()
, but instead of returning thepthread_t
value directly, it copies the memory of thepthread_t
into apid_t
variable and returns it.#include <pthread.h>
.Darwin-common.c
&darwin-memory.c
#include <sys/sysctl.h>
.threads.c
Print_header.c
perf_event
is missing and returns "NA" if it isn’t present.Number of Hardware Counters : PAPI error -1: Invalid argument
.CUDA Support
Author Checklist
Why this PR exists. Reference all relevant information, including background, issues, test failures, etc
Commits are self contained and only do one thing
Commits have a header of the form:
module: short description
Commits have a body (whenever relevant) containing a detailed description of the addressed problem and its solution
The PR needs to pass all the tests