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: