Do not call vlib_worker_thread_barrier_sync() on a worker thread.

From: vpp-dev@lists.fd.io <vpp-dev@lists.fd.io> On Behalf Of ais...@gmail.com
Sent: Thursday, July 9, 2020 1:44 AM
To: vpp-dev@lists.fd.io
Subject: [vpp-dev] vpp-20.01/src/vlib/threads.c:1408 
(vlib_worker_thread_barrier_sync_int) assertion `vlib_get_thread_index () == 0'

Hi,
I am using vpp20.01 on multicore env running on a VM and getting a crash:
(vlib_worker_thread_barrier_sync_int) assertion `vlib_get_thread_index () == 0' 
fails

Startup.conf snippet:
cpu {
  main-core 0
  corelist-workers 1
}

In code I am trying something like this:
clib_error_t *
clients_connect (vlib_main_t * vm, u32 n_clients, char *uri)
{

  vnet_connect_args_t _a, *a = &_a;
  int i, rv;

  clib_memset (a, 0, sizeof (*a));

  for (i = 0; i < n_clients; i++)
    {
      a->uri = (char *) uri;
      a->api_context = i;
      a->app_index = my_app_index;

      vlib_worker_thread_barrier_sync (vm);
      if ((rv = vnet_connect_uri (a)))
    {
      vlib_worker_thread_barrier_release (vm);
      return clib_error_return (0, "connect returned: %d", rv);
    }
      vlib_worker_thread_barrier_release (vm);
    }
  return 0;
}

Can someone let me know why the assert is failing?

Regards,
Aishwarya
-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.

View/Reply Online (#16922): https://lists.fd.io/g/vpp-dev/message/16922
Mute This Topic: https://lists.fd.io/mt/75392381/21656
Group Owner: vpp-dev+ow...@lists.fd.io
Unsubscribe: https://lists.fd.io/g/vpp-dev/unsub  [arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to