-
Notifications
You must be signed in to change notification settings - Fork 937
Fix invalid alignment in mallocTracer and zero-init buf in getTotalCpuTime #1351
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
Conversation
src/mallocTracer.cpp
Outdated
| void* p3 = aligned_alloc(1, 1); | ||
| void* p4 = NULL; | ||
| if (posix_memalign(&p4, 1, 1) == 0) free(p4); | ||
| if (posix_memalign(&p4, sizeof(void*), 1) == 0) free(p4); |
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.
Let allocation size match alignment?
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.
Will do.
src/os_linux.cpp
Outdated
|
|
||
| u64 real = (u64)-1; | ||
| char buf[512]; | ||
| char buf[512] = {0}; |
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.
Can you shrink buffer to the minimum required size? I think 128 will be good.
It did not make difference for uninitialized buffer, but should reduce amount of work for zeroing.
Signed-off-by: Andrei Pangin <1749416+apangin@users.noreply.github.com>
Disable JFR OldObjectSample event in jfrsync mode (async-profiler#1350) Fix invalid alignment in mallocTracer and zero-init buf in getTotalCpuTime (async-profiler#1351) C++ linting via clang-tidy (async-profiler#1338) Allow cstack=vmx for native applications (async-profiler#1354) Correctly unwind stack for malloc events in VM stack walking mode (async-profiler#1357) Simplify location handling in OTLP (async-profiler#1361) Suppress javac warnings when compiling tests Do not include excess files in test.jar Fix nonjava test failure on Alpine Auto-generated clang-tidy review comments (async-profiler#1360) JFR to OTLP converter (async-profiler#1336) Cancel redundant in-progress GHA runs (async-profiler#1363) Ensure that only files under `src/` are checked in `cpp-lint-diff` (async-profiler#1365) Publish clang-tidy comments only for non-draft PRs (async-profiler#1367) Give tests unique suffix names (async-profiler#1371) Test OTLP output format (async-profiler#1331) Disable JFR OldObjectSample event in jfrsync mode (async-profiler#1350) Fix invalid alignment in mallocTracer and zero-init buf in getTotalCpuTime (async-profiler#1351) C++ linting via clang-tidy (async-profiler#1338) Allow cstack=vmx for native applications (async-profiler#1354) Correctly unwind stack for malloc events in VM stack walking mode (async-profiler#1357) Simplify location handling in OTLP (async-profiler#1361) Suppress javac warnings when compiling tests Do not include excess files in test.jar Fix nonjava test failure on Alpine Auto-generated clang-tidy review comments (async-profiler#1360) JFR to OTLP converter (async-profiler#1336) Cancel redundant in-progress GHA runs (async-profiler#1363) Ensure that only files under `src/` are checked in `cpp-lint-diff` (async-profiler#1365) Publish clang-tidy comments only for non-draft PRs (async-profiler#1367) Give tests unique suffix names (async-profiler#1371) Test OTLP output format (async-profiler#1331)
Disable JFR OldObjectSample event in jfrsync mode (async-profiler#1350) Fix invalid alignment in mallocTracer and zero-init buf in getTotalCpuTime (async-profiler#1351) C++ linting via clang-tidy (async-profiler#1338) Allow cstack=vmx for native applications (async-profiler#1354) Correctly unwind stack for malloc events in VM stack walking mode (async-profiler#1357) Simplify location handling in OTLP (async-profiler#1361) Suppress javac warnings when compiling tests Do not include excess files in test.jar Fix nonjava test failure on Alpine Auto-generated clang-tidy review comments (async-profiler#1360) JFR to OTLP converter (async-profiler#1336) Cancel redundant in-progress GHA runs (async-profiler#1363) Ensure that only files under `src/` are checked in `cpp-lint-diff` (async-profiler#1365) Publish clang-tidy comments only for non-draft PRs (async-profiler#1367) Give tests unique suffix names (async-profiler#1371) Test OTLP output format (async-profiler#1331) Disable JFR OldObjectSample event in jfrsync mode (async-profiler#1350) Fix invalid alignment in mallocTracer and zero-init buf in getTotalCpuTime (async-profiler#1351) C++ linting via clang-tidy (async-profiler#1338) Allow cstack=vmx for native applications (async-profiler#1354) Correctly unwind stack for malloc events in VM stack walking mode (async-profiler#1357) Simplify location handling in OTLP (async-profiler#1361) Suppress javac warnings when compiling tests Do not include excess files in test.jar Fix nonjava test failure on Alpine Auto-generated clang-tidy review comments (async-profiler#1360) JFR to OTLP converter (async-profiler#1336) Cancel redundant in-progress GHA runs (async-profiler#1363) Ensure that only files under `src/` are checked in `cpp-lint-diff` (async-profiler#1365) Publish clang-tidy comments only for non-draft PRs (async-profiler#1367) Give tests unique suffix names (async-profiler#1371) Test OTLP output format (async-profiler#1331)
Disable JFR OldObjectSample event in jfrsync mode (async-profiler#1350) Fix invalid alignment in mallocTracer and zero-init buf in getTotalCpuTime (async-profiler#1351) C++ linting via clang-tidy (async-profiler#1338) Allow cstack=vmx for native applications (async-profiler#1354) Correctly unwind stack for malloc events in VM stack walking mode (async-profiler#1357) Simplify location handling in OTLP (async-profiler#1361) Suppress javac warnings when compiling tests Do not include excess files in test.jar Fix nonjava test failure on Alpine Auto-generated clang-tidy review comments (async-profiler#1360) JFR to OTLP converter (async-profiler#1336) Cancel redundant in-progress GHA runs (async-profiler#1363) Ensure that only files under `src/` are checked in `cpp-lint-diff` (async-profiler#1365) Publish clang-tidy comments only for non-draft PRs (async-profiler#1367) Give tests unique suffix names (async-profiler#1371) Test OTLP output format (async-profiler#1331) Disable JFR OldObjectSample event in jfrsync mode (async-profiler#1350) Fix invalid alignment in mallocTracer and zero-init buf in getTotalCpuTime (async-profiler#1351) C++ linting via clang-tidy (async-profiler#1338) Allow cstack=vmx for native applications (async-profiler#1354) Correctly unwind stack for malloc events in VM stack walking mode (async-profiler#1357) Simplify location handling in OTLP (async-profiler#1361) Suppress javac warnings when compiling tests Do not include excess files in test.jar Fix nonjava test failure on Alpine Auto-generated clang-tidy review comments (async-profiler#1360) JFR to OTLP converter (async-profiler#1336) Cancel redundant in-progress GHA runs (async-profiler#1363) Ensure that only files under `src/` are checked in `cpp-lint-diff` (async-profiler#1365) Publish clang-tidy comments only for non-draft PRs (async-profiler#1367) Give tests unique suffix names (async-profiler#1371) Test OTLP output format (async-profiler#1331)
Disable JFR OldObjectSample event in jfrsync mode (async-profiler#1350) Fix invalid alignment in mallocTracer and zero-init buf in getTotalCpuTime (async-profiler#1351) C++ linting via clang-tidy (async-profiler#1338) Allow cstack=vmx for native applications (async-profiler#1354) Correctly unwind stack for malloc events in VM stack walking mode (async-profiler#1357) Simplify location handling in OTLP (async-profiler#1361) Suppress javac warnings when compiling tests Do not include excess files in test.jar Fix nonjava test failure on Alpine Auto-generated clang-tidy review comments (async-profiler#1360) JFR to OTLP converter (async-profiler#1336) Cancel redundant in-progress GHA runs (async-profiler#1363) Ensure that only files under `src/` are checked in `cpp-lint-diff` (async-profiler#1365) Publish clang-tidy comments only for non-draft PRs (async-profiler#1367) Give tests unique suffix names (async-profiler#1371) Test OTLP output format (async-profiler#1331) Disable JFR OldObjectSample event in jfrsync mode (async-profiler#1350) Fix invalid alignment in mallocTracer and zero-init buf in getTotalCpuTime (async-profiler#1351) C++ linting via clang-tidy (async-profiler#1338) Allow cstack=vmx for native applications (async-profiler#1354) Correctly unwind stack for malloc events in VM stack walking mode (async-profiler#1357) Simplify location handling in OTLP (async-profiler#1361) Suppress javac warnings when compiling tests Do not include excess files in test.jar Fix nonjava test failure on Alpine Auto-generated clang-tidy review comments (async-profiler#1360) JFR to OTLP converter (async-profiler#1336) Cancel redundant in-progress GHA runs (async-profiler#1363) Ensure that only files under `src/` are checked in `cpp-lint-diff` (async-profiler#1365) Publish clang-tidy comments only for non-draft PRs (async-profiler#1367) Give tests unique suffix names (async-profiler#1371) Test OTLP output format (async-profiler#1331)
Initialize
bufingetTotalCpuTime, to avoid any possibility ofsscanfreading uninitialized data.Also pass the minimum valid alignment, which is
sizeof(void*)to theposix_memaligncall inmallocTracerinitialization. glibc is lenient in this case, we should still call it with a valid alignment.How has this been tested?
make testBy submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.