-
-
Notifications
You must be signed in to change notification settings - Fork 49
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
CPU count #398
Comments
If you run
You should get an equivalent number of TX queues and CPU cores, or RX queues and CPU cores. RX and TX queues are almost always the same as the number of CPU cores unless there's a misconfiguration of the NIC. We just do the min() as a fail-safe in case of user misconfiguration of the NIC. If we implement what you are proposing, wouldn't would we be limited to 4 queues on an 8 core system? |
I use the same command to get the number of TX queues for each interface. Here we have two issues:
|
Correct
Ok right, but we are using On line 479, queuesAvailable is calculated as The two interfaces being used would be identical SFP+ ports of a dual-port NIC, so rx/tx queues would be the same between them. We do not currently support configurations where someone wants to use two different model NICs, and that would probably not be easy to officially support in the long-term. On a standard two-interface, one NIC config, if we were to use Please correct me if I am misunderstanding your proposal. Thanks. 👍 |
I think you can support configurations when someone uses two different NIC models (Issue #375 and PR #377 ). PS: This line would be different when we use OnAStick mode or the number of queues per interface are different. |
Are we going to dedicate one CPU core per queue? Or we want to have one CPU core per pair of queues (each core handles one upstream and one downstream queue? ... which kind of does not make sence)
If every CPU should handle only one TX queue, there is a bug in the implementation. It would work correctly when we use OnAStick mode; But when we have two separate interfaces, instead of:
queuesAvailable = min( queuesAvailable , cpuCount)
we should use:
queuesAvailable = min( queuesAvailable , cpuCount//2)
That's because the value of queuesAvailable read from number of TX queues only correspond to number of queues in one of the interfaces not the sum of all TX queues in both interfaces.
The text was updated successfully, but these errors were encountered: