@@ -14,6 +14,7 @@
#include <rte_log.h>
#include <rte_power.h>
+#include <rte_errno.h>
#include "guest_channel.h"
@@ -57,6 +58,7 @@ guest_channel_host_connect(const char *path, unsigned int lcore_id)
{
int flags, ret;
struct rte_power_channel_packet pkt;
+ char errmsg[RTE_STRERR_BUFSIZE];
char fd_path[PATH_MAX];
int fd = -1;
@@ -77,8 +79,10 @@ guest_channel_host_connect(const char *path, unsigned int lcore_id)
fd_path, lcore_id);
fd = open(fd_path, O_RDWR);
if (fd < 0) {
+ if (strerror_r(errno, errmsg, sizeof(errmsg)) != 0)
+ snprintf(errmsg, sizeof(errmsg), "Unknown error %d", errno);
GUEST_CHANNEL_LOG(ERR, "Unable to connect to '%s' with error "
- "%s", fd_path, strerror(errno));
+ "%s", fd_path, errmsg);
return -1;
}
@@ -105,9 +109,11 @@ guest_channel_host_connect(const char *path, unsigned int lcore_id)
global_fds[lcore_id] = fd;
ret = guest_channel_send_msg(&pkt, lcore_id);
if (ret != 0) {
+ if (strerror_r(ret, errmsg, sizeof(errmsg)) != 0)
+ snprintf(errmsg, sizeof(errmsg), "Unknown error %d", ret);
GUEST_CHANNEL_LOG(ERR,
"Error on channel '%s' communications test: %s",
- fd_path, ret > 0 ? strerror(ret) :
+ fd_path, ret > 0 ? errmsg :
"channel not connected");
goto error;
}
@@ -161,6 +167,7 @@ int power_guest_channel_read_msg(void *pkt,
size_t pkt_len,
unsigned int lcore_id)
{
+ char errmsg[RTE_STRERR_BUFSIZE];
int ret;
struct pollfd fds;
@@ -186,8 +193,10 @@ int power_guest_channel_read_msg(void *pkt,
GUEST_CHANNEL_LOG(DEBUG, "Timeout occurred during poll function.");
return -1;
} else if (ret < 0) {
+ if (strerror_r(errno, errmsg, sizeof(errmsg)) != 0)
+ snprintf(errmsg, sizeof(errmsg), "Unknown error %d", errno);
GUEST_CHANNEL_LOG(ERR, "Error occurred during poll function: %s",
- strerror(errno));
+ errmsg);
return -1;
}
@@ -5,6 +5,7 @@
#include <string.h>
#include <rte_log.h>
+#include <rte_errno.h>
#include "rte_power_guest_channel.h"
#include "guest_channel.h"
@@ -71,6 +72,7 @@ power_kvm_vm_set_freq(__rte_unused unsigned int lcore_id,
static inline int
send_msg(unsigned int lcore_id, uint32_t scale_direction)
{
+ char errmsg[RTE_STRERR_BUFSIZE];
int ret;
if (lcore_id >= RTE_MAX_LCORE) {
@@ -82,8 +84,10 @@ send_msg(unsigned int lcore_id, uint32_t scale_direction)
ret = guest_channel_send_msg(&pkt[lcore_id], lcore_id);
if (ret == 0)
return 1;
+ if (strerror_r(ret, errmsg, sizeof(errmsg)) != 0)
+ snprintf(errmsg, sizeof(errmsg), "Unknown error %d", ret);
POWER_LOG(DEBUG, "Error sending message: %s",
- ret > 0 ? strerror(ret) : "channel not connected");
+ ret > 0 ? errmsg : "channel not connected");
return -1;
}
@@ -13,6 +13,7 @@
#include <rte_memcpy.h>
#include <rte_stdatomic.h>
+#include <rte_errno.h>
#include "rte_power_pmd_mgmt.h"
#include "power_pstate_cpufreq.h"
@@ -75,6 +76,7 @@ static struct pstate_power_info lcore_power_info[RTE_MAX_LCORE];
static int32_t
power_read_turbo_pct(uint64_t *outVal)
{
+ char errmsg[RTE_STRERR_BUFSIZE];
int fd, ret;
char val[4] = {0};
char *endptr;
@@ -82,24 +84,30 @@ power_read_turbo_pct(uint64_t *outVal)
fd = open(POWER_SYSFILE_TURBO_PCT, O_RDONLY);
if (fd < 0) {
+ if (strerror_r(errno, errmsg, sizeof(errmsg)) != 0)
+ snprintf(errmsg, sizeof(errmsg), "Unknown error %d", errno);
POWER_LOG(ERR, "Error opening '%s': %s", POWER_SYSFILE_TURBO_PCT,
- strerror(errno));
+ errmsg);
return fd;
}
ret = read(fd, val, sizeof(val));
if (ret < 0) {
+ if (strerror_r(errno, errmsg, sizeof(errmsg)) != 0)
+ snprintf(errmsg, sizeof(errmsg), "Unknown error %d", errno);
POWER_LOG(ERR, "Error reading '%s': %s", POWER_SYSFILE_TURBO_PCT,
- strerror(errno));
+ errmsg);
goto out;
}
errno = 0;
*outVal = (uint64_t) strtol(val, &endptr, 10);
if (errno != 0 || (*endptr != 0 && *endptr != '\n')) {
+ if (strerror_r(errno, errmsg, sizeof(errmsg)) != 0)
+ snprintf(errmsg, sizeof(errmsg), "Unknown error %d", errno);
POWER_LOG(ERR, "Error converting str to digits, read from %s: %s",
- POWER_SYSFILE_TURBO_PCT, strerror(errno));
+ POWER_SYSFILE_TURBO_PCT, errmsg);
ret = -1;
goto out;
}
@@ -487,6 +487,7 @@ rte_power_ethdev_pmgmt_queue_enable(unsigned int lcore_id, uint16_t port_id,
uint16_t queue_id, enum rte_power_pmd_mgmt_type mode)
{
const union queue qdata = {.portid = port_id, .qid = queue_id};
+ char errmsg[RTE_STRERR_BUFSIZE];
struct pmd_core_cfg *lcore_cfg;
struct queue_list_entry *queue_cfg;
struct rte_eth_dev_info info;
@@ -574,8 +575,9 @@ rte_power_ethdev_pmgmt_queue_enable(unsigned int lcore_id, uint16_t port_id,
/* add this queue to the list */
ret = queue_list_add(lcore_cfg, &qdata);
if (ret < 0) {
- POWER_LOG(DEBUG, "Failed to add queue to list: %s",
- strerror(-ret));
+ if (strerror_r(-ret, errmsg, sizeof(errmsg)) != 0)
+ snprintf(errmsg, sizeof(errmsg), "Unknown error %d", -ret);
+ POWER_LOG(DEBUG, "Failed to add queue to list: %s", errmsg);
goto end;
}
/* new queue is always added last */