-
Notifications
You must be signed in to change notification settings - Fork 70
Description
This is a request for information (and perhaps updating the official docs).
We are building a system with multiple independent processes, each using MTL for Rx,Tx,or both.
We prefer not to use the MTL manager as it's a single point of failure and not deterministic.
Our current approach is to manage the MTL processes (lcores / affinity) ourselves.
Questions we have:
-
In the MTL init, how many lcores should we provide to a given process? (is it related to the # of streams?)
-
What tasks/threads run on these lcores? We see the first core in the list spinning at 100% as expected, what about the others?
-
We see a second init parameter called 'main_lcore'. What is the purpose of this versus the lcores parameter? The docs recommend leaving it at zero, but should we be setting this too for our use-case? If so, should it be a value that is listed in the lcores, or distinct from that set?
-
As mentioned in issue 1176 - is there a shared memory data structure that the MTL processes are using for lcore coordination? If so, is there a way to turn that off since we are allocating a unique set of lcores to each process already?
These are the main questions we have at this time. Any other supporting information is also welcome!
Thanks