Add more data to log in residency and direct submission
Related-To: NEO-4338 Change-Id: I146d6f6caddea540a6d48f86b07ad37d4045269e Signed-off-by: Zbigniew Zdanowicz <zbigniew.zdanowicz@intel.com>
This commit is contained in:
parent
74cb8dd41e
commit
11154bd9a1
|
@ -372,7 +372,14 @@ void DirectSubmissionHw<GfxFamily, Dispatcher>::createDiagnostic() {
|
|||
disableCacheFlush = DebugManager.flags.DirectSubmissionDisableCacheFlush.get();
|
||||
disableMonitorFence = DebugManager.flags.DirectSubmissionDisableMonitorFence.get();
|
||||
uint32_t executions = static_cast<uint32_t>(DebugManager.flags.DirectSubmissionDiagnosticExecutionCount.get());
|
||||
diagnostic = std::make_unique<DirectSubmissionDiagnosticsCollector>(executions, workloadMode == 1);
|
||||
diagnostic = std::make_unique<DirectSubmissionDiagnosticsCollector>(
|
||||
executions,
|
||||
workloadMode == 1,
|
||||
DebugManager.flags.DirectSubmissionBufferPlacement.get(),
|
||||
DebugManager.flags.DirectSubmissionSemaphorePlacement.get(),
|
||||
workloadMode,
|
||||
disableCacheFlush,
|
||||
disableMonitorFence);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -11,13 +11,21 @@
|
|||
|
||||
namespace NEO {
|
||||
|
||||
DirectSubmissionDiagnosticsCollector::DirectSubmissionDiagnosticsCollector(uint32_t executions, bool storeExecutions)
|
||||
DirectSubmissionDiagnosticsCollector::DirectSubmissionDiagnosticsCollector(uint32_t executions,
|
||||
bool storeExecutions,
|
||||
int32_t ringBufferLogData,
|
||||
int32_t semaphoreLogData,
|
||||
int32_t workloadMode,
|
||||
bool cacheFlushLog,
|
||||
bool monitorFenceLog)
|
||||
: storeExecutions(storeExecutions) {
|
||||
UNRECOVERABLE_IF(executions == 0);
|
||||
executionList.resize(executions);
|
||||
executionsCount = executions;
|
||||
std::stringstream value;
|
||||
value << std::dec << "executions-" << executions;
|
||||
value << std::dec << "mode-" << workloadMode << "_executions-" << executions;
|
||||
value << "_ring_" << ringBufferLogData << "_semaphore_" << semaphoreLogData;
|
||||
value << "_cacheflush-" << cacheFlushLog << "_monitorfence-" << monitorFenceLog;
|
||||
std::stringstream filename;
|
||||
filename << "ulls_diagnostic_" << value.str() << ".log";
|
||||
logFile = IoFunctions::fopenPtr(filename.str().c_str(), "at");
|
||||
|
|
|
@ -29,7 +29,13 @@ using DirectSubmissionExecution = std::vector<DirectSubmissionSingleDelta>;
|
|||
|
||||
class DirectSubmissionDiagnosticsCollector {
|
||||
public:
|
||||
DirectSubmissionDiagnosticsCollector(uint32_t executions, bool storeExecutions);
|
||||
DirectSubmissionDiagnosticsCollector(uint32_t executions,
|
||||
bool storeExecutions,
|
||||
int32_t ringBufferLogData,
|
||||
int32_t semaphoreLogData,
|
||||
int32_t workloadMode,
|
||||
bool cacheFlushLog,
|
||||
bool monitorFenceLog);
|
||||
|
||||
~DirectSubmissionDiagnosticsCollector() {
|
||||
storeData();
|
||||
|
|
|
@ -32,7 +32,9 @@ WddmDirectSubmission<GfxFamily, Dispatcher>::WddmDirectSubmission(Device &device
|
|||
if (device.getPreemptionMode() != PreemptionMode::Disabled) {
|
||||
commandBufferHeader->NeedsMidBatchPreEmptionSupport = true;
|
||||
}
|
||||
perfLogResidencyVariadicLog(wddm->getResidencyLogger(), "Starting Wddm ULLS\n");
|
||||
perfLogResidencyVariadicLog(wddm->getResidencyLogger(), "Starting Wddm ULLS. Placement ring buffer: %d semaphore %d\n",
|
||||
DebugManager.flags.DirectSubmissionBufferPlacement.get(),
|
||||
DebugManager.flags.DirectSubmissionSemaphorePlacement.get());
|
||||
}
|
||||
|
||||
template <typename GfxFamily, typename Dispatcher>
|
||||
|
@ -85,8 +87,8 @@ bool WddmDirectSubmission<GfxFamily, Dispatcher>::submit(uint64_t gpuAddress, si
|
|||
|
||||
template <typename GfxFamily, typename Dispatcher>
|
||||
bool WddmDirectSubmission<GfxFamily, Dispatcher>::handleResidency() {
|
||||
perfLogResidencyVariadicLog(wddm->getResidencyLogger(), "ULLS residency wait\n");
|
||||
wddm->waitOnPagingFenceFromCpu();
|
||||
perfLogResidencyVariadicLog(wddm->getResidencyLogger(), "ULLS residency wait exit\n");
|
||||
return true;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue