Do not flush caches in ULLS submissions by default.

Change-Id: I4a1c96c597eef8b85e4e43e90cdc4779765eb72b
Signed-off-by: Michal Mrozek <michal.mrozek@intel.com>
This commit is contained in:
Michal Mrozek
2020-09-22 17:49:06 +02:00
committed by sys_ocldev
parent d20e3af187
commit 76a9ccc095
6 changed files with 46 additions and 28 deletions

View File

@@ -36,6 +36,11 @@ struct TagData {
uint64_t tagValue = 0ull;
};
namespace UllsDefaults {
constexpr bool defaultDisableCacheFlush = true;
constexpr bool defaultDisableMonitorFence = false;
} // namespace UllsDefaults
struct BatchBuffer;
class DirectSubmissionDiagnosticsCollector;
class FlushStampTracker;
@@ -136,9 +141,6 @@ class DirectSubmissionHw {
uint32_t workloadMode = 0;
uint32_t workloadModeOneExpectedValue = 0u;
static constexpr bool defaultDisableCacheFlush = false;
static constexpr bool defaultDisableMonitorFence = false;
bool ringStart = false;
bool disableCpuCacheFlush = false;
bool disableCacheFlush = false;

View File

@@ -31,8 +31,12 @@ DirectSubmissionHw<GfxFamily, Dispatcher>::DirectSubmissionHw(Device &device,
: device(device), osContext(osContext) {
UNRECOVERABLE_IF(!CpuInfo::getInstance().isFeatureSupported(CpuInfo::featureClflush));
disableCacheFlush = defaultDisableCacheFlush;
disableMonitorFence = defaultDisableMonitorFence;
disableCacheFlush = UllsDefaults::defaultDisableCacheFlush;
disableMonitorFence = UllsDefaults::defaultDisableMonitorFence;
if (DebugManager.flags.DirectSubmissionDisableCacheFlush.get() != -1) {
disableCacheFlush = !!DebugManager.flags.DirectSubmissionDisableCacheFlush.get();
}
int32_t disableCacheFlushKey = DebugManager.flags.DirectSubmissionDisableCpuCacheFlush.get();
if (disableCacheFlushKey != -1) {
@@ -469,8 +473,8 @@ void DirectSubmissionHw<GfxFamily, Dispatcher>::performDiagnosticMode() {
}
}
workloadMode = 0;
disableCacheFlush = defaultDisableCacheFlush;
disableMonitorFence = defaultDisableMonitorFence;
disableCacheFlush = UllsDefaults::defaultDisableCacheFlush;
disableMonitorFence = UllsDefaults::defaultDisableMonitorFence;
diagnostic.reset(nullptr);
}
}