[dpdk-dev,v7,07/11] eal: replace rte_panic instances in hugepage_info
Checks
Commit Message
replace panic calls with log and return value.
Signed-off-by: Arnon Warshavsky <arnon@qwilt.com>
---
lib/librte_eal/linuxapp/eal/eal_hugepage_info.c | 37 +++++++++++++++++--------
1 file changed, 26 insertions(+), 11 deletions(-)
Comments
On 24-Apr-18 11:16 PM, Arnon Warshavsky wrote:
> replace panic calls with log and return value.
>
> Signed-off-by: Arnon Warshavsky <arnon@qwilt.com>
> ---
Acked-by: Anatoly Burakov <anatoly.burakov@intel.com>
@@ -145,8 +145,8 @@
return num_pages;
}
-static uint64_t
-get_default_hp_size(void)
+static int
+get_default_hp_size(uint64_t *result)
{
const char proc_meminfo[] = "/proc/meminfo";
const char str_hugepagesz[] = "Hugepagesize:";
@@ -155,8 +155,11 @@
unsigned long long size = 0;
FILE *fd = fopen(proc_meminfo, "r");
- if (fd == NULL)
- rte_panic("Cannot open %s\n", proc_meminfo);
+ if (fd == NULL) {
+ RTE_LOG(CRIT, EAL, "%s(): Cannot open %s\n",
+ __func__, proc_meminfo);
+ return -1;
+ }
while(fgets(buffer, sizeof(buffer), fd)){
if (strncmp(buffer, str_hugepagesz, hugepagesz_len) == 0){
size = rte_str_to_size(&buffer[hugepagesz_len]);
@@ -164,9 +167,13 @@
}
}
fclose(fd);
- if (size == 0)
- rte_panic("Cannot get default hugepage size from %s\n", proc_meminfo);
- return size;
+ if (size == 0) {
+ RTE_LOG(CRIT, EAL, "%s(): Cannot get default hugepage size from %s\n",
+ __func__, proc_meminfo);
+ return -1;
+ }
+ *result = size;
+ return 0;
}
static int
@@ -191,11 +198,19 @@
int retval = -1;
FILE *fd = fopen(proc_mounts, "r");
- if (fd == NULL)
- rte_panic("Cannot open %s\n", proc_mounts);
+ if (fd == NULL) {
+ RTE_LOG(CRIT, EAL, "%s(): Cannot open %s\n",
+ __func__, proc_mounts);
+ return -ENOENT;
+ }
- if (default_size == 0)
- default_size = get_default_hp_size();
+ if (default_size == 0) {
+ retval = get_default_hp_size(&default_size);
+ if (retval) {
+ fclose(fd);
+ return retval;
+ }
+ }
while (fgets(buf, sizeof(buf), fd)){
if (rte_strsplit(buf, sizeof(buf), splitstr, _FIELDNAME_MAX,