From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <anatoly.burakov@intel.com>
Received: from mga02.intel.com (mga02.intel.com [134.134.136.20])
 by dpdk.org (Postfix) with ESMTP id 49BECAAD3
 for <dev@dpdk.org>; Mon, 16 Apr 2018 13:30:04 +0200 (CEST)
X-Amp-Result: SKIPPED(no attachment in message)
X-Amp-File-Uploaded: False
Received: from orsmga001.jf.intel.com ([10.7.209.18])
 by orsmga101.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384;
 16 Apr 2018 04:30:04 -0700
X-ExtLoop1: 1
X-IronPort-AV: E=Sophos;i="5.48,459,1517904000"; d="scan'208";a="48239754"
Received: from aburakov-mobl.ger.corp.intel.com (HELO [10.237.220.128])
 ([10.237.220.128])
 by orsmga001.jf.intel.com with ESMTP; 16 Apr 2018 04:30:01 -0700
To: Arnon Warshavsky <arnon@qwilt.com>, thomas@monjalon.net,
 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: <1523644244-17511-1-git-send-email-arnon@qwilt.com>
 <1523644244-17511-9-git-send-email-arnon@qwilt.com>
From: "Burakov, Anatoly" <anatoly.burakov@intel.com>
Message-ID: <c06f7141-da4b-ecce-14b8-558292100733@intel.com>
Date: Mon, 16 Apr 2018 12:30:01 +0100
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:52.0) Gecko/20100101
 Thunderbird/52.7.0
MIME-Version: 1.0
In-Reply-To: <1523644244-17511-9-git-send-email-arnon@qwilt.com>
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Language: en-US
Content-Transfer-Encoding: 7bit
Subject: Re: [dpdk-dev] [PATCH v3 08/13] 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 <dev.dpdk.org>
List-Unsubscribe: <https://dpdk.org/ml/options/dev>,
 <mailto:dev-request@dpdk.org?subject=unsubscribe>
List-Archive: <http://dpdk.org/ml/archives/dev/>
List-Post: <mailto:dev@dpdk.org>
List-Help: <mailto:dev-request@dpdk.org?subject=help>
List-Subscribe: <https://dpdk.org/ml/listinfo/dev>,
 <mailto:dev-request@dpdk.org?subject=subscribe>
X-List-Received-Date: Mon, 16 Apr 2018 11:30:05 -0000

On 13-Apr-18 7:30 PM, Arnon Warshavsky wrote:
> replace panic calls with log and retrun value.
> 
> Signed-off-by: Arnon Warshavsky <arnon@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