Implement the rdc_lib API to support the job stats

Add the function to start and stop the job recording.
Add the function to get the job stats for each GPU and summary of multiple GPUs
Add the function to remove the jobs.

Add a class RdcLogger which can control the log level using the environment variable RDC_LOG.
This is similar to GRPC_VERBOSITY gRPC. When the customer has the issues, he can enable the verbose
log to help us to troubleshoot the issues.

Add the -u support in the rdci group, fieldgroup and dmon for connecting to rdcd without authentication.

Change-Id: I22c591823c1ee6485db106b911bed8271d1b2769


[ROCm/rdc commit: a547dc7efd]
This commit is contained in:
Bill(Shuzhou) Liu
2020-04-08 08:47:29 -04:00
committed by Chris Freehill
parent aef3d29925
commit 0813e7052f
26 changed files with 805 additions and 102 deletions
@@ -40,6 +40,7 @@ void RdciFieldGroupSubSystem::parse_cmd_opts(int argc, char ** argv) {
const struct option long_options[] = {
{"host", required_argument, nullptr, HOST_OPTIONS },
{"help", optional_argument, nullptr, 'h' },
{"unauth", optional_argument, nullptr, 'u' },
{"list", optional_argument, nullptr, 'l' },
{"group", required_argument, nullptr, 'g'},
{"create", required_argument, nullptr, 'c' },
@@ -52,7 +53,7 @@ void RdciFieldGroupSubSystem::parse_cmd_opts(int argc, char ** argv) {
int option_index = 0;
int opt = 0;
while ((opt = getopt_long(argc, argv, "hlif:c:g:d:",
while ((opt = getopt_long(argc, argv, "hluif:c:g:d:",
long_options, &option_index)) != -1) {
switch (opt) {
case HOST_OPTIONS:
@@ -61,6 +62,9 @@ void RdciFieldGroupSubSystem::parse_cmd_opts(int argc, char ** argv) {
case 'h':
field_group_ops_ = FIELD_GROUP_HELP;
return;
case 'u':
use_auth_ = false;
break;
case 'l':
field_group_ops_ = FIELD_GROUP_LIST;
break;