[dpdk-dev,v3,08/13] eal: replace rte_panic instances in hugepage_info
Checks
Commit Message
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(-)
Comments
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
Will do
On Mon, Apr 16, 2018 at 2:30 PM, Burakov, Anatoly <anatoly.burakov@intel.com
> wrote:
> 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
>
@@ -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;
}
@@ -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();