From 348c547039add29aec14ee8de2bcefea550ea4c9 Mon Sep 17 00:00:00 2001 From: itrowbri Date: Thu, 12 Sep 2024 09:45:03 -0500 Subject: [PATCH] Updated README and CHANGELOG to contain information about --no-serialization flag option Change-Id: I5a4ea5cba34a33ed27a784bcea07db0e212839d9 --- CHANGELOG.md | 3 ++- README.md | 18 ++++++++++++++++++ 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 4f95693ca6..34c0b0141b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -339,4 +339,5 @@ Example for file plugin output: ### Added -- JSON output plugin for rocprofv2, the JSON file matches Google Trace Format, so it should be easily loaded to perfetto, chrome tracing or speedscope. For Speedscope, `--disable-json-data-flows` option will be needed as speedscope doesn't work with data flows. \ No newline at end of file +- JSON output plugin for rocprofv2, the JSON file matches Google Trace Format, so it should be easily loaded to perfetto, chrome tracing or speedscope. For Speedscope, `--disable-json-data-flows` option will be needed as speedscope doesn't work with data flows. +- Added `--no-serialization` flag to disable kernel serialization when rocprofv2 is in counter-collection mode. This change was added to allow rocprofv2 to avoid deadlock when profiling certain programs in counter-collection mode. \ No newline at end of file diff --git a/README.md b/README.md index 0b2d70ac26..49354c72d6 100644 --- a/README.md +++ b/README.md @@ -255,6 +255,24 @@ input.txt content Example (Details of what is needed inside input.txt will be me `pmc: SQ_WAVES GRBM_COUNT GRBM_GUI_ACTIVE SQ_INSTS_VALU` +By default, rocprofv2 runs counter-collection mode with kernel serialization enabled. With serialization enabled, there is a possibility of deadlock occurring if a program that is being profiled attempts to launch two kernels that rely on each other to progress (e.g. kernel A waits in a while-loop until kernel B modifies a location in memory, but, due to kernel serialization, kernel B will not be launched until kernel A finishes executing). When encountering this issue, kernel serialization can be disabled with the following option: + +```bash +rocprofv2 -ns -i samples/input.txt +``` + +or + +```bash +rocprofv2 --no-serialization -i samples/input.txt +``` + +Alternatively, an environment variable can be set as follows: + +```bash +export ROCPROFILER_NO_SERIALIZATION = 1 +``` + ### Application Trace Support Different trace options are available while profiling an app: