Short answer: yes. Here's an example of how to start a foreign thread taken
from the [golang dialect] g2 viewer plugin (*):

 

/* *INDENT-OFF* */

VLIB_REGISTER_THREAD (ego_g2_thread_reg, static) = {

  .name = "g2-thread",

  .short_name = "g2",

  .function = ego_g2_thread_fn,

  .use_pthreads = 1,

  .no_data_structure_clone = 1,

  .fixed_count = 1,

  .count = 1,

};

/* *INDENT-ON* */

 

In this case, we don't clone the required data structures to free a buffer.
If you remove the initialization ".no_data_structure_clone=1", you should be
all set. Check out ".use_pthreads = 1" in src/vlib/threads.c, etc. to see if
that's what you want. 

 

HTH... Dave 

 

(*) See https://github.com/dbarach/vpp-event-viewer.git if you're interested
in the g2 viewer.

 

 

From: vpp-dev@lists.fd.io <vpp-dev@lists.fd.io> On Behalf Of Simon Barber
via lists.fd.io
Sent: Friday, August 12, 2022 9:30 AM
To: vpp-dev@lists.fd.io
Subject: Re: [vpp-dev] Free a vlib buffer from out a VPP worker thread

 

Dave,

 

Does VPP support the concept of  additional  threads that are spawned from
within a  plugin, lets call  them 'external threads',  and the  allocation
of a  vlib_main_t / vlib_buffer_pool_thread_t for these external threads, or
should all interactions such as freeing a buffer, be performed from within
the  worker thread that the buffer was originally presented to the plugin
on.. 

 

Cheers

 

Simon

 

 

 

 

From: vpp-dev@lists.fd.io <mailto:vpp-dev@lists.fd.io>  <vpp-dev@lists.fd.io
<mailto:vpp-dev@lists.fd.io> > On Behalf Of Dave Barach via lists.fd.io
Sent: Thursday, August 11, 2022 12:07 PM
To: vpp-dev@lists.fd.io <mailto:vpp-dev@lists.fd.io> 
Subject: [EXTERNAL] Re: [vpp-dev] Free from a vlib buffer from out a VPP
worker thread

 

        
You don't often get email from vpp=barachs....@lists.fd.io
<mailto:vpp=barachs....@lists.fd.io> . Learn why this is important
<https://aka.ms/LearnAboutSenderIdentification> 

        

As long as the thread has an associated vlib_main_t /
vlib_buffer_pool_thread_t not accidentally shared with another thread, you
shouldn't have any problems... 

 

FWIW... Dave

 

From: vpp-dev@lists.fd.io <mailto:vpp-dev@lists.fd.io>  <vpp-dev@lists.fd.io
<mailto:vpp-dev@lists.fd.io> > On Behalf Of Simon Barber via lists.fd.io
Sent: Thursday, August 11, 2022 6:42 AM
To: vpp-dev@lists.fd.io <mailto:vpp-dev@lists.fd.io> 
Subject: [vpp-dev] Free from a vlib buffer from out a VPP worker thread

 

Hi,

 

Does anybody anticipate any issues calling  vlib_buffer_free_one to free a
buffer when running on a thread that is not registered as a VPP worker
thread.

 

Initial testing indicates that it works.

 

Regards

 

Simon

 

 

-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#21798): https://lists.fd.io/g/vpp-dev/message/21798
Mute This Topic: https://lists.fd.io/mt/92979452/21656
Group Owner: vpp-dev+ow...@lists.fd.io
Unsubscribe: https://lists.fd.io/g/vpp-dev/leave/1480452/21656/631435203/xyzzy 
[arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to