From 1962a89b0532849720a7bf60218dcc4a63898207 Mon Sep 17 00:00:00 2001 From: Jitendra Sharma Date: Mon, 5 Oct 2020 17:36:05 +0530 Subject: [PATCH] In Sysman fix C++ programming warnings Fix warnings related to unused/uninitialized variables etc. Change-Id: I2e75ede434442d7b99d6e28253e7811aac205323 Signed-off-by: Jitendra Sharma --- level_zero/tools/source/sysman/engine/engine.cpp | 5 +---- .../tools/source/sysman/firmware/firmware_imp.cpp | 5 ++++- level_zero/tools/source/sysman/linux/pmu/pmu.h | 2 +- level_zero/tools/source/sysman/linux/pmu/pmu_imp.cpp | 4 ++-- level_zero/tools/source/sysman/linux/pmu/pmu_imp.h | 2 +- .../sysman/scheduler/linux/os_scheduler_imp.cpp | 12 ++++++------ .../tools/source/sysman/scheduler/scheduler_imp.h | 1 - .../sources/sysman/engine/linux/test_zes_engine.cpp | 8 ++++++++ 8 files changed, 23 insertions(+), 16 deletions(-) diff --git a/level_zero/tools/source/sysman/engine/engine.cpp b/level_zero/tools/source/sysman/engine/engine.cpp index f638a98868..6df44e4966 100644 --- a/level_zero/tools/source/sysman/engine/engine.cpp +++ b/level_zero/tools/source/sysman/engine/engine.cpp @@ -29,10 +29,7 @@ void EngineHandleContext::createHandle(zes_engine_group_t engineType, uint32_t e void EngineHandleContext::init() { std::multimap engineGroupInstance = {}; - ze_result_t status = OsEngine::getNumEngineTypeAndInstances(engineGroupInstance, pOsSysman); - if (status != ZE_RESULT_SUCCESS) { - return; - } + OsEngine::getNumEngineTypeAndInstances(engineGroupInstance, pOsSysman); for (auto itr = engineGroupInstance.begin(); itr != engineGroupInstance.end(); ++itr) { createHandle(itr->first, itr->second); } diff --git a/level_zero/tools/source/sysman/firmware/firmware_imp.cpp b/level_zero/tools/source/sysman/firmware/firmware_imp.cpp index 0471765688..b4281fb554 100644 --- a/level_zero/tools/source/sysman/firmware/firmware_imp.cpp +++ b/level_zero/tools/source/sysman/firmware/firmware_imp.cpp @@ -30,7 +30,10 @@ FirmwareImp::FirmwareImp(OsSysman *pOsSysman) { } FirmwareImp::~FirmwareImp() { - delete pOsFirmware; + if (pOsFirmware != nullptr) { + delete pOsFirmware; + pOsFirmware = nullptr; + } } } // namespace L0 diff --git a/level_zero/tools/source/sysman/linux/pmu/pmu.h b/level_zero/tools/source/sysman/linux/pmu/pmu.h index 762ad5dc84..f6b127ebf5 100644 --- a/level_zero/tools/source/sysman/linux/pmu/pmu.h +++ b/level_zero/tools/source/sysman/linux/pmu/pmu.h @@ -13,7 +13,7 @@ class LinuxSysmanImp; class PmuInterface { public: virtual ~PmuInterface() = default; - virtual int64_t pmuInterfaceOpen(uint64_t config, int group, uint64_t format) = 0; + virtual int64_t pmuInterfaceOpen(uint64_t config, int group, uint32_t format) = 0; virtual int pmuReadSingle(int fd, uint64_t *data, ssize_t sizeOfdata) = 0; static PmuInterface *create(LinuxSysmanImp *pLinuxSysmanImp); }; diff --git a/level_zero/tools/source/sysman/linux/pmu/pmu_imp.cpp b/level_zero/tools/source/sysman/linux/pmu/pmu_imp.cpp index fa5a170374..3d2739b795 100644 --- a/level_zero/tools/source/sysman/linux/pmu/pmu_imp.cpp +++ b/level_zero/tools/source/sysman/linux/pmu/pmu_imp.cpp @@ -47,7 +47,7 @@ inline int64_t PmuInterfaceImp::perfEventOpen(perf_event_attr *attr, pid_t pid, return syscall(perfEventOpenSyscallNumber, attr, pid, cpu, groupFd, flags); } -int64_t PmuInterfaceImp::pmuInterfaceOpen(uint64_t config, int group, uint64_t format) { +int64_t PmuInterfaceImp::pmuInterfaceOpen(uint64_t config, int group, uint32_t format) { struct perf_event_attr attr = {}; int nrCpus = get_nprocs_conf(); int cpu = 0; @@ -62,7 +62,7 @@ int64_t PmuInterfaceImp::pmuInterfaceOpen(uint64_t config, int group, uint64_t f format &= ~PERF_FORMAT_GROUP; } - attr.read_format = format; + attr.read_format = static_cast(format); attr.config = config; do { diff --git a/level_zero/tools/source/sysman/linux/pmu/pmu_imp.h b/level_zero/tools/source/sysman/linux/pmu/pmu_imp.h index 22792b0d97..fd9f9d26bf 100644 --- a/level_zero/tools/source/sysman/linux/pmu/pmu_imp.h +++ b/level_zero/tools/source/sysman/linux/pmu/pmu_imp.h @@ -20,7 +20,7 @@ class PmuInterfaceImp : public PmuInterface, NEO::NonCopyableOrMovableClass { PmuInterfaceImp() = delete; PmuInterfaceImp(LinuxSysmanImp *pLinuxSysmanImp); ~PmuInterfaceImp() override = default; - int64_t pmuInterfaceOpen(uint64_t config, int group, uint64_t format) override; + int64_t pmuInterfaceOpen(uint64_t config, int group, uint32_t format) override; MOCKABLE_VIRTUAL int pmuReadSingle(int fd, uint64_t *data, ssize_t sizeOfdata) override; protected: diff --git a/level_zero/tools/source/sysman/scheduler/linux/os_scheduler_imp.cpp b/level_zero/tools/source/sysman/scheduler/linux/os_scheduler_imp.cpp index 0320d34f4b..7e2a74cd7c 100644 --- a/level_zero/tools/source/sysman/scheduler/linux/os_scheduler_imp.cpp +++ b/level_zero/tools/source/sysman/scheduler/linux/os_scheduler_imp.cpp @@ -33,7 +33,7 @@ ze_result_t LinuxSchedulerImp::getPreemptTimeout(uint64_t &timeout, ze_bool_t ge uint32_t i = 0; std::vector timeoutVec = {}; timeoutVec.resize(listOfEngines.size()); - for (auto engineName : listOfEngines) { + for (const auto &engineName : listOfEngines) { if (getDefault) { result = pSysfsAccess->read(engineDir + "/" + engineName + "/" + defaultPreemptTimeouttMilliSecs, timeout); } else { @@ -64,7 +64,7 @@ ze_result_t LinuxSchedulerImp::getTimesliceDuration(uint64_t ×lice, ze_bool uint32_t i = 0; std::vector timesliceVec = {}; timesliceVec.resize(listOfEngines.size()); - for (auto engineName : listOfEngines) { + for (const auto &engineName : listOfEngines) { if (getDefault) { result = pSysfsAccess->read(engineDir + "/" + engineName + "/" + defaultTimesliceDurationMilliSecs, timeslice); } else { @@ -95,7 +95,7 @@ ze_result_t LinuxSchedulerImp::getHeartbeatInterval(uint64_t &heartbeat, ze_bool uint32_t i = 0; std::vector heartbeatVec = {}; heartbeatVec.resize(listOfEngines.size()); - for (auto engineName : listOfEngines) { + for (const auto &engineName : listOfEngines) { if (getDefault) { result = pSysfsAccess->read(engineDir + "/" + engineName + "/" + defaultHeartbeatIntervalMilliSecs, heartbeat); } else { @@ -124,7 +124,7 @@ ze_result_t LinuxSchedulerImp::getHeartbeatInterval(uint64_t &heartbeat, ze_bool ze_result_t LinuxSchedulerImp::setPreemptTimeout(uint64_t timeout) { timeout = timeout / milliSecsToMicroSecs; ze_result_t result = ZE_RESULT_ERROR_UNKNOWN; - for (auto engineName : listOfEngines) { + for (const auto &engineName : listOfEngines) { result = pSysfsAccess->write(engineDir + "/" + engineName + "/" + preemptTimeoutMilliSecs, timeout); if (result != ZE_RESULT_SUCCESS) { if (result == ZE_RESULT_ERROR_NOT_AVAILABLE) { @@ -139,7 +139,7 @@ ze_result_t LinuxSchedulerImp::setPreemptTimeout(uint64_t timeout) { ze_result_t LinuxSchedulerImp::setTimesliceDuration(uint64_t timeslice) { timeslice = timeslice / milliSecsToMicroSecs; ze_result_t result = ZE_RESULT_ERROR_UNKNOWN; - for (auto engineName : listOfEngines) { + for (const auto &engineName : listOfEngines) { result = pSysfsAccess->write(engineDir + "/" + engineName + "/" + timesliceDurationMilliSecs, timeslice); if (result != ZE_RESULT_SUCCESS) { if (result == ZE_RESULT_ERROR_NOT_AVAILABLE) { @@ -154,7 +154,7 @@ ze_result_t LinuxSchedulerImp::setTimesliceDuration(uint64_t timeslice) { ze_result_t LinuxSchedulerImp::setHeartbeatInterval(uint64_t heartbeat) { heartbeat = heartbeat / milliSecsToMicroSecs; ze_result_t result = ZE_RESULT_ERROR_UNKNOWN; - for (auto engineName : listOfEngines) { + for (const auto &engineName : listOfEngines) { result = pSysfsAccess->write(engineDir + "/" + engineName + "/" + heartbeatIntervalMilliSecs, heartbeat); if (result != ZE_RESULT_SUCCESS) { if (result == ZE_RESULT_ERROR_NOT_AVAILABLE) { diff --git a/level_zero/tools/source/sysman/scheduler/scheduler_imp.h b/level_zero/tools/source/sysman/scheduler/scheduler_imp.h index 2fd9e8f6a6..7def51ad55 100644 --- a/level_zero/tools/source/sysman/scheduler/scheduler_imp.h +++ b/level_zero/tools/source/sysman/scheduler/scheduler_imp.h @@ -31,7 +31,6 @@ class SchedulerImp : public Scheduler, NEO::NonCopyableOrMovableClass { OsScheduler *pOsScheduler = nullptr; SchedulerImp(OsSysman *pOsSysman, zes_engine_type_flag_t type, std::vector &listOfEngines, ze_device_handle_t deviceHandle); ~SchedulerImp() override; - zes_engine_type_flag_t engineType; private: zes_sched_properties_t properties = {}; diff --git a/level_zero/tools/test/unit_tests/sources/sysman/engine/linux/test_zes_engine.cpp b/level_zero/tools/test/unit_tests/sources/sysman/engine/linux/test_zes_engine.cpp index ad1ad22cf4..4b7a421ec2 100644 --- a/level_zero/tools/test/unit_tests/sources/sysman/engine/linux/test_zes_engine.cpp +++ b/level_zero/tools/test/unit_tests/sources/sysman/engine/linux/test_zes_engine.cpp @@ -191,6 +191,14 @@ TEST_F(ZesEngineFixture, GivenValidEngineHandleWhenCallingZesEngineGetActivityAn } } +TEST_F(ZesEngineFixture, GivenValidEngineHandleWhenCallingZesEngineGetActivityAndperfEventOpenFailsThenVerifyEngineGetActivityReturnsFailure) { + ON_CALL(*pPmuInterface.get(), perfEventOpen(_, _, _, _, _)) + .WillByDefault(::testing::Invoke(pPmuInterface.get(), &Mock::mockedPerfEventOpenAndFailureReturn)); + + MockPmuInterfaceImp pPmuInterfaceImp(pLinuxSysmanImp); + EXPECT_EQ(-1, pPmuInterface->pmuInterfaceOpen(0, -1, 0)); +} + TEST_F(ZesEngineFixture, GivenValidOsSysmanPointerWhenRetrievingEngineTypeAndInstancesAndIfEngineInfoQueryFailsThenErrorIsReturned) { std::multimap engineGroupInstance; ON_CALL(*pDrm.get(), queryEngineInfo())