From 9bb625185f8be993da1ae0baec7f28be9a682246 Mon Sep 17 00:00:00 2001 From: Piotr Maciejewski Date: Wed, 7 Aug 2019 09:19:51 +0200 Subject: [PATCH] Enable Linux performance counters. Change-Id: I688d3669d1791081074626ef474ab1edbc018034 --- runtime/os_interface/linux/hw_info_config.cpp | 4 +++- .../fixtures/device_instrumentation_fixture.cpp | 3 +-- .../linux/hw_info_config_linux_tests.cpp | 14 ++++++++++++++ 3 files changed, 18 insertions(+), 3 deletions(-) diff --git a/runtime/os_interface/linux/hw_info_config.cpp b/runtime/os_interface/linux/hw_info_config.cpp index 547f8faa84..bb89b842f0 100644 --- a/runtime/os_interface/linux/hw_info_config.cpp +++ b/runtime/os_interface/linux/hw_info_config.cpp @@ -17,6 +17,8 @@ #include "runtime/os_interface/linux/drm_neo.h" #include "runtime/os_interface/linux/os_interface.h" +#include "instrumentation.h" + #include namespace NEO { @@ -145,7 +147,7 @@ int HwInfoConfig::configureHwInfo(const HardwareInfo *inHwInfo, HardwareInfo *ou hwHelper.adjustDefaultEngineType(outHwInfo); outHwInfo->capabilityTable.defaultEngineType = getChosenEngineType(*outHwInfo); - outHwInfo->capabilityTable.instrumentationEnabled = false; + outHwInfo->capabilityTable.instrumentationEnabled &= haveInstrumentation; outHwInfo->capabilityTable.ftrRenderCompressedBuffers = false; outHwInfo->capabilityTable.ftrRenderCompressedImages = false; diff --git a/unit_tests/fixtures/device_instrumentation_fixture.cpp b/unit_tests/fixtures/device_instrumentation_fixture.cpp index 33913ddfff..0ac6b449c3 100644 --- a/unit_tests/fixtures/device_instrumentation_fixture.cpp +++ b/unit_tests/fixtures/device_instrumentation_fixture.cpp @@ -13,8 +13,7 @@ namespace NEO { void DeviceInstrumentationFixture::SetUp(bool instrumentation) { ExecutionEnvironment *executionEnvironment = getExecutionEnvironmentImpl(hwInfo); - if (instrumentation) - hwInfo->capabilityTable.instrumentationEnabled = true; + hwInfo->capabilityTable.instrumentationEnabled = instrumentation; device = std::unique_ptr(Device::create(executionEnvironment, 0)); } } // namespace NEO diff --git a/unit_tests/os_interface/linux/hw_info_config_linux_tests.cpp b/unit_tests/os_interface/linux/hw_info_config_linux_tests.cpp index 5707ea2121..cdc44dad35 100644 --- a/unit_tests/os_interface/linux/hw_info_config_linux_tests.cpp +++ b/unit_tests/os_interface/linux/hw_info_config_linux_tests.cpp @@ -379,3 +379,17 @@ TEST_F(HwInfoConfigTestLinuxDummy, givenPointerToHwInfoWhenConfigureHwInfoCalled EXPECT_EQ(0, ret); EXPECT_EQ(outHwInfo.gtSystemInfo.CsrSizeInMb * MemoryConstants::megaByte, outHwInfo.capabilityTable.requiredPreemptionSurfaceSize); } + +TEST_F(HwInfoConfigTestLinuxDummy, givenInstrumentationForHardwareIsEnabledOrDisabledWhenConfiguringHwInfoThenOverrideItUsingHaveInstrumentation) { + int ret; + + pInHwInfo.capabilityTable.instrumentationEnabled = false; + ret = hwConfig.configureHwInfo(&pInHwInfo, &outHwInfo, osInterface); + ASSERT_EQ(0, ret); + EXPECT_FALSE(outHwInfo.capabilityTable.instrumentationEnabled); + + pInHwInfo.capabilityTable.instrumentationEnabled = true; + ret = hwConfig.configureHwInfo(&pInHwInfo, &outHwInfo, osInterface); + ASSERT_EQ(0, ret); + EXPECT_TRUE(outHwInfo.capabilityTable.instrumentationEnabled == haveInstrumentation); +} \ No newline at end of file