rdc_field_t replaces uint32_t; centralize field data
Make the RDC use the new rdc_field_t enum instead of uint32_t. This will help prevent invalid field types from being passed in. Also, centralize where data related to fields is kept. This will reduce the number of places where changes are required each time a new field is added. Finally, cleaned up several cpplint issues. Change-Id: I48e4512e18c164411d8b09ae3d4bed99fba359ec
This commit is contained in:
+40
-71
@@ -128,77 +128,46 @@ typedef enum {
|
||||
#define RDC_MAX_NUM_FIELD_GROUPS 64
|
||||
|
||||
/**
|
||||
* Memory usage of the GPU instance
|
||||
* These enums are used to specify a particular field to be retrieved.
|
||||
*/
|
||||
#define RDC_FI_GPU_MEMORY_USAGE 525
|
||||
typedef enum {
|
||||
RDC_FI_INVALID = 0, //!< Invalid field value
|
||||
//!< @brief Identifier fields
|
||||
RDC_FI_GPU_COUNT = 1, //!< GPU count in the system
|
||||
RDC_FI_DEV_NAME, //!< Name of the device
|
||||
|
||||
/**
|
||||
* Total memory of the GPU instance
|
||||
*/
|
||||
#define RDC_FI_GPU_MEMORY_TOTAL 580
|
||||
/*
|
||||
* @brief Frequency related fields
|
||||
*/
|
||||
RDC_FI_GPU_CLOCK = 100, //!< The current clock for the GPU
|
||||
RDC_FI_MEM_CLOCK, //!< Clock for the memory
|
||||
|
||||
/**
|
||||
* Power usage for the device
|
||||
*/
|
||||
#define RDC_FI_POWER_USAGE 155
|
||||
/*
|
||||
* @brief Physical monitor fields
|
||||
*/
|
||||
RDC_FI_MEMORY_TEMP = 200, //!< Memory temperature for the device
|
||||
RDC_FI_GPU_TEMP, //!< Current temperature for the device
|
||||
RDC_FI_POWER_USAGE = 300, //!< Power usage for the device
|
||||
|
||||
/**
|
||||
* The current clock for the GPU
|
||||
*/
|
||||
#define RDC_FI_GPU_CLOCK 100
|
||||
/*
|
||||
* @brief PCIe related fields
|
||||
*/
|
||||
RDC_FI_PCIE_TX = 400, //!< PCIe Tx utilization information
|
||||
RDC_FI_PCIE_RX, //!< PCIe Rx utilization information
|
||||
|
||||
/**
|
||||
* Clock for the memory
|
||||
*/
|
||||
#define RDC_FI_MEM_CLOCK 101
|
||||
|
||||
/**
|
||||
* PCIe Tx utilization information
|
||||
*/
|
||||
#define RDC_FI_PCIE_TX 200
|
||||
|
||||
/**
|
||||
* PCIe Rx utilization information
|
||||
*/
|
||||
#define RDC_FI_PCIE_RX 201
|
||||
|
||||
|
||||
/**
|
||||
* GPU Utilization
|
||||
*/
|
||||
#define RDC_FI_GPU_UTIL 203
|
||||
|
||||
/**
|
||||
* Accumulated correctable ECC errors
|
||||
*/
|
||||
#define RDC_FI_ECC_CORRECT_TOTAL 312
|
||||
|
||||
/**
|
||||
* Accumulated uncorrectable ECC errors
|
||||
*/
|
||||
#define RDC_FI_ECC_UNCORRECT_TOTAL 313
|
||||
|
||||
/**
|
||||
* Memory temperature for the device
|
||||
*/
|
||||
#define RDC_FI_MEMORY_TEMP 140
|
||||
|
||||
/**
|
||||
* Current temperature for the device
|
||||
*/
|
||||
#define RDC_FI_GPU_TEMP 150
|
||||
|
||||
|
||||
/**
|
||||
* GPU count in the system
|
||||
*/
|
||||
#define RDC_FI_GPU_COUNT 4
|
||||
|
||||
/**
|
||||
* Name of the device
|
||||
*/
|
||||
#define RDC_FI_DEV_NAME 50
|
||||
/*
|
||||
* @brief GPU usage related fields
|
||||
*/
|
||||
RDC_FI_GPU_UTIL = 500, //!< GPU Utilization
|
||||
RDC_FI_GPU_MEMORY_USAGE, //!< Memory usage of the GPU instance
|
||||
RDC_FI_GPU_MEMORY_TOTAL, //!< Total memory of the GPU instance
|
||||
|
||||
/**
|
||||
* @brief ECC related fields
|
||||
*/
|
||||
RDC_FI_ECC_CORRECT_TOTAL = 600, //!< Accumulated correctable ECC errors
|
||||
RDC_FI_ECC_UNCORRECT_TOTAL, //!< Accumulated uncorrectable ECC errors
|
||||
} rdc_field_t;
|
||||
|
||||
/**
|
||||
* @brief handlers used in various rdc calls
|
||||
@@ -273,7 +242,7 @@ typedef struct {
|
||||
* @brief The structure to store the field value
|
||||
*/
|
||||
typedef struct {
|
||||
uint32_t field_id; //!< The field id of the value
|
||||
rdc_field_t field_id; //!< The field id of the value
|
||||
int status; //!< RDC_ST_OK or error status
|
||||
uint64_t ts; //!< Timestamp in usec since 1970
|
||||
rdc_field_type_t type; //!< The field type
|
||||
@@ -294,7 +263,7 @@ typedef struct {
|
||||
/**
|
||||
* The list of fields in the group
|
||||
*/
|
||||
uint32_t field_ids[RDC_MAX_FIELD_IDS_PER_FIELD_GROUP];
|
||||
rdc_field_t field_ids[RDC_MAX_FIELD_IDS_PER_FIELD_GROUP];
|
||||
} rdc_field_group_info_t;
|
||||
|
||||
/**
|
||||
@@ -647,7 +616,7 @@ rdc_status_t rdc_group_gpu_destroy(rdc_handle_t p_rdc_handle,
|
||||
* @retval ::RDC_ST_OK is returned upon successful call.
|
||||
*/
|
||||
rdc_status_t rdc_group_field_create(rdc_handle_t p_rdc_handle,
|
||||
uint32_t num_field_ids, uint32_t* field_ids,
|
||||
uint32_t num_field_ids, rdc_field_t* field_ids,
|
||||
const char* field_group_name, rdc_field_grp_t* rdc_field_group_id);
|
||||
|
||||
/**
|
||||
@@ -743,7 +712,7 @@ rdc_status_t rdc_field_watch(rdc_handle_t p_rdc_handle,
|
||||
* @retval ::RDC_ST_OK is returned upon successful call.
|
||||
*/
|
||||
rdc_status_t rdc_field_get_latest_value(rdc_handle_t p_rdc_handle,
|
||||
uint32_t gpu_index, uint32_t field, rdc_field_value* value);
|
||||
uint32_t gpu_index, rdc_field_t field, rdc_field_value* value);
|
||||
|
||||
/**
|
||||
* @brief Request a history cached field of a GPU
|
||||
@@ -767,7 +736,7 @@ rdc_status_t rdc_field_get_latest_value(rdc_handle_t p_rdc_handle,
|
||||
* @retval ::RDC_ST_OK is returned upon successful call.
|
||||
*/
|
||||
rdc_status_t rdc_field_get_value_since(rdc_handle_t p_rdc_handle,
|
||||
uint32_t gpu_index, uint32_t field, uint64_t since_time_stamp,
|
||||
uint32_t gpu_index, rdc_field_t field, uint64_t since_time_stamp,
|
||||
uint64_t *next_since_time_stamp, rdc_field_value* value);
|
||||
|
||||
/**
|
||||
@@ -806,7 +775,7 @@ const char* rdc_status_string(rdc_status_t status);
|
||||
*
|
||||
* @retval The string to describe the field.
|
||||
*/
|
||||
const char* field_id_string(uint32_t field_id);
|
||||
const char* field_id_string(rdc_field_t field_id);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
|
||||
@@ -19,8 +19,8 @@ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
THE SOFTWARE.
|
||||
*/
|
||||
#ifndef RDC_LIB_RDCCACHEMANAGER_H_
|
||||
#define RDC_LIB_RDCCACHEMANAGER_H_
|
||||
#ifndef INCLUDE_RDC_LIB_RDCCACHEMANAGER_H_
|
||||
#define INCLUDE_RDC_LIB_RDCCACHEMANAGER_H_
|
||||
|
||||
#include <memory>
|
||||
#include <utility>
|
||||
@@ -36,13 +36,13 @@ namespace rdc {
|
||||
class RdcCacheManager {
|
||||
public:
|
||||
virtual rdc_status_t rdc_field_get_latest_value(uint32_t gpu_index,
|
||||
uint32_t field, rdc_field_value* value) = 0;
|
||||
rdc_field_t field, rdc_field_value* value) = 0;
|
||||
virtual rdc_status_t rdc_field_get_value_since(uint32_t gpu_index,
|
||||
uint32_t field, uint64_t since_time_stamp,
|
||||
rdc_field_t field, uint64_t since_time_stamp,
|
||||
uint64_t *next_since_time_stamp, rdc_field_value* value) = 0;
|
||||
virtual rdc_status_t rdc_update_cache(uint32_t gpu_index,
|
||||
const rdc_field_value& value) = 0;
|
||||
virtual rdc_status_t evict_cache(uint32_t gpu_index, uint32_t field_id,
|
||||
virtual rdc_status_t evict_cache(uint32_t gpu_index, rdc_field_t field_id,
|
||||
uint64_t max_keep_samples, double max_keep_age) = 0;
|
||||
virtual std::string get_cache_stats() = 0;
|
||||
|
||||
@@ -69,4 +69,4 @@ typedef std::shared_ptr<RdcCacheManager> RdcCacheManagerPtr;
|
||||
} // namespace rdc
|
||||
} // namespace amd
|
||||
|
||||
#endif // RDC_LIB_RDCCACHEMANAGER_H_
|
||||
#endif // INCLUDE_RDC_LIB_RDCCACHEMANAGER_H_
|
||||
|
||||
@@ -20,8 +20,8 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
THE SOFTWARE.
|
||||
*/
|
||||
|
||||
#ifndef RDCI_INCLUDE_RDCEXCEPTION_H_
|
||||
#define RDCI_INCLUDE_RDCEXCEPTION_H_
|
||||
#ifndef INCLUDE_RDC_LIB_RDCEXCEPTION_H_
|
||||
#define INCLUDE_RDC_LIB_RDCEXCEPTION_H_
|
||||
|
||||
#include <exception>
|
||||
#include <string>
|
||||
@@ -45,5 +45,5 @@ class RdcException : public std::exception {
|
||||
} // namespace rdc
|
||||
} // namespace amd
|
||||
|
||||
#endif // RDCI_INCLUDE_RDCEXCEPTION_H_
|
||||
#endif // INCLUDE_RDC_LIB_RDCEXCEPTION_H_
|
||||
|
||||
|
||||
@@ -19,8 +19,8 @@ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
THE SOFTWARE.
|
||||
*/
|
||||
#ifndef RDC_LIB_RDCGROUPSETTINGS_H_
|
||||
#define RDC_LIB_RDCGROUPSETTINGS_H_
|
||||
#ifndef INCLUDE_RDC_LIB_RDCGROUPSETTINGS_H_
|
||||
#define INCLUDE_RDC_LIB_RDCGROUPSETTINGS_H_
|
||||
|
||||
#include <memory>
|
||||
#include "rdc_lib/rdc_common.h"
|
||||
@@ -45,7 +45,7 @@ class RdcGroupSettings {
|
||||
|
||||
|
||||
virtual rdc_status_t rdc_group_field_create(uint32_t num_field_ids,
|
||||
uint32_t* field_ids, const char* field_group_name,
|
||||
rdc_field_t* field_ids, const char* field_group_name,
|
||||
rdc_field_grp_t* rdc_field_group_id) = 0;
|
||||
virtual rdc_status_t rdc_group_field_destroy(
|
||||
rdc_field_grp_t rdc_field_group_id) = 0;
|
||||
@@ -64,4 +64,4 @@ const uint32_t JOB_FIELD_ID = 0;
|
||||
} // namespace rdc
|
||||
} // namespace amd
|
||||
|
||||
#endif // RDC_LIB_RDCGROUPSETTINGS_H_
|
||||
#endif // INCLUDE_RDC_LIB_RDCGROUPSETTINGS_H_
|
||||
|
||||
@@ -19,8 +19,8 @@ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
THE SOFTWARE.
|
||||
*/
|
||||
#ifndef RDC_LIB_RDCHANDLER_H_
|
||||
#define RDC_LIB_RDCHANDLER_H_
|
||||
#ifndef INCLUDE_RDC_LIB_RDCHANDLER_H_
|
||||
#define INCLUDE_RDC_LIB_RDCHANDLER_H_
|
||||
|
||||
#include "rdc_lib/rdc_common.h"
|
||||
#include "rdc/rdc.h"
|
||||
@@ -52,7 +52,7 @@ class RdcHandler {
|
||||
virtual rdc_status_t rdc_group_gpu_add(rdc_gpu_group_t groupId,
|
||||
uint32_t gpu_index) = 0;
|
||||
virtual rdc_status_t rdc_group_field_create(uint32_t num_field_ids,
|
||||
uint32_t* field_ids, const char* field_group_name,
|
||||
rdc_field_t* field_ids, const char* field_group_name,
|
||||
rdc_field_grp_t* rdc_field_group_id) = 0;
|
||||
virtual rdc_status_t rdc_group_field_get_info(
|
||||
rdc_field_grp_t rdc_field_group_id,
|
||||
@@ -73,9 +73,9 @@ class RdcHandler {
|
||||
rdc_field_grp_t field_group_id, uint64_t update_freq,
|
||||
double max_keep_age, uint32_t max_keep_samples) = 0;
|
||||
virtual rdc_status_t rdc_field_get_latest_value(uint32_t gpu_index,
|
||||
uint32_t field, rdc_field_value* value) = 0;
|
||||
rdc_field_t field, rdc_field_value* value) = 0;
|
||||
virtual rdc_status_t rdc_field_get_value_since(uint32_t gpu_index,
|
||||
uint32_t field, uint64_t since_time_stamp,
|
||||
rdc_field_t field, uint64_t since_time_stamp,
|
||||
uint64_t *next_since_time_stamp, rdc_field_value* value) = 0;
|
||||
virtual rdc_status_t rdc_field_unwatch(rdc_gpu_group_t group_id,
|
||||
rdc_field_grp_t field_group_id) = 0;
|
||||
@@ -89,4 +89,4 @@ class RdcHandler {
|
||||
} // namespace rdc
|
||||
} // namespace amd
|
||||
|
||||
#endif // RDC_LIB_RDCHANDLER_H_
|
||||
#endif // INCLUDE_RDC_LIB_RDCHANDLER_H_
|
||||
|
||||
@@ -19,8 +19,8 @@ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
THE SOFTWARE.
|
||||
*/
|
||||
#ifndef RDC_LIB_RDCLIBRARYLOADER_H_
|
||||
#define RDC_LIB_RDCLIBRARYLOADER_H_
|
||||
#ifndef INCLUDE_RDC_LIB_RDCLIBRARYLOADER_H_
|
||||
#define INCLUDE_RDC_LIB_RDCLIBRARYLOADER_H_
|
||||
#include <dlfcn.h>
|
||||
#include <string.h>
|
||||
#include <map>
|
||||
@@ -83,4 +83,4 @@ template<typename T> rdc_status_t RdcLibraryLoader::load(const char* filename,
|
||||
} // namespace amd
|
||||
|
||||
|
||||
#endif // RDC_LIB_RDCLIBRARYLOADER_H_
|
||||
#endif // INCLUDE_RDC_LIB_RDCLIBRARYLOADER_H_
|
||||
|
||||
@@ -19,8 +19,8 @@ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
THE SOFTWARE.
|
||||
*/
|
||||
#ifndef RDC_LIB_RDCLOGGER_H_
|
||||
#define RDC_LIB_RDCLOGGER_H_
|
||||
#ifndef INCLUDE_RDC_LIB_RDCLOGGER_H_
|
||||
#define INCLUDE_RDC_LIB_RDCLOGGER_H_
|
||||
#include <iostream>
|
||||
#include <string>
|
||||
#include <chrono> // NOLINT
|
||||
@@ -56,4 +56,4 @@ class RdcLogger {
|
||||
} // namespace amd
|
||||
|
||||
|
||||
#endif // RDC_LIB_RDCLOGGER_H_
|
||||
#endif // INCLUDE_RDC_LIB_RDCLOGGER_H_
|
||||
|
||||
@@ -19,8 +19,8 @@ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
THE SOFTWARE.
|
||||
*/
|
||||
#ifndef RDC_LIB_RDCMETRICFETCHER_H_
|
||||
#define RDC_LIB_RDCMETRICFETCHER_H_
|
||||
#ifndef INCLUDE_RDC_LIB_RDCMETRICFETCHER_H_
|
||||
#define INCLUDE_RDC_LIB_RDCMETRICFETCHER_H_
|
||||
|
||||
#include <memory>
|
||||
#include "rdc_lib/rdc_common.h"
|
||||
@@ -33,8 +33,7 @@ namespace rdc {
|
||||
class RdcMetricFetcher {
|
||||
public:
|
||||
virtual rdc_status_t fetch_smi_field(uint32_t gpu_index,
|
||||
uint32_t field_id, rdc_field_value* value) = 0;
|
||||
virtual bool is_field_valid(uint32_t field_id) const = 0;
|
||||
rdc_field_t field_id, rdc_field_value* value) = 0;
|
||||
virtual ~RdcMetricFetcher() {}
|
||||
};
|
||||
|
||||
@@ -43,4 +42,4 @@ typedef std::shared_ptr<RdcMetricFetcher> RdcMetricFetcherPtr;
|
||||
} // namespace rdc
|
||||
} // namespace amd
|
||||
|
||||
#endif // RDC_LIB_RDCMETRICFETCHER_H_
|
||||
#endif // INCLUDE_RDC_LIB_RDCMETRICFETCHER_H_
|
||||
|
||||
@@ -19,8 +19,8 @@ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
THE SOFTWARE.
|
||||
*/
|
||||
#ifndef RDC_LIB_RDCMETRICSUPDATER_H_
|
||||
#define RDC_LIB_RDCMETRICSUPDATER_H_
|
||||
#ifndef INCLUDE_RDC_LIB_RDCMETRICSUPDATER_H_
|
||||
#define INCLUDE_RDC_LIB_RDCMETRICSUPDATER_H_
|
||||
|
||||
#include <memory>
|
||||
|
||||
@@ -39,4 +39,4 @@ typedef std::shared_ptr<RdcMetricsUpdater> RdcMetricsUpdaterPtr;
|
||||
} // namespace amd
|
||||
|
||||
|
||||
#endif // RDC_LIB_RDCMETRICSUPDATER_H_
|
||||
#endif // INCLUDE_RDC_LIB_RDCMETRICSUPDATER_H_
|
||||
|
||||
@@ -19,8 +19,8 @@ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
THE SOFTWARE.
|
||||
*/
|
||||
#ifndef RDC_LIB_RDCWATCHTABLE_H_
|
||||
#define RDC_LIB_RDCWATCHTABLE_H_
|
||||
#ifndef INCLUDE_RDC_LIB_RDCWATCHTABLE_H_
|
||||
#define INCLUDE_RDC_LIB_RDCWATCHTABLE_H_
|
||||
|
||||
#include <memory>
|
||||
#include <vector>
|
||||
@@ -57,4 +57,4 @@ typedef std::shared_ptr<RdcWatchTable> RdcWatchTablePtr;
|
||||
} // namespace rdc
|
||||
} // namespace amd
|
||||
|
||||
#endif // RDC_LIB_RDCWATCHTABLE_H_
|
||||
#endif // INCLUDE_RDC_LIB_RDCWATCHTABLE_H_
|
||||
|
||||
@@ -19,8 +19,8 @@ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
THE SOFTWARE.
|
||||
*/
|
||||
#ifndef RDC_LIB_IMPL_RDCCACHEMANAGERIMPL_H_
|
||||
#define RDC_LIB_IMPL_RDCCACHEMANAGERIMPL_H_
|
||||
#ifndef INCLUDE_RDC_LIB_IMPL_RDCCACHEMANAGERIMPL_H_
|
||||
#define INCLUDE_RDC_LIB_IMPL_RDCCACHEMANAGERIMPL_H_
|
||||
|
||||
#include <memory>
|
||||
#include <mutex> // NOLINT(build/c++11)
|
||||
@@ -80,13 +80,13 @@ typedef std::map<std::string, RdcJobStatsCacheEntry> RdcJobStatsCache;
|
||||
class RdcCacheManagerImpl: public RdcCacheManager {
|
||||
public:
|
||||
rdc_status_t rdc_field_get_latest_value(uint32_t gpu_index,
|
||||
uint32_t field, rdc_field_value* value) override;
|
||||
rdc_status_t rdc_field_get_value_since(uint32_t gpu_index, uint32_t field,
|
||||
uint64_t since_time_stamp, uint64_t *next_since_time_stamp,
|
||||
rdc_field_value* value) override;
|
||||
rdc_field_t field, rdc_field_value* value) override;
|
||||
rdc_status_t rdc_field_get_value_since(uint32_t gpu_index,
|
||||
rdc_field_t field, uint64_t since_time_stamp,
|
||||
uint64_t *next_since_time_stamp, rdc_field_value* value) override;
|
||||
rdc_status_t rdc_update_cache(uint32_t gpu_index,
|
||||
const rdc_field_value& value) override;
|
||||
rdc_status_t evict_cache(uint32_t gpu_index, uint32_t field_id,
|
||||
rdc_status_t evict_cache(uint32_t gpu_index, rdc_field_t field_id,
|
||||
uint64_t max_keep_samples, double max_keep_age) override;
|
||||
std::string get_cache_stats() override;
|
||||
|
||||
@@ -120,4 +120,4 @@ class RdcCacheManagerImpl: public RdcCacheManager {
|
||||
} // namespace amd
|
||||
|
||||
|
||||
#endif // RDC_LIB_IMPL_RDCCACHEMANAGERIMPL_H_
|
||||
#endif // INCLUDE_RDC_LIB_IMPL_RDCCACHEMANAGERIMPL_H_
|
||||
|
||||
@@ -19,8 +19,8 @@ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
THE SOFTWARE.
|
||||
*/
|
||||
#ifndef RDC_LIB_IMPL_RDCEMBEDDEDHANDLER_H_
|
||||
#define RDC_LIB_IMPL_RDCEMBEDDEDHANDLER_H_
|
||||
#ifndef INCLUDE_RDC_LIB_IMPL_RDCEMBEDDEDHANDLER_H_
|
||||
#define INCLUDE_RDC_LIB_IMPL_RDCEMBEDDEDHANDLER_H_
|
||||
|
||||
#include <future> // NOLINT(build/c++11)
|
||||
#include "rdc_lib/RdcHandler.h"
|
||||
@@ -57,7 +57,7 @@ class RdcEmbeddedHandler: public RdcHandler {
|
||||
rdc_status_t rdc_group_gpu_add(rdc_gpu_group_t groupId,
|
||||
uint32_t gpu_index) override;
|
||||
rdc_status_t rdc_group_field_create(uint32_t num_field_ids,
|
||||
uint32_t* field_ids, const char* field_group_name,
|
||||
rdc_field_t* field_ids, const char* field_group_name,
|
||||
rdc_field_grp_t* rdc_field_group_id) override;
|
||||
rdc_status_t rdc_group_field_get_info(
|
||||
rdc_field_grp_t rdc_field_group_id,
|
||||
@@ -78,9 +78,9 @@ class RdcEmbeddedHandler: public RdcHandler {
|
||||
rdc_field_grp_t field_group_id, uint64_t update_freq,
|
||||
double max_keep_age, uint32_t max_keep_samples) override;
|
||||
rdc_status_t rdc_field_get_latest_value(uint32_t gpu_index,
|
||||
uint32_t field, rdc_field_value* value) override;
|
||||
rdc_field_t field, rdc_field_value* value) override;
|
||||
rdc_status_t rdc_field_get_value_since(uint32_t gpu_index,
|
||||
uint32_t field, uint64_t since_time_stamp,
|
||||
rdc_field_t field, uint64_t since_time_stamp,
|
||||
uint64_t *next_since_time_stamp, rdc_field_value* value) override;
|
||||
rdc_status_t rdc_field_unwatch(rdc_gpu_group_t group_id,
|
||||
rdc_field_grp_t field_group_id) override;
|
||||
@@ -108,4 +108,4 @@ extern "C" {
|
||||
amd::rdc::RdcHandler *make_handler(rdc_operation_mode_t op_mode);
|
||||
}
|
||||
|
||||
#endif // RDC_LIB_IMPL_RDCEMBEDDEDHANDLER_H_
|
||||
#endif // INCLUDE_RDC_LIB_IMPL_RDCEMBEDDEDHANDLER_H_
|
||||
|
||||
@@ -19,9 +19,8 @@ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
THE SOFTWARE.
|
||||
*/
|
||||
#ifndef RDC_LIB_IMPL_RDCGROUPSETTINGSIMPL_H_
|
||||
#define RDC_LIB_IMPL_RDCGROUPSETTINGSIMPL_H_
|
||||
|
||||
#ifndef INCLUDE_RDC_LIB_IMPL_RDCGROUPSETTINGSIMPL_H_
|
||||
#define INCLUDE_RDC_LIB_IMPL_RDCGROUPSETTINGSIMPL_H_
|
||||
|
||||
#include <memory>
|
||||
#include <map>
|
||||
@@ -46,7 +45,7 @@ class RdcGroupSettingsImpl: public RdcGroupSettings {
|
||||
rdc_gpu_group_t group_id_list[], uint32_t* count) override;
|
||||
|
||||
rdc_status_t rdc_group_field_create(uint32_t num_field_ids,
|
||||
uint32_t* field_ids, const char* field_group_name,
|
||||
rdc_field_t* field_ids, const char* field_group_name,
|
||||
rdc_field_grp_t* rdc_field_group_id) override;
|
||||
rdc_status_t rdc_group_field_destroy(
|
||||
rdc_field_grp_t rdc_field_group_id) override;
|
||||
@@ -71,4 +70,4 @@ class RdcGroupSettingsImpl: public RdcGroupSettings {
|
||||
} // namespace amd
|
||||
|
||||
|
||||
#endif // RDC_LIB_IMPL_RDCGROUPSETTINGSIMPL_H_
|
||||
#endif // INCLUDE_RDC_LIB_IMPL_RDCGROUPSETTINGSIMPL_H_
|
||||
|
||||
@@ -19,8 +19,8 @@ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
THE SOFTWARE.
|
||||
*/
|
||||
#ifndef RDC_LIB_IMPL_RDCMETRICFETCHERIMPL_H_
|
||||
#define RDC_LIB_IMPL_RDCMETRICFETCHERIMPL_H_
|
||||
#ifndef INCLUDE_RDC_LIB_IMPL_RDCMETRICFETCHERIMPL_H_
|
||||
#define INCLUDE_RDC_LIB_IMPL_RDCMETRICFETCHERIMPL_H_
|
||||
|
||||
#include <mutex> // NOLINT(build/c++11)
|
||||
#include <future> // NOLINT(build/c++11)
|
||||
@@ -52,18 +52,17 @@ struct MetricTask {
|
||||
class RdcMetricFetcherImpl: public RdcMetricFetcher {
|
||||
public:
|
||||
rdc_status_t fetch_smi_field(uint32_t gpu_index,
|
||||
uint32_t field_id, rdc_field_value* value) override;
|
||||
bool is_field_valid(uint32_t field_id) const override;
|
||||
rdc_field_t field_id, rdc_field_value* value) override;
|
||||
RdcMetricFetcherImpl();
|
||||
~RdcMetricFetcherImpl();
|
||||
private:
|
||||
uint64_t now();
|
||||
void get_ecc_error(uint32_t gpu_index,
|
||||
uint32_t field_id, rdc_field_value* value);
|
||||
rdc_field_t field_id, rdc_field_value* value);
|
||||
|
||||
//!< return true if starting async_get
|
||||
bool async_get_pcie_throughput(uint32_t gpu_index,
|
||||
uint32_t field_id, rdc_field_value* value);
|
||||
rdc_field_t field_id, rdc_field_value* value);
|
||||
void get_pcie_throughput(const RdcFieldKey& key);
|
||||
|
||||
//!< Async metric retreive
|
||||
@@ -78,4 +77,4 @@ class RdcMetricFetcherImpl: public RdcMetricFetcher {
|
||||
} // namespace rdc
|
||||
} // namespace amd
|
||||
|
||||
#endif // RDC_LIB_IMPL_RDCMETRICFETCHERIMPL_H_
|
||||
#endif // INCLUDE_RDC_LIB_IMPL_RDCMETRICFETCHERIMPL_H_
|
||||
|
||||
@@ -19,10 +19,10 @@ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
THE SOFTWARE.
|
||||
*/
|
||||
#ifndef RDC_LIB_IMPL_RDCMETRICSUPDATERIMPL_H_
|
||||
#define RDC_LIB_IMPL_RDCMETRICSUPDATERIMPL_H_
|
||||
#ifndef INCLUDE_RDC_LIB_IMPL_RDCMETRICSUPDATERIMPL_H_
|
||||
#define INCLUDE_RDC_LIB_IMPL_RDCMETRICSUPDATERIMPL_H_
|
||||
|
||||
#include <future>
|
||||
#include <future> // NOLINT(build/c++11)
|
||||
#include <memory>
|
||||
#include "rdc_lib/RdcMetricsUpdater.h"
|
||||
#include "rdc_lib/RdcWatchTable.h"
|
||||
@@ -46,4 +46,4 @@ class RdcMetricsUpdaterImpl: public RdcMetricsUpdater {
|
||||
} // namespace rdc
|
||||
} // namespace amd
|
||||
|
||||
#endif // RDC_LIB_IMPL_RDCMETRICSUPDATERIMPL_H_
|
||||
#endif // INCLUDE_RDC_LIB_IMPL_RDCMETRICSUPDATERIMPL_H_
|
||||
|
||||
@@ -19,8 +19,8 @@ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
THE SOFTWARE.
|
||||
*/
|
||||
#ifndef RDC_LIB_IMPL_RDCSTANDALONEHANDLER_H_
|
||||
#define RDC_LIB_IMPL_RDCSTANDALONEHANDLER_H_
|
||||
#ifndef INCLUDE_RDC_LIB_IMPL_RDCSTANDALONEHANDLER_H_
|
||||
#define INCLUDE_RDC_LIB_IMPL_RDCSTANDALONEHANDLER_H_
|
||||
#include <grpcpp/grpcpp.h>
|
||||
#include <memory>
|
||||
#include "rdc.grpc.pb.h" // NOLINT
|
||||
@@ -53,7 +53,7 @@ class RdcStandaloneHandler: public RdcHandler {
|
||||
rdc_status_t rdc_group_gpu_add(rdc_gpu_group_t groupId,
|
||||
uint32_t gpu_index) override;
|
||||
rdc_status_t rdc_group_field_create(uint32_t num_field_ids,
|
||||
uint32_t* field_ids, const char* field_group_name,
|
||||
rdc_field_t* field_ids, const char* field_group_name,
|
||||
rdc_field_grp_t* rdc_field_group_id) override;
|
||||
rdc_status_t rdc_group_field_get_info(
|
||||
rdc_field_grp_t rdc_field_group_id,
|
||||
@@ -74,9 +74,9 @@ class RdcStandaloneHandler: public RdcHandler {
|
||||
rdc_field_grp_t field_group_id, uint64_t update_freq,
|
||||
double max_keep_age, uint32_t max_keep_samples) override;
|
||||
rdc_status_t rdc_field_get_latest_value(uint32_t gpu_index,
|
||||
uint32_t field, rdc_field_value* value) override;
|
||||
rdc_field_t field, rdc_field_value* value) override;
|
||||
rdc_status_t rdc_field_get_value_since(uint32_t gpu_index,
|
||||
uint32_t field, uint64_t since_time_stamp,
|
||||
rdc_field_t field, uint64_t since_time_stamp,
|
||||
uint64_t *next_since_time_stamp, rdc_field_value* value) override;
|
||||
rdc_status_t rdc_field_unwatch(rdc_gpu_group_t group_id,
|
||||
rdc_field_grp_t field_group_id) override;
|
||||
@@ -107,4 +107,4 @@ extern "C" {
|
||||
const char* root_ca, const char* client_cert, const char* client_key);
|
||||
}
|
||||
|
||||
#endif // RDC_LIB_IMPL_RDCSTANDALONEHANDLER_H_
|
||||
#endif // INCLUDE_RDC_LIB_IMPL_RDCSTANDALONEHANDLER_H_
|
||||
|
||||
@@ -19,8 +19,8 @@ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
THE SOFTWARE.
|
||||
*/
|
||||
#ifndef RDC_LIB_IMPL_RDCWATCHTABLEIMPL_H_
|
||||
#define RDC_LIB_IMPL_RDCWATCHTABLEIMPL_H_
|
||||
#ifndef INCLUDE_RDC_LIB_IMPL_RDCWATCHTABLEIMPL_H_
|
||||
#define INCLUDE_RDC_LIB_IMPL_RDCWATCHTABLEIMPL_H_
|
||||
|
||||
#include <string>
|
||||
#include <map>
|
||||
@@ -86,7 +86,8 @@ class RdcWatchTableImpl : public RdcWatchTable {
|
||||
|
||||
private:
|
||||
//!< Helper function to Update the fields_in_table when unwatch tables
|
||||
rdc_status_t update_field_in_table_when_unwatch(const RdcFieldKey& entry);
|
||||
rdc_status_t update_field_in_table_when_unwatch(
|
||||
const RdcFieldGroupKey& entry);
|
||||
|
||||
//!< Helper function to clean up the watch table and cache
|
||||
void clean_up();
|
||||
@@ -99,15 +100,15 @@ class RdcWatchTableImpl : public RdcWatchTable {
|
||||
rdc_field_grp_t field_group_id,
|
||||
std::vector<RdcFieldKey> & fields); // NOLINT
|
||||
|
||||
bool is_job_watch_field(uint32_t gpu_index, uint32_t field_id,
|
||||
std::string& job_id) const; // NOLINT
|
||||
bool is_job_watch_field(uint32_t gpu_index, rdc_field_t field_id,
|
||||
std::string& job_id) const; // NOLINT
|
||||
|
||||
RdcGroupSettingsPtr group_settings_;
|
||||
RdcCacheManagerPtr cache_mgr_;
|
||||
RdcMetricFetcherPtr metric_fetcher_;
|
||||
|
||||
//!< The watch table to store the watch settings.
|
||||
std::map<RdcFieldKey, FieldSettings> watch_table_;
|
||||
std::map<RdcFieldGroupKey, FieldSettings> watch_table_;
|
||||
|
||||
//!< <job_id, gpu_group_id> pairs
|
||||
std::map<std::string, JobWatchTableEntry> job_watch_table_;
|
||||
@@ -129,4 +130,4 @@ class RdcWatchTableImpl : public RdcWatchTable {
|
||||
} // namespace amd
|
||||
|
||||
|
||||
#endif // RDC_LIB_IMPL_RDCWATCHTABLEIMPL_H_
|
||||
#endif // INCLUDE_RDC_LIB_IMPL_RDCWATCHTABLEIMPL_H_
|
||||
|
||||
@@ -20,12 +20,14 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
THE SOFTWARE.
|
||||
*/
|
||||
|
||||
#ifndef RDC_LIB_RDC_COMMON_H_
|
||||
#define RDC_LIB_RDC_COMMON_H_
|
||||
#ifndef INCLUDE_RDC_LIB_RDC_COMMON_H_
|
||||
#define INCLUDE_RDC_LIB_RDC_COMMON_H_
|
||||
#include <iostream>
|
||||
#include <map>
|
||||
#include <utility>
|
||||
|
||||
#include "rdc/rdc.h"
|
||||
|
||||
#define RDC_ERROR 0
|
||||
#define RDC_INFO 1
|
||||
#define RDC_DEBUG 2
|
||||
@@ -40,7 +42,10 @@ THE SOFTWARE.
|
||||
} while (0)
|
||||
|
||||
//<! The key to identify the field with <gpu_id, field_id>
|
||||
typedef std::pair<uint32_t, uint32_t> RdcFieldKey;
|
||||
typedef std::pair<uint32_t, rdc_field_t> RdcFieldKey;
|
||||
|
||||
//<! The key to identify the field with <gpu_id, field_group_id>
|
||||
typedef std::pair<uint32_t, uint32_t> RdcFieldGroupKey;
|
||||
|
||||
//!< The gauge metrics do not require aggregations
|
||||
typedef std::map<RdcFieldKey, uint64_t> rdc_gpu_gauges_t;
|
||||
@@ -62,4 +67,4 @@ typedef std::map<RdcFieldKey, uint64_t> rdc_gpu_gauges_t;
|
||||
char *strncpy_with_null(char *dest, const char *src, size_t n);
|
||||
|
||||
|
||||
#endif // RDC_LIB_RDC_COMMON_H_
|
||||
#endif // INCLUDE_RDC_LIB_RDC_COMMON_H_
|
||||
|
||||
Reference in New Issue
Block a user