Re: [dpdk-dev] [PATCH v3 08/13] eal: replace rte_panic instances in hugepage_info

2018-04-16 Thread Arnon Warshavsky
Thanks Anatoly
Will do

On Mon, Apr 16, 2018 at 2:30 PM, Burakov, Anatoly  wrote:

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



-- 

*Arnon Warshavsky*
*Qwilt | work: +972-72-2221634 | mobile: +972-50-8583058 | ar...@qwilt.com
*


Re: [dpdk-dev] [PATCH v3 08/13] eal: replace rte_panic instances in hugepage_info

2018-04-16 Thread Burakov, Anatoly

On 13-Apr-18 7:30 PM, Arnon Warshavsky wrote:

replace panic calls with log and retrun value.

Signed-off-by: Arnon Warshavsky 
---
  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