X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;f=examples%2Fvm_power_manager%2Fchannel_monitor.c;h=fe6088a186a74168958ec2a7b170488cd5343992;hb=b86ba6aa12a529e08d96bf8d7644725c800af6ca;hp=9d7474da0b816afccc2095b5e76b91d73f93a19b;hpb=221e7026d521c97c58fcee867f003e414dba2eea;p=dpdk.git diff --git a/examples/vm_power_manager/channel_monitor.c b/examples/vm_power_manager/channel_monitor.c index 9d7474da0b..fe6088a186 100644 --- a/examples/vm_power_manager/channel_monitor.c +++ b/examples/vm_power_manager/channel_monitor.c @@ -309,7 +309,7 @@ parse_json_to_pkt(json_t *element, struct channel_packet *pkt, vm_name); return -1; } - rte_strlcpy(pkt->vm_name, vm_name, VM_MAX_NAME_SZ); + strlcpy(pkt->vm_name, vm_name, VM_MAX_NAME_SZ); pkt->resource_id = resource_id; } return 0; @@ -835,6 +835,8 @@ read_json_packet(struct channel_info *chan_info) json_t *root; json_error_t error; const char *resource_name; + char *start, *end; + uint32_t n; /* read opening brace to closing brace */ @@ -882,7 +884,27 @@ read_json_packet(struct channel_info *chan_info) "Error validating JSON profile data\n"); break; } - process_request(&pkt, chan_info); + start = strstr(pkt.vm_name, + CHANNEL_MGR_FIFO_PATTERN_NAME); + if (start != NULL) { + /* move past pattern to start of fifo id */ + start += strlen(CHANNEL_MGR_FIFO_PATTERN_NAME); + + end = start; + n = (uint32_t)strtoul(start, &end, 10); + + if (end[0] == '\0') { + /* Add core id to core list */ + pkt.num_vcpu = 1; + pkt.vcpu_to_control[0] = n; + process_request(&pkt, chan_info); + } else { + RTE_LOG(ERR, CHANNEL_MONITOR, + "Cannot extract core id from fifo name\n"); + } + } else { + process_request(&pkt, chan_info); + } } else { RTE_LOG(ERR, CHANNEL_MONITOR, "JSON error on line %d: %s\n",