[V5,5/8] mem: possible data truncation and conversion error
Checks
Commit Message
The 'u32' and 'u64' data can not assigned to 'int' type variable.
They need to use the 'u64' APIs to add.
Fixes: e6732d0d6e26 ("mem: add telemetry infos")
Cc: stable@dpdk.org
Signed-off-by: Huisong Li <lihuisong@huawei.com>
Acked-by: Morten Brørup <mb@smartsharesystems.com>
Acked-by: Chengwen Feng <fengchengwen@huawei.com>
---
lib/eal/common/eal_common_memory.c | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
Comments
> From: Huisong Li [mailto:lihuisong@huawei.com]
> Sent: Wednesday, 14 December 2022 13.33
>
> The 'u32' and 'u64' data can not assigned to 'int' type variable.
> They need to use the 'u64' APIs to add.
>
> Fixes: e6732d0d6e26 ("mem: add telemetry infos")
> Cc: stable@dpdk.org
>
> Signed-off-by: Huisong Li <lihuisong@huawei.com>
> Acked-by: Morten Brørup <mb@smartsharesystems.com>
> Acked-by: Chengwen Feng <fengchengwen@huawei.com>
> ---
> lib/eal/common/eal_common_memory.c | 10 +++++-----
> 1 file changed, 5 insertions(+), 5 deletions(-)
>
> diff --git a/lib/eal/common/eal_common_memory.c
> b/lib/eal/common/eal_common_memory.c
> index 688dc615d7..8e427bf4b4 100644
> --- a/lib/eal/common/eal_common_memory.c
> +++ b/lib/eal/common/eal_common_memory.c
> @@ -1139,7 +1139,7 @@ handle_eal_heap_info_request(const char *cmd
> __rte_unused, const char *params,
> malloc_heap_get_stats(heap, &sock_stats);
>
> rte_tel_data_start_dict(d);
> - rte_tel_data_add_dict_int(d, "Head id", heap_id);
> + rte_tel_data_add_dict_u64(d, "Head id", heap_id);
Consider: "Head id" -> "Heap_id"
> rte_tel_data_add_dict_string(d, "Name", heap->name);
> rte_tel_data_add_dict_u64(d, "Heap_size",
> sock_stats.heap_totalsz_bytes);
> @@ -1201,13 +1201,13 @@ handle_eal_memzone_info_request(const char *cmd
> __rte_unused,
> mz = rte_fbarray_get(&mcfg->memzones, mz_idx);
>
> rte_tel_data_start_dict(d);
> - rte_tel_data_add_dict_int(d, "Zone", mz_idx);
> + rte_tel_data_add_dict_u64(d, "Zone", mz_idx);
> rte_tel_data_add_dict_string(d, "Name", mz->name);
> - rte_tel_data_add_dict_int(d, "Length", mz->len);
> + rte_tel_data_add_dict_u64(d, "Length", mz->len);
> snprintf(addr, ADDR_STR, "%p", mz->addr);
> rte_tel_data_add_dict_string(d, "Address", addr);
> rte_tel_data_add_dict_int(d, "Socket", mz->socket_id);
> - rte_tel_data_add_dict_int(d, "Flags", mz->flags);
> + rte_tel_data_add_dict_u64(d, "Flags", mz->flags);
>
> /* go through each page occupied by this memzone */
> msl = rte_mem_virt2memseg_list(mz->addr);
> @@ -1222,7 +1222,7 @@ handle_eal_memzone_info_request(const char *cmd
> __rte_unused,
> ms_idx = RTE_PTR_DIFF(mz->addr, msl->base_va) / page_sz;
> ms = rte_fbarray_get(&msl->memseg_arr, ms_idx);
>
> - rte_tel_data_add_dict_int(d, "Hugepage_size", page_sz);
> + rte_tel_data_add_dict_u64(d, "Hugepage_size", page_sz);
> snprintf(addr, ADDR_STR, "%p", ms->addr);
> rte_tel_data_add_dict_string(d, "Hugepage_base", addr);
>
> --
> 2.33.0
>
在 2022/12/14 21:00, Morten Brørup 写道:
>> From: Huisong Li [mailto:lihuisong@huawei.com]
>> Sent: Wednesday, 14 December 2022 13.33
>>
>> The 'u32' and 'u64' data can not assigned to 'int' type variable.
>> They need to use the 'u64' APIs to add.
>>
>> Fixes: e6732d0d6e26 ("mem: add telemetry infos")
>> Cc: stable@dpdk.org
>>
>> Signed-off-by: Huisong Li <lihuisong@huawei.com>
>> Acked-by: Morten Brørup <mb@smartsharesystems.com>
>> Acked-by: Chengwen Feng <fengchengwen@huawei.com>
>> ---
>> lib/eal/common/eal_common_memory.c | 10 +++++-----
>> 1 file changed, 5 insertions(+), 5 deletions(-)
>>
>> diff --git a/lib/eal/common/eal_common_memory.c
>> b/lib/eal/common/eal_common_memory.c
>> index 688dc615d7..8e427bf4b4 100644
>> --- a/lib/eal/common/eal_common_memory.c
>> +++ b/lib/eal/common/eal_common_memory.c
>> @@ -1139,7 +1139,7 @@ handle_eal_heap_info_request(const char *cmd
>> __rte_unused, const char *params,
>> malloc_heap_get_stats(heap, &sock_stats);
>>
>> rte_tel_data_start_dict(d);
>> - rte_tel_data_add_dict_int(d, "Head id", heap_id);
>> + rte_tel_data_add_dict_u64(d, "Head id", heap_id);
> Consider: "Head id" -> "Heap_id"
Need to do this in this patch? Maybe it's better to do this in a new
patch. What do you think?
>
>
>> rte_tel_data_add_dict_string(d, "Name", heap->name);
>> rte_tel_data_add_dict_u64(d, "Heap_size",
>> sock_stats.heap_totalsz_bytes);
>> @@ -1201,13 +1201,13 @@ handle_eal_memzone_info_request(const char *cmd
>> __rte_unused,
>> mz = rte_fbarray_get(&mcfg->memzones, mz_idx);
>>
>> rte_tel_data_start_dict(d);
>> - rte_tel_data_add_dict_int(d, "Zone", mz_idx);
>> + rte_tel_data_add_dict_u64(d, "Zone", mz_idx);
>> rte_tel_data_add_dict_string(d, "Name", mz->name);
>> - rte_tel_data_add_dict_int(d, "Length", mz->len);
>> + rte_tel_data_add_dict_u64(d, "Length", mz->len);
>> snprintf(addr, ADDR_STR, "%p", mz->addr);
>> rte_tel_data_add_dict_string(d, "Address", addr);
>> rte_tel_data_add_dict_int(d, "Socket", mz->socket_id);
>> - rte_tel_data_add_dict_int(d, "Flags", mz->flags);
>> + rte_tel_data_add_dict_u64(d, "Flags", mz->flags);
>>
>> /* go through each page occupied by this memzone */
>> msl = rte_mem_virt2memseg_list(mz->addr);
>> @@ -1222,7 +1222,7 @@ handle_eal_memzone_info_request(const char *cmd
>> __rte_unused,
>> ms_idx = RTE_PTR_DIFF(mz->addr, msl->base_va) / page_sz;
>> ms = rte_fbarray_get(&msl->memseg_arr, ms_idx);
>>
>> - rte_tel_data_add_dict_int(d, "Hugepage_size", page_sz);
>> + rte_tel_data_add_dict_u64(d, "Hugepage_size", page_sz);
>> snprintf(addr, ADDR_STR, "%p", ms->addr);
>> rte_tel_data_add_dict_string(d, "Hugepage_base", addr);
>>
>> --
>> 2.33.0
>>
> From: lihuisong (C) [mailto:lihuisong@huawei.com]
> Sent: Thursday, 15 December 2022 02.12
>
> 在 2022/12/14 21:00, Morten Brørup 写道:
> >> From: Huisong Li [mailto:lihuisong@huawei.com]
> >> Sent: Wednesday, 14 December 2022 13.33
> >>
> >> --- a/lib/eal/common/eal_common_memory.c
> >> +++ b/lib/eal/common/eal_common_memory.c
> >> @@ -1139,7 +1139,7 @@ handle_eal_heap_info_request(const char *cmd
> >> __rte_unused, const char *params,
> >> malloc_heap_get_stats(heap, &sock_stats);
> >>
> >> rte_tel_data_start_dict(d);
> >> - rte_tel_data_add_dict_int(d, "Head id", heap_id);
> >> + rte_tel_data_add_dict_u64(d, "Head id", heap_id);
> > Consider: "Head id" -> "Heap_id"
> Need to do this in this patch? Maybe it's better to do this in a new
> patch. What do you think?
You are right. It belongs in a different patch, not related to this series.
在 2022/12/15 15:04, Morten Brørup 写道:
>> From: lihuisong (C) [mailto:lihuisong@huawei.com]
>> Sent: Thursday, 15 December 2022 02.12
>>
>> 在 2022/12/14 21:00, Morten Brørup 写道:
>>>> From: Huisong Li [mailto:lihuisong@huawei.com]
>>>> Sent: Wednesday, 14 December 2022 13.33
>>>>
>>>> --- a/lib/eal/common/eal_common_memory.c
>>>> +++ b/lib/eal/common/eal_common_memory.c
>>>> @@ -1139,7 +1139,7 @@ handle_eal_heap_info_request(const char *cmd
>>>> __rte_unused, const char *params,
>>>> malloc_heap_get_stats(heap, &sock_stats);
>>>>
>>>> rte_tel_data_start_dict(d);
>>>> - rte_tel_data_add_dict_int(d, "Head id", heap_id);
>>>> + rte_tel_data_add_dict_u64(d, "Head id", heap_id);
>>> Consider: "Head id" -> "Heap_id"
>> Need to do this in this patch? Maybe it's better to do this in a new
>> patch. What do you think?
> You are right. It belongs in a different patch, not related to this series.
Yes, it isn't related to this series. I'll fix it after this series.
>
@@ -1139,7 +1139,7 @@ handle_eal_heap_info_request(const char *cmd __rte_unused, const char *params,
malloc_heap_get_stats(heap, &sock_stats);
rte_tel_data_start_dict(d);
- rte_tel_data_add_dict_int(d, "Head id", heap_id);
+ rte_tel_data_add_dict_u64(d, "Head id", heap_id);
rte_tel_data_add_dict_string(d, "Name", heap->name);
rte_tel_data_add_dict_u64(d, "Heap_size",
sock_stats.heap_totalsz_bytes);
@@ -1201,13 +1201,13 @@ handle_eal_memzone_info_request(const char *cmd __rte_unused,
mz = rte_fbarray_get(&mcfg->memzones, mz_idx);
rte_tel_data_start_dict(d);
- rte_tel_data_add_dict_int(d, "Zone", mz_idx);
+ rte_tel_data_add_dict_u64(d, "Zone", mz_idx);
rte_tel_data_add_dict_string(d, "Name", mz->name);
- rte_tel_data_add_dict_int(d, "Length", mz->len);
+ rte_tel_data_add_dict_u64(d, "Length", mz->len);
snprintf(addr, ADDR_STR, "%p", mz->addr);
rte_tel_data_add_dict_string(d, "Address", addr);
rte_tel_data_add_dict_int(d, "Socket", mz->socket_id);
- rte_tel_data_add_dict_int(d, "Flags", mz->flags);
+ rte_tel_data_add_dict_u64(d, "Flags", mz->flags);
/* go through each page occupied by this memzone */
msl = rte_mem_virt2memseg_list(mz->addr);
@@ -1222,7 +1222,7 @@ handle_eal_memzone_info_request(const char *cmd __rte_unused,
ms_idx = RTE_PTR_DIFF(mz->addr, msl->base_va) / page_sz;
ms = rte_fbarray_get(&msl->memseg_arr, ms_idx);
- rte_tel_data_add_dict_int(d, "Hugepage_size", page_sz);
+ rte_tel_data_add_dict_u64(d, "Hugepage_size", page_sz);
snprintf(addr, ADDR_STR, "%p", ms->addr);
rte_tel_data_add_dict_string(d, "Hugepage_base", addr);