Skip to content

Documentation for manually managing lcores #1179

@cwhite102

Description

@cwhite102

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:

  1. In the MTL init, how many lcores should we provide to a given process? (is it related to the # of streams?)

  2. What tasks/threads run on these lcores? We see the first core in the list spinning at 100% as expected, what about the others?

  3. 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?

  4. 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

Metadata

Metadata

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions