-
Notifications
You must be signed in to change notification settings - Fork 28
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
[BUG]: TestPipeline.EngineFactories fails on arm64 #525
Comments
I ran into this issue as well. Architecture: x86_64 |
Just wanted to add info -- on a GH200 system I see the following test output in verbose mode:
|
Followup: using diff --git a/cpp/mrc/src/internal/system/engine_factory_cpu_sets.cpp b/cpp/mrc/src/internal/system/engine_factory_cpu_sets.cpp
index 0405af38..15f4da93 100644
--- a/cpp/mrc/src/internal/system/engine_factory_cpu_sets.cpp
+++ b/cpp/mrc/src/internal/system/engine_factory_cpu_sets.cpp
@@ -51,12 +51,18 @@ EngineFactoryCpuSets generate_engine_factory_cpu_sets(const Topology& topology,
if (options.engine_factories().ignore_hyper_threads())
{
- auto core_count = hwloc_get_nbobjs_inside_cpuset_by_type(topology.handle(), &cpu_set.bitmap(), HWLOC_OBJ_CORE);
- for (int i = 0; i < core_count; i++)
+ struct hwloc_obj* core_obj{nullptr};
+ while (true)
{
- auto* core_obj =
- hwloc_get_obj_inside_cpuset_by_type(topology.handle(), &cpu_set.bitmap(), HWLOC_OBJ_CORE, i);
- pe_set.on(core_obj->os_index);
+ core_obj = hwloc_get_next_obj_inside_cpuset_by_type(topology.handle(),
+ &cpu_set.bitmap(),
+ HWLOC_OBJ_CORE,
+ core_obj);
+ if (core_obj == nullptr)
+ {
+ break;
+ }
+ pe_set.on(core_obj->logical_index);
}
DVLOG(10) << "hyper_threading [off]: " << pe_set;
} |
Version
25.02
Which installation method(s) does this occur on?
Docker
Describe the bug.
Observed in CI:
Minimum reproducible example
Relevant log output
Full env printout
Other/Misc.
No response
Code of Conduct
The text was updated successfully, but these errors were encountered: