From the developer documentation [0]:

"Standard programming error: memorize a pointer to the ith element of a vector, and then expand the vector. Vectors expand by 3/2, so such code may appear to work for a period of time. Correct code almost always memorizes vector indices which are invariant across reallocations."

"Pools
Vppinfra pools combine vectors and bitmaps to rapidly allocate and free fixed-size data structures with independent lifetimes. Pools are perfect for allocating per-session structures."

Hope this helps,
-daw-

[0] https://fdio-vpp.readthedocs.io/en/latest/gettingstarted/developers/infrastructure.html

On 5/6/2020 2:22 PM, Satya Murthy wrote:
Hi,

We are seeing some issue in our plugin that seems to caused by the change of pointer for a pool element.

The scenario is as below. Can you please let us know , if this can really occur.

1. We have multiple workers
2. We have one global pool of  custom-structures ( this is a non-fixed pool)
3. This global pool is protected by a lock for addition and deletion.
4. However, it is not protected for reading. So, all workers refer read entries from this pool by using pool_elt_at_index() 5. All the workers keep on adding and deleting elements in this pool by taking lock. 6. What we are seeing is, the pointer returned by pool_elt_at_index(global_pool, index)
is getting changed in between and causing some issue in our logic.

Couple of questions we have is :
1 ) If a pool element is getting used (not-free-element),  Until that element is put back again into the pool, can we assume that the address of the element remain same and will not get  chagned by pool resizing.

2) Having pools that spans across threads will cause any issues like this while reading the elements ( though we protect the pool for add/del of elements using a spin lock) ?

--
Thanks & Regards,
Murthy



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

View/Reply Online (#16256): https://lists.fd.io/g/vpp-dev/message/16256
Mute This Topic: https://lists.fd.io/mt/74034826/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