[ovs-dev] [PATCH] dpif-netdev: Add core id in the PMD thread name.

Eelco Chaudron echaudro at redhat.com
Tue Aug 13 16:46:36 UTC 2019



On 13 Aug 2019, at 18:37, Ilya Maximets wrote:

> This is highly useful to see on which core PMD is running by
> only looking at the thread name. Thread Id still allows to
> distinguish different threads running on the same core over the time:
>
>    |dpif_netdev(pmd-c10/id:53)|DBG|Creating 2. subtable <...>
>    |dpif_netdev(pmd-c10/id:53)|DBG|flow_add: <...>, actions:2
>    |dpif_netdev(pmd-c09/id:70)|DBG|Core 9 processing port <..>
>
> In gdb, top or any other utility it's useful to quickly catch up
> needed thread without parsing logs, memory or matching threads by port
> names they're handling.
>
> Signed-off-by: Ilya Maximets <i.maximets at samsung.com>
> ---
>  lib/dpif-netdev.c | 9 ++++++++-
>  1 file changed, 8 insertions(+), 1 deletion(-)
>
> diff --git a/lib/dpif-netdev.c b/lib/dpif-netdev.c
> index d0a1c58ad..34ba03836 100644
> --- a/lib/dpif-netdev.c
> +++ b/lib/dpif-netdev.c
> @@ -4735,9 +4735,16 @@ reconfigure_pmd_threads(struct dp_netdev *dp)
>      FOR_EACH_CORE_ON_DUMP(core, pmd_cores) {
>          pmd = dp_netdev_get_pmd(dp, core->core_id);
>          if (!pmd) {
> +            struct ds name = DS_EMPTY_INITIALIZER;
> +
>              pmd = xzalloc(sizeof *pmd);
>              dp_netdev_configure_pmd(pmd, dp, core->core_id, 
> core->numa_id);
> -            pmd->thread = ovs_thread_create("pmd", pmd_thread_main, 
> pmd);
> +
> +            ds_put_format(&name, "pmd-c%02d/id:", core->core_id);

This is a really good idea :) One remark should we make it %03d?

> +            pmd->thread = ovs_thread_create(ds_cstr(&name),
> +                                            pmd_thread_main, pmd);
> +            ds_destroy(&name);
> +
>              VLOG_INFO("PMD thread on numa_id: %d, core id: %2d 
> created.",
>                        pmd->numa_id, pmd->core_id);
>              changed = true;
> -- 
> 2.17.1


More information about the dev mailing list