This is an archive of the discontinued LLVM Phabricator instance.

Fix hwloc topology traversal code unable to handle situation where L2 cache is common for the packages
ClosedPublic

Authored by pawosm01 on May 10 2019, 11:47 AM.

Details

Summary

Currently cores within package that share the same L2 cache are grouped together. The current logic behind this assumes that the L2 cache is always at deeper (or the same) level than the package itself. In case when L2 cache is common for all packages (and the packages are at deeper level than L2 cache) the whole of the further topology discovery fails to find any computational units resulting in following assertion:

Assertion failure at kmp_affinity.cpp(715): nActiveThreads == __kmp_avail_proc.
OMP: Error #13: Assertion failure at kmp_affinity.cpp(715).

This patch adds a bit of a logic that prevents such situation from occurring.

Diff Detail

Repository
rL LLVM

Event Timeline

pawosm01 created this revision.May 10 2019, 11:47 AM
Herald added a project: Restricted Project. · View Herald TranscriptMay 10 2019, 11:47 AM
This revision is now accepted and ready to land.May 16 2019, 4:39 AM
This revision was automatically updated to reflect the committed changes.
Herald added a project: Restricted Project. · View Herald TranscriptMay 16 2019, 6:16 AM