On 13-Apr-18 7:30 PM, Arnon Warshavsky wrote:
replace panic calls with log and retrun value.
Signed-off-by: Arnon Warshavsky <ar...@qwilt.com>
---
lib/librte_eal/linuxapp/eal/eal_hugepage_info.c | 21 +++++++++++++++------
1 file changed, 15 insertions(+), 6 deletions(-)
diff --git a/lib/librte_eal/linuxapp/eal/eal_hugepage_info.c
b/lib/librte_eal/linuxapp/eal/eal_hugepage_info.c
index 8bbf771..43af5b5 100644
--- a/lib/librte_eal/linuxapp/eal/eal_hugepage_info.c
+++ b/lib/librte_eal/linuxapp/eal/eal_hugepage_info.c
@@ -80,8 +80,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 0;
+ }
while(fgets(buffer, sizeof(buffer), fd)){
if (strncmp(buffer, str_hugepagesz, hugepagesz_len) == 0){
size = rte_str_to_size(&buffer[hugepagesz_len]);
@@ -89,8 +92,11 @@
}
}
fclose(fd);
- if (size == 0)
- rte_panic("Cannot get default hugepage size from %s\n",
proc_meminfo);
+ if (size == 0) {
+ RTE_LOG(CRIT, EAL, "%s(): Cannot get default hugepage size from
%s\n",
+ __func__, proc_meminfo);
+ return 0;
+ }
return size;
If returning default hugepage size of 0 is now a possibility, the
calling code needs to be able to handle that. Perhaps rewrite it as
returning int, and accepting pointer to pagesz? e.g.
static int get_default_hp_size(uint64_t *page_sz)
and fix the code below to handle error in reading default page size?
}
@@ -116,8 +122,11 @@
char *retval = NULL;
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 NULL;
+ }
if (default_size == 0)
default_size = get_default_hp_size();
--
Thanks,
Anatoly