Compare commits

...

2 Commits

Author SHA1 Message Date
Florin Coras
c1931b2f09 vcl: grab wrk create lock sooner
Type: fix

Signed-off-by: Florin Coras <fcoras@cisco.com>
Change-Id: I0faeef20c57486564122e39f01f31c8c45f38014
(cherry picked from commit 94fef3e67662c6a92e32164d8db6fcf4bc83e79e)
2021-09-24 16:37:13 +00:00
Andrew Yourtchenko
fd9d936b3c misc: Initial changes for stable/2110 branch
Change-Id: Ib3bf8f46a987324be4c7f016b96027558e9d58ef
Type: docs
Signed-off-by: Andrew Yourtchenko <ayourtch@gmail.com>
2021-09-23 14:52:28 +02:00
2 changed files with 7 additions and 3 deletions

View File

@ -2,3 +2,4 @@
host=gerrit.fd.io
port=29418
project=vpp
defaultbranch=stable/2110

View File

@ -167,16 +167,19 @@ vcl_worker_alloc_and_init ()
if (vcl_get_worker_index () != ~0)
return 0;
/* Grab lock before selecting mem thread index */
clib_spinlock_lock (&vcm->workers_lock);
/* Use separate heap map entry for worker */
clib_mem_set_thread_index ();
if (pool_elts (vcm->workers) == vcm->cfg.max_workers)
{
VDBG (0, "max-workers %u limit reached", vcm->cfg.max_workers);
return 0;
wrk = 0;
goto done;
}
clib_spinlock_lock (&vcm->workers_lock);
wrk = vcl_worker_alloc ();
vcl_set_worker_index (wrk->wrk_index);
wrk->thread_id = pthread_self ();
@ -203,9 +206,9 @@ vcl_worker_alloc_and_init ()
vec_reset_length (wrk->mq_msg_vector);
vec_validate (wrk->unhandled_evts_vector, 128);
vec_reset_length (wrk->unhandled_evts_vector);
clib_spinlock_unlock (&vcm->workers_lock);
done:
clib_spinlock_unlock (&vcm->workers_lock);
return wrk;
}