Thanks Kevin Will address that On Thu, Apr 19, 2018 at 5:36 PM, Kevin Traynor <ktray...@redhat.com> wrote:
> On 04/19/2018 07:01 AM, Arnon Warshavsky wrote: > > replace panic calls with log and retrun value. > > > > v4 > > static size calculation function changed to return success/fail code > > in addition to filling the size result. > > > > fyi - this patch doesn't apply on master branch without fuzz > > > Signed-off-by: Arnon Warshavsky <ar...@qwilt.com> > > --- > > lib/librte_eal/linuxapp/eal/eal_hugepage_info.c | 32 > ++++++++++++++++--------- > > 1 file changed, 21 insertions(+), 11 deletions(-) > > > > diff --git a/lib/librte_eal/linuxapp/eal/eal_hugepage_info.c > b/lib/librte_eal/linuxapp/eal/eal_hugepage_info.c > > index fb4b667..debae32 100644 > > --- a/lib/librte_eal/linuxapp/eal/eal_hugepage_info.c > > +++ b/lib/librte_eal/linuxapp/eal/eal_hugepage_info.c > > @@ -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 const char * > > @@ -191,11 +198,14 @@ > > 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(); > > + if ((default_size == 0) && (get_default_hp_size(&default_size) != > 0)) > > + return NULL; > > > > while (fgets(buf, sizeof(buf), fd)){ > > if (rte_strsplit(buf, sizeof(buf), splitstr, > _FIELDNAME_MAX, > > > > -- *Arnon Warshavsky* *Qwilt | work: +972-72-2221634 | mobile: +972-50-8583058 | ar...@qwilt.com <ar...@qwilt.com>*