iceoryx icon indicating copy to clipboard operation
iceoryx copied to clipboard

Expose the MemPoolInfo of matching memory pools to typed endpoints

Open gpalmer-latai opened this issue 8 months ago • 50 comments

Brief feature description

I would like the ability to somehow query the info of a particular memory pool that will be used for a comms endpoint's messages.

Detailed information

A full proof of concept is linked below:

https://github.com/eclipse-iceoryx/iceoryx/compare/master...gpalmer-latai:iceoryx:gpalmer/expose_mempool

The basic gist is that I've added a m_basePtr to the MemPoolInfo struct to inform consumers about where the actual memory pool is located. Then I've exposed some APIs to be able to lift that information all the way out to a typed publisher.

Alternatives Considered

Instead of lifting out the memory pool information through the layers of port info, it might be nice/favorable if we could

  1. Have more control over which comms endpoints use which memory pools by e.g. adding service info constraints to the memory pool config entries in the roudi config (only these publishers/subscribers use this memory pool), as well as "memory constraints" (the memory type of this pool is "pinned")
  2. Being able to query the runtime/roudi directly for information about a particular memory pool. I know there is some infrastructure here for introspection, but I'm not sure how I could use that to find the particular memory pool of interest.

gpalmer-latai avatar Nov 14 '23 14:11 gpalmer-latai