-
Notifications
You must be signed in to change notification settings - Fork 1.5k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
improve CPU cores affinity to NUMA nodes v7 #12316
base: master
Are you sure you want to change the base?
Conversation
This work let's you set threading settings either: - automatically - to let Suricata decide what cores from what NUMA is better for the given interface - manually - you can per-interface configure threading settings This requires hwloc-devel / hwloc-dev to be installed Ticket: 7036
Part of Ticket 2321 work to remove unnecessary lists from the config file. Ticket: 2321
ERROR: ERROR: QA failed on ASAN_TLPR1_cfg. Pipeline 24043 |
This breaks compatibilty with a previous
I do appreciate the cleanup as lists should have never been used here, but at the very list Suricata shouldn't fail to start. I guess we need to decide:
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Determine backwards compatibilty strategy and provide upgrade documentation.
Followup of #11706
Redmine ticket:
https://redmine.openinfosecfoundation.org/issues/7036
This work allows more precise thread assignment and it is done either
This works with AF-PACKET and DPDK (and should with other capture modes as well). The primary target is workers runmode but it also works with autofp receive threads.
To try this PR:
Describe changes:
v7:
v6
On YAML changes:
I tried other YAML designs such as:
Specifying the NUMA affinity in the individual capture modes
Example
But management / other threads would still be required to configure elsewhere. I liked the proposed approach more because all affinity-related settings are centralized.
Not having a list nodes in the YAML
YAML library changes net_bonding to net-bonding when YAML is loaded - so this is a nogo.
Have interface-related properties as children
This is a disallowed construct in YAML, so another nogo. A similar pattern is currently with *-cpu-set nodes but the different here is that the parent list item has a value (in this case net_bonding0). That is what is causing problems. Interface related therefore need to right under "interface".
PRO TIP: A good way to visualize different YAML structures is by using YAML to JSON converters. Currently it creates object like: