Files
compute-runtime/level_zero/tools/source/metrics/os_metric_ip_sampling.h
Joshua Santosh Ranjan 10f98b45db Metrics Add Os specific implementation Structure for IP Sampling
This patch adds OS specific implementation for IP Sampling.
Implementation for linux is provided as part of this patch.

Related-To: LOCI-2787

--- master-files
level_zero/tools/source/metrics/linux/os_metric_ip_sampling_imp_linux.cpp
level_zero/tools/source/metrics/os_metric_ip_sampling.h
level_zero/tools/source/metrics/windows/os_metric_ip_sampling_imp_windows.cpp
level_zero/tools/test/unit_tests/sources/metrics/linux/test_metric_ip_sampling_linux_prelim.cpp
level_zero/tools/test/unit_tests/sources/metrics/linux/test_metric_ip_sampling_linux_upstream.cpp
level_zero/tools/test/unit_tests/sources/metrics/windows/test_metric_ip_sampling_windows.cpp
--- master-files

Signed-off-by: Joshua Santosh Ranjan <joshua.santosh.ranjan@intel.com>
2022-02-18 23:15:44 +01:00

30 lines
818 B
C++

/*
* Copyright (C) 2022 Intel Corporation
*
* SPDX-License-Identifier: MIT
*
*/
#include <level_zero/zet_api.h>
#include <memory>
namespace L0 {
struct Device;
class MetricIpSamplingOsInterface {
public:
virtual ~MetricIpSamplingOsInterface() = default;
virtual ze_result_t startMeasurement(uint32_t &notifyEveryNReports, uint32_t &samplingPeriodNs) = 0;
virtual ze_result_t stopMeasurement() = 0;
virtual ze_result_t readData(uint8_t *pRawData, size_t *pRawDataSize) = 0;
virtual uint32_t getRequiredBufferSize(const uint32_t maxReportCount) = 0;
virtual uint32_t getUnitReportSize() = 0;
virtual bool isNReportsAvailable() = 0;
virtual bool isDependencyAvailable() = 0;
static std::unique_ptr<MetricIpSamplingOsInterface> create(Device &device);
};
} // namespace L0