[PATCH v14 5/6] memarea: support dump API
Burakov, Anatoly
anatoly.burakov at intel.com
Thu Jun 22 17:55:47 CEST 2023
On 2/9/2023 6:36 AM, Chengwen Feng wrote:
> This patch supports rte_memarea_dump() API which could be used for
> debug.
>
> Signed-off-by: Chengwen Feng <fengchengwen at huawei.com>
> Reviewed-by: Dongdong Liu <liudongdong3 at huawei.com>
> Acked-by: Morten Brørup <mb at smartsharesystems.com>
> ---
Provisionally,
Acked-by: Anatoly Burakov <anatoly.burakov at intel.com>
As long as below is addressed.
> +static void
> +memarea_dump_objects_detail(struct rte_memarea *ma, FILE *f)
> +{
> + struct memarea_objhdr *hdr;
> + size_t offset;
> + void *ptr;
> +
> + fprintf(f, " objects:\n");
> + TAILQ_FOREACH(hdr, &ma->obj_list, obj_next) {
> + if (hdr == ma->guard_hdr)
> + break;
> + memarea_check_cookie(ma, hdr, 2);
> + ptr = RTE_PTR_ADD(hdr, sizeof(struct memarea_objhdr));
> + offset = RTE_PTR_DIFF(ptr, ma->area_base);
> +#ifdef RTE_LIBRTE_MEMAREA_DEBUG
> + fprintf(f, " %p off: 0x%zx size: 0x%zx %s\n",
> + ptr, offset, MEMAREA_OBJECT_GET_SIZE(hdr),
> + MEMAREA_OBJECT_IS_ALLOCATED(hdr) ? "allocated" : "");
> +#else
> + fprintf(f, " off: 0x%zx size: 0x%zx %s\n",
> + offset, MEMAREA_OBJECT_GET_SIZE(hdr),
> + MEMAREA_OBJECT_IS_ALLOCATED(hdr) ? "allocated" : "");
> +#endif
> + }.
> +}
> +
> +int
> +rte_memarea_dump(struct rte_memarea *ma, FILE *f, bool dump_all)
> +{
> + if (ma == NULL || f == NULL)
> + return -EINVAL;
I feel like the API is inconsistent in this way. I would suggest picking
a method of error reporting, and sticking with it. I would suggest
returning 0/-1 or ptr/NULL with rte_errno set to indicate error, as that
is how most libraries in DPDK behave.
--
Thanks,
Anatoly
More information about the dev
mailing list