From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mx1.redhat.com (mx3-rdu2.redhat.com [66.187.233.73]) by dpdk.org (Postfix) with ESMTP id 92D727CFF for ; Thu, 19 Apr 2018 16:36:08 +0200 (CEST) Received: from smtp.corp.redhat.com (int-mx03.intmail.prod.int.rdu2.redhat.com [10.11.54.3]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 01983F8FD0; Thu, 19 Apr 2018 14:36:08 +0000 (UTC) Received: from ktraynor.remote.csb (ovpn-117-2.ams2.redhat.com [10.36.117.2]) by smtp.corp.redhat.com (Postfix) with ESMTP id 11A7410F1BFA; Thu, 19 Apr 2018 14:36:03 +0000 (UTC) To: Arnon Warshavsky , thomas@monjalon.net, anatoly.burakov@intel.com, wenzhuo.lu@intel.com, declan.doherty@intel.com, jerin.jacob@caviumnetworks.com, bruce.richardson@intel.com, ferruh.yigit@intel.com Cc: dev@dpdk.org References: <1524117669-25729-1-git-send-email-arnon@qwilt.com> <1524117669-25729-8-git-send-email-arnon@qwilt.com> From: Kevin Traynor Organization: Red Hat Message-ID: Date: Thu, 19 Apr 2018 15:36:03 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.2.0 MIME-Version: 1.0 In-Reply-To: <1524117669-25729-8-git-send-email-arnon@qwilt.com> Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 7bit X-Scanned-By: MIMEDefang 2.78 on 10.11.54.3 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.11.55.1]); Thu, 19 Apr 2018 14:36:08 +0000 (UTC) X-Greylist: inspected by milter-greylist-4.5.16 (mx1.redhat.com [10.11.55.1]); Thu, 19 Apr 2018 14:36:08 +0000 (UTC) for IP:'10.11.54.3' DOMAIN:'int-mx03.intmail.prod.int.rdu2.redhat.com' HELO:'smtp.corp.redhat.com' FROM:'ktraynor@redhat.com' RCPT:'' Subject: Re: [dpdk-dev] [PATCH v4 07/11] eal: replace rte_panic instances in hugepage_info X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 19 Apr 2018 14:36:08 -0000 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 > --- > 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, >