Set UUID in driver properties
Change-Id: If0ce1e426f7021374a7ae8779f47d531f031be5b Signed-off: Jaime Arteaga <jaime.a.arteaga.molina@intel.com>
This commit is contained in:
parent
57e462d8ee
commit
a28e883691
|
@ -9,6 +9,7 @@
|
||||||
|
|
||||||
#include "shared/source/debug_settings/debug_settings_manager.h"
|
#include "shared/source/debug_settings/debug_settings_manager.h"
|
||||||
#include "shared/source/device/device.h"
|
#include "shared/source/device/device.h"
|
||||||
|
#include "shared/source/helpers/string.h"
|
||||||
#include "shared/source/memory_manager/memory_manager.h"
|
#include "shared/source/memory_manager/memory_manager.h"
|
||||||
#include "shared/source/os_interface/os_library.h"
|
#include "shared/source/os_interface/os_library.h"
|
||||||
|
|
||||||
|
@ -21,6 +22,7 @@
|
||||||
|
|
||||||
#include <cstdlib>
|
#include <cstdlib>
|
||||||
#include <cstring>
|
#include <cstring>
|
||||||
|
#include <ctime>
|
||||||
#include <vector>
|
#include <vector>
|
||||||
|
|
||||||
namespace L0 {
|
namespace L0 {
|
||||||
|
@ -65,6 +67,9 @@ ze_result_t DriverHandleImp::getProperties(ze_driver_properties_t *properties) {
|
||||||
((versionMinor << 16) & 0x00FF0000) |
|
((versionMinor << 16) & 0x00FF0000) |
|
||||||
(versionBuild & 0x0000FFFF);
|
(versionBuild & 0x0000FFFF);
|
||||||
|
|
||||||
|
uint64_t uniqueId = (properties->driverVersion) | (uuidTimestamp & 0xFFFFFFFF00000000);
|
||||||
|
memcpy_s(properties->uuid.id, sizeof(uniqueId), &uniqueId, sizeof(uniqueId));
|
||||||
|
|
||||||
return ZE_RESULT_SUCCESS;
|
return ZE_RESULT_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -240,6 +245,8 @@ ze_result_t DriverHandleImp::initialize(std::vector<std::unique_ptr<NEO::Device>
|
||||||
|
|
||||||
extensionFunctionsLookupMap = getExtensionFunctionsLookupMap();
|
extensionFunctionsLookupMap = getExtensionFunctionsLookupMap();
|
||||||
|
|
||||||
|
uuidTimestamp = static_cast<uint64_t>(std::chrono::system_clock::now().time_since_epoch().count());
|
||||||
|
|
||||||
return ZE_RESULT_SUCCESS;
|
return ZE_RESULT_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -67,6 +67,7 @@ struct DriverHandleImp : public DriverHandle {
|
||||||
std::vector<Device *> devices;
|
std::vector<Device *> devices;
|
||||||
NEO::MemoryManager *memoryManager = nullptr;
|
NEO::MemoryManager *memoryManager = nullptr;
|
||||||
NEO::SVMAllocsManager *svmAllocsManager = nullptr;
|
NEO::SVMAllocsManager *svmAllocsManager = nullptr;
|
||||||
|
uint64_t uuidTimestamp = 0u;
|
||||||
|
|
||||||
// Environment Variables
|
// Environment Variables
|
||||||
std::string affinityMaskString = "";
|
std::string affinityMaskString = "";
|
||||||
|
|
|
@ -5,6 +5,7 @@
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
#include "shared/source/helpers/string.h"
|
||||||
#include "shared/source/os_interface/device_factory.h"
|
#include "shared/source/os_interface/device_factory.h"
|
||||||
#include "shared/source/os_interface/hw_info_config.h"
|
#include "shared/source/os_interface/hw_info_config.h"
|
||||||
#include "shared/test/unit_test/helpers/debug_manager_state_restore.h"
|
#include "shared/test/unit_test/helpers/debug_manager_state_restore.h"
|
||||||
|
@ -54,6 +55,52 @@ TEST_F(DriverVersionTest, returnsExpectedDriverVersion) {
|
||||||
EXPECT_EQ(static_cast<uint32_t>(strtoul(NEO_VERSION_BUILD, NULL, 10)), versionBuild);
|
EXPECT_EQ(static_cast<uint32_t>(strtoul(NEO_VERSION_BUILD, NULL, 10)), versionBuild);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
TEST_F(DriverVersionTest, givenCallToGetDriverPropertiesThenUuidIsSet) {
|
||||||
|
ze_driver_properties_t properties;
|
||||||
|
ze_result_t res = driverHandle->getProperties(&properties);
|
||||||
|
EXPECT_EQ(ZE_RESULT_SUCCESS, res);
|
||||||
|
|
||||||
|
uint64_t uuid = 0u;
|
||||||
|
memcpy_s(&uuid, sizeof(uuid), properties.uuid.id, sizeof(uuid));
|
||||||
|
|
||||||
|
uint32_t uniqueId = static_cast<uint32_t>((uuid & 0xFFFFFFFF00000000) >> 32);
|
||||||
|
uint32_t versionMajor = static_cast<uint32_t>((uuid & 0xFF000000) >> 24);
|
||||||
|
uint32_t versionMinor = static_cast<uint32_t>((uuid & 0x00FF0000) >> 16);
|
||||||
|
uint32_t versionBuild = static_cast<uint32_t>(uuid & 0x0000FFFF);
|
||||||
|
|
||||||
|
EXPECT_NE(0u, uniqueId);
|
||||||
|
EXPECT_EQ(static_cast<uint32_t>(strtoul(L0_PROJECT_VERSION_MAJOR, NULL, 10)), versionMajor);
|
||||||
|
EXPECT_EQ(static_cast<uint32_t>(strtoul(L0_PROJECT_VERSION_MINOR, NULL, 10)), versionMinor);
|
||||||
|
EXPECT_EQ(static_cast<uint32_t>(strtoul(NEO_VERSION_BUILD, NULL, 10)), versionBuild);
|
||||||
|
}
|
||||||
|
|
||||||
|
TEST_F(DriverVersionTest, whenCallingGetDriverPropertiesRepeatedlyThenTheSameUuidIsReturned) {
|
||||||
|
ze_driver_properties_t properties;
|
||||||
|
ze_result_t res = driverHandle->getProperties(&properties);
|
||||||
|
EXPECT_EQ(ZE_RESULT_SUCCESS, res);
|
||||||
|
|
||||||
|
uint64_t uuid = 0u;
|
||||||
|
memcpy_s(&uuid, sizeof(uuid), properties.uuid.id, sizeof(uuid));
|
||||||
|
|
||||||
|
uint32_t uniqueId = static_cast<uint32_t>((uuid & 0xFFFFFFFF00000000) >> 32);
|
||||||
|
uint32_t versionMajor = static_cast<uint32_t>((uuid & 0xFF000000) >> 24);
|
||||||
|
uint32_t versionMinor = static_cast<uint32_t>((uuid & 0x00FF0000) >> 16);
|
||||||
|
uint32_t versionBuild = static_cast<uint32_t>(uuid & 0x0000FFFF);
|
||||||
|
|
||||||
|
EXPECT_NE(0u, uniqueId);
|
||||||
|
EXPECT_EQ(static_cast<uint32_t>(strtoul(L0_PROJECT_VERSION_MAJOR, NULL, 10)), versionMajor);
|
||||||
|
EXPECT_EQ(static_cast<uint32_t>(strtoul(L0_PROJECT_VERSION_MINOR, NULL, 10)), versionMinor);
|
||||||
|
EXPECT_EQ(static_cast<uint32_t>(strtoul(NEO_VERSION_BUILD, NULL, 10)), versionBuild);
|
||||||
|
|
||||||
|
for (uint32_t i = 0; i < 32; i++) {
|
||||||
|
ze_driver_properties_t newProperties;
|
||||||
|
res = driverHandle->getProperties(&newProperties);
|
||||||
|
EXPECT_EQ(ZE_RESULT_SUCCESS, res);
|
||||||
|
|
||||||
|
EXPECT_EQ(0, memcmp(properties.uuid.id, newProperties.uuid.id, sizeof(uint64_t)));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
TEST(DriverTestFamilySupport, whenInitializingDriverOnSupportedFamilyThenDriverIsCreated) {
|
TEST(DriverTestFamilySupport, whenInitializingDriverOnSupportedFamilyThenDriverIsCreated) {
|
||||||
NEO::HardwareInfo hwInfo = *NEO::defaultHwInfo.get();
|
NEO::HardwareInfo hwInfo = *NEO::defaultHwInfo.get();
|
||||||
hwInfo.capabilityTable.levelZeroSupported = true;
|
hwInfo.capabilityTable.levelZeroSupported = true;
|
||||||
|
|
Loading…
Reference in New Issue