Details
-
Bug
-
Resolution: Incomplete
-
Major
-
None
-
None
-
None
-
3
-
9223372036854775807
Description
On dense cored systems with hyperthreading active, you end up with a lot of execution threads. An example would be a system with 256 total threads.
The libcfs partition code divides those up into 16 partitions of 16 threads each (based on a math algorithm...not logical grouping based on hyperthreading).
Lnet-selftest then creates a group of scheduler threads in each partition equal to the number of execution threads minus 1 (so 15 per partition for our example). That means it creates 240 scheduler threads. This actually reduces performance rather than improves it.
We need to limit the number of lnet-selftest scheduler threads to some reasonable number per partition.
Note: another bug will be created to look at how we group the execution threads into partitions. It needs to make more sense than it does.
This configuration is not a development target today, and there is no real information in this ticket. Maybe revisit this in the future.