├── .github ├── ISSUE_TEMPLATE │ ├── ask.md │ └── bug_report.md └── contributing.md ├── .gitignore ├── AUTHORS ├── COPYING ├── HACKING ├── Makefile.am ├── NEWS ├── README ├── SECURITY.md ├── VERSION ├── autogen.sh ├── codemeta.json ├── config ├── distscript.sh ├── hwloc.m4 ├── hwloc_check_attributes.m4 ├── hwloc_check_vendor.m4 ├── hwloc_check_visibility.m4 ├── hwloc_components.m4 ├── hwloc_get_version.sh ├── hwloc_internal.m4 ├── hwloc_pkg.m4 └── libtool-big-sur-fixup.patch ├── configure.ac ├── contrib ├── android │ ├── AndroidApp │ │ ├── .gitignore │ │ ├── build.gradle │ │ ├── gradle.properties │ │ ├── gradle │ │ │ └── wrapper │ │ │ │ ├── gradle-wrapper.jar │ │ │ │ └── gradle-wrapper.properties │ │ ├── gradlew │ │ ├── gradlew.bat │ │ ├── lstopo │ │ │ ├── build.gradle │ │ │ └── src │ │ │ │ └── main │ │ │ │ ├── AndroidManifest.xml │ │ │ │ ├── cpp │ │ │ │ ├── CMakeLists.txt │ │ │ │ └── lib.c │ │ │ │ ├── ic_launcher-web.png │ │ │ │ ├── java │ │ │ │ └── com │ │ │ │ │ └── hwloc │ │ │ │ │ └── lstopo │ │ │ │ │ ├── About.java │ │ │ │ │ ├── Filters.java │ │ │ │ │ ├── GenericFileProvider.java │ │ │ │ │ ├── Lstopo.java │ │ │ │ │ ├── MainActivity.java │ │ │ │ │ ├── MyCanvas.java │ │ │ │ │ ├── Options.java │ │ │ │ │ └── ZoomView │ │ │ │ │ ├── README.md │ │ │ │ │ ├── ZoomView.java │ │ │ │ │ └── licence.txt │ │ │ │ └── res │ │ │ │ ├── color │ │ │ │ └── drawer_item.xml │ │ │ │ ├── drawable-v24 │ │ │ │ └── ic_launcher_foreground.xml │ │ │ │ ├── drawable │ │ │ │ ├── border_radius.xml │ │ │ │ ├── button_border.xml │ │ │ │ ├── ic_launcher_background.xml │ │ │ │ └── ic_share_24px.xml │ │ │ │ ├── layout │ │ │ │ ├── about.xml │ │ │ │ ├── activity_main.xml │ │ │ │ ├── activity_main_nav_header.xml │ │ │ │ ├── filters.xml │ │ │ │ └── options.xml │ │ │ │ ├── menu │ │ │ │ ├── activity_main_menu_drawer.xml │ │ │ │ └── share_menu.xml │ │ │ │ ├── mipmap-anydpi-v26 │ │ │ │ └── ic_launcher_round.xml │ │ │ │ ├── mipmap-hdpi │ │ │ │ └── ic_launcher.png │ │ │ │ ├── mipmap-mdpi │ │ │ │ └── ic_launcher.png │ │ │ │ ├── mipmap-xhdpi │ │ │ │ └── ic_launcher.png │ │ │ │ ├── mipmap-xxhdpi │ │ │ │ └── ic_launcher.png │ │ │ │ ├── mipmap-xxxhdpi │ │ │ │ └── ic_launcher.png │ │ │ │ ├── values │ │ │ │ ├── colors.xml │ │ │ │ ├── dimens.xml │ │ │ │ ├── strings.xml │ │ │ │ └── styles.xml │ │ │ │ └── xml │ │ │ │ └── provider_paths.xml │ │ └── settings.gradle │ ├── assets │ │ ├── lstopo.png │ │ └── lstopo.svg │ ├── check-versions.sh │ └── include │ │ ├── hwloc │ │ └── autogen │ │ │ └── config.h │ │ ├── private │ │ └── autogen │ │ │ └── config.h │ │ └── static-components.h ├── ci.inria.fr │ ├── Jenkinsfile │ ├── browse_jenkins_logs.sh │ ├── job-0-tarball.sh │ ├── job-1-check.sh │ ├── job-1-visualstudio.bat │ ├── job-1-wincmake.bat │ ├── job-3-android.sh │ ├── job-3-coverity.sh │ ├── job-3-cygwin.bat │ ├── job-3-cygwin.sh │ ├── job-3-debug.sh │ ├── job-3-embedded.sh │ ├── job-3-mingw.bat │ ├── job-3-mingw.sh │ └── job-3-sonarscanner.sh ├── completion │ ├── Makefile.am │ ├── bash │ │ └── hwloc │ └── test-bash-completion.sh.in ├── coverity-model.c ├── dist │ ├── make_dist_tarball │ └── publish_doc ├── git-hooks │ ├── check-manpages-completions.pl │ ├── check-versions.sh │ └── pre-commit ├── hwloc-ps.www │ ├── Makefile.am │ ├── README │ ├── assets │ │ ├── index.html │ │ ├── main.css │ │ ├── script.js │ │ └── style.css │ ├── client.js │ └── package.json ├── hwloc-valgrind.supp ├── misc │ ├── Makefile.am │ ├── dynamic_SVG_example.html │ ├── hwloc-export-sysfs │ └── hwloc-tweak-osindex.c ├── systemd │ ├── Makefile.am │ └── hwloc-dump-hwdata.service.in ├── update-my-copyright.pl ├── update-versions.sh ├── windows-cmake │ ├── CMakeLists.txt │ ├── README │ ├── check-versions.sh │ ├── private_config.h.in │ ├── static-components.h.in │ └── tests │ │ └── CMakeLists.txt └── windows │ ├── Makefile.am │ ├── README │ ├── app.manifest │ ├── check-versions.sh │ ├── hwloc-annotate.vcxproj │ ├── hwloc-annotate.vcxproj.filters │ ├── hwloc-bind.vcxproj │ ├── hwloc-bind.vcxproj.filters │ ├── hwloc-calc.vcxproj │ ├── hwloc-calc.vcxproj.filters │ ├── hwloc-diff.vcxproj │ ├── hwloc-diff.vcxproj.filters │ ├── hwloc-distrib.vcxproj │ ├── hwloc-distrib.vcxproj.filters │ ├── hwloc-gather-cpuid.vcxproj │ ├── hwloc-gather-cpuid.vcxproj.filters │ ├── hwloc-info.vcxproj │ ├── hwloc-info.vcxproj.filters │ ├── hwloc-patch.vcxproj │ ├── hwloc-patch.vcxproj.filters │ ├── hwloc.sln │ ├── hwloc_config.h │ ├── libhwloc.vcxproj │ ├── libhwloc.vcxproj.filters │ ├── lstopo-no-graphics.vcxproj │ ├── lstopo-no-graphics.vcxproj.filters │ ├── lstopo-win.vcxproj │ ├── lstopo-win.vcxproj.filters │ ├── lstopo.vcxproj │ ├── lstopo.vcxproj.filters │ ├── private_config.h │ └── static-components.h ├── doc ├── Makefile.am ├── README.sed ├── doxygen-config.cfg.in ├── doxygen.cfg ├── examples │ ├── Makefile.am │ ├── cpuset+bitmap+cpubind.c │ ├── get-knl-modes.c │ ├── gpu.c │ ├── hwloc-hello.c │ ├── memory-attributes.c │ ├── nodeset+membind+policy.c │ └── sharedcaches.c ├── hwloc.doxy ├── images │ ├── HACKING │ ├── devel09-pci.png │ ├── devel09-pci.xml │ ├── diagram.fig │ ├── dudley.png │ ├── dudley.xml │ ├── emmett.png │ ├── emmett.xml │ ├── hagrid.png │ ├── hagrid.xml │ ├── heteromem.png │ ├── heteromem.xml │ ├── ppc64-full-with-smt.png │ ├── ppc64-full-with-smt.xml │ ├── ppc64-with-smt.png │ ├── ppc64-with-smt.xml │ ├── ppc64-without-smt.png │ └── ppc64-without-smt.xml ├── readthedocs │ ├── conf.py │ ├── index.rst │ └── readthedocs.io.sh ├── www.open-mpi.org-css.inc ├── www.open-mpi.org-footer.inc ├── www.open-mpi.org-header.inc └── www.open-mpi.org.cfg ├── hwloc.pc.in ├── hwloc ├── Makefile.am ├── base64.c ├── bind.c ├── bitmap.c ├── components.c ├── cpukinds.c ├── diff.c ├── distances.c ├── hwloc2-diff.dtd ├── hwloc2.dtd ├── memattrs.c ├── misc.c ├── pci-common.c ├── shmem.c ├── topology-aix.c ├── topology-cuda.c ├── topology-darwin.c ├── topology-fake.c ├── topology-freebsd.c ├── topology-gl.c ├── topology-hardwired.c ├── topology-hpux.c ├── topology-levelzero.c ├── topology-linux.c ├── topology-netbsd.c ├── topology-noos.c ├── topology-nvml.c ├── topology-opencl.c ├── topology-pci.c ├── topology-rsmi.c ├── topology-solaris-chiptype.c ├── topology-solaris.c ├── topology-synthetic.c ├── topology-windows.c ├── topology-x86.c ├── topology-xml-libxml.c ├── topology-xml-nolibxml.c ├── topology-xml.c ├── topology.c └── traversal.c ├── include ├── Makefile.am ├── hwloc.h ├── hwloc │ ├── autogen │ │ └── config.h.in │ ├── bitmap.h │ ├── cpukinds.h │ ├── cuda.h │ ├── cudart.h │ ├── deprecated.h │ ├── diff.h │ ├── distances.h │ ├── export.h │ ├── gl.h │ ├── glibc-sched.h │ ├── helper.h │ ├── inlines.h │ ├── levelzero.h │ ├── linux-libnuma.h │ ├── linux.h │ ├── memattrs.h │ ├── nvml.h │ ├── opencl.h │ ├── openfabrics-verbs.h │ ├── plugins.h │ ├── rename.h │ ├── rsmi.h │ ├── shmem.h │ └── windows.h └── private │ ├── autogen │ └── README.txt │ ├── components.h │ ├── cpuid-x86.h │ ├── debug.h │ ├── internal-components.h │ ├── misc.h │ ├── private.h │ ├── solaris-chiptype.h │ ├── windows.h │ └── xml.h ├── tests ├── Makefile.am └── hwloc │ ├── Makefile.am │ ├── cpukinds.c │ ├── cpuset_nodeset.c │ ├── cuda.c │ ├── cudart.c │ ├── embedded │ ├── Makefile.am │ ├── README.txt │ ├── autogen.sh │ ├── config │ │ └── README.txt │ ├── configure.ac │ ├── do_test.c │ ├── main.c │ └── run-embedded-tests.sh │ ├── gl.c │ ├── glibc-sched.c │ ├── hwloc_api_version.c │ ├── hwloc_backends.c │ ├── hwloc_bind.c │ ├── hwloc_bitmap.c │ ├── hwloc_bitmap_compare_inclusion.c │ ├── hwloc_bitmap_first_last_weight.c │ ├── hwloc_bitmap_singlify.c │ ├── hwloc_bitmap_string.c │ ├── hwloc_distances.c │ ├── hwloc_get_area_memlocation.c │ ├── hwloc_get_cache_covering_cpuset.c │ ├── hwloc_get_closest_objs.c │ ├── hwloc_get_largest_objs_inside_cpuset.c │ ├── hwloc_get_last_cpu_location.c │ ├── hwloc_get_next_obj_covering_cpuset.c │ ├── hwloc_get_obj_below_array_by_type.c │ ├── hwloc_get_obj_covering_cpuset.c │ ├── hwloc_get_obj_inside_cpuset.c │ ├── hwloc_get_obj_with_same_locality.c │ ├── hwloc_get_shared_cache_covering_obj.c │ ├── hwloc_groups.c │ ├── hwloc_insert_misc.c │ ├── hwloc_iodevs.c │ ├── hwloc_is_thissystem.c │ ├── hwloc_list_components.c │ ├── hwloc_object_userdata.c │ ├── hwloc_pci_backend.c │ ├── hwloc_synthetic.c │ ├── hwloc_topology_abi.c │ ├── hwloc_topology_allow.c │ ├── hwloc_topology_diff.c │ ├── hwloc_topology_dup.c │ ├── hwloc_topology_restrict.c │ ├── hwloc_type_depth.c │ ├── hwloc_type_sscanf.c │ ├── infos.c │ ├── levelzero.c │ ├── linux-libnuma.c │ ├── linux │ ├── 128arm-2pa2n8cluster4co.console │ ├── 128arm-2pa2n8cluster4co.tar.bz2 │ ├── 128arm-2pa2n8cluster4co.test │ ├── 128ia64-17n4s2c.console │ ├── 128ia64-17n4s2c.tar.bz2 │ ├── 128ia64-17n4s2c.test │ ├── 16amd64-4n4c-cgroup-distance-merge.console │ ├── 16amd64-4n4c-cgroup-distance-merge.tar.bz2 │ ├── 16amd64-4n4c-cgroup-distance-merge.test │ ├── 16amd64-8n2c-cpusets-disallowed.console │ ├── 16amd64-8n2c-cpusets-disallowed.test │ ├── 16amd64-8n2c-cpusets-xml.test │ ├── 16amd64-8n2c-cpusets-xml.xml │ ├── 16amd64-8n2c-cpusets.console │ ├── 16amd64-8n2c-cpusets.tar.bz2 │ ├── 16amd64-8n2c-cpusets.test │ ├── 16amd64-8n2c.console │ ├── 16amd64-8n2c.tar.bz2 │ ├── 16amd64-8n2c.test │ ├── 16em64t-4s2c2t-merge.console │ ├── 16em64t-4s2c2t-merge.test │ ├── 16em64t-4s2c2t-nocaches.console │ ├── 16em64t-4s2c2t-nocaches.test │ ├── 16em64t-4s2c2t-offlines-xml.test │ ├── 16em64t-4s2c2t-offlines-xml.xml │ ├── 16em64t-4s2c2t-offlines.console │ ├── 16em64t-4s2c2t-offlines.tar.bz2 │ ├── 16em64t-4s2c2t-offlines.test │ ├── 16em64t-4s2c2t-xml.test │ ├── 16em64t-4s2c2t-xml.xml │ ├── 16em64t-4s2c2t.console │ ├── 16em64t-4s2c2t.tar.bz2 │ ├── 16em64t-4s2c2t.test │ ├── 16em64t-4s2ca2c-cpusetreorder-merge.console │ ├── 16em64t-4s2ca2c-cpusetreorder-merge.test │ ├── 16em64t-4s2ca2c-cpusetreorder.console │ ├── 16em64t-4s2ca2c-cpusetreorder.tar.bz2 │ ├── 16em64t-4s2ca2c-cpusetreorder.test │ ├── 16ia64-8n2s.console │ ├── 16ia64-8n2s.tar.bz2 │ ├── 16ia64-8n2s.test │ ├── 20em64t-hybrid-1p6c2t+2ca4co1t.console │ ├── 20em64t-hybrid-1p6c2t+2ca4co1t.tar.bz2 │ ├── 20em64t-hybrid-1p6c2t+2ca4co1t.test │ ├── 20s390-2g6s4c.console │ ├── 20s390-2g6s4c.tar.bz2 │ ├── 20s390-2g6s4c.test │ ├── 256ia64-64n2s2c.console │ ├── 256ia64-64n2s2c.tar.bz2 │ ├── 256ia64-64n2s2c.test │ ├── 256ppc-8n8s4t.console │ ├── 256ppc-8n8s4t.tar.bz2 │ ├── 256ppc-8n8s4t.test │ ├── 2arm-2c.console │ ├── 2arm-2c.tar.bz2 │ ├── 2arm-2c.test │ ├── 2i386-2c-nohugepage.tar.bz2 │ ├── 2i386-2c-nohugepage.test │ ├── 2i386-2c-nohugepage.xml │ ├── 2i386-2t-hugepagesizecount.tar.bz2 │ ├── 2i386-2t-hugepagesizecount.test │ ├── 2i386-2t-hugepagesizecount.xml │ ├── 2pa-pcidomain32bits.console │ ├── 2pa-pcidomain32bits.tar.bz2 │ ├── 2pa-pcidomain32bits.test │ ├── 2ps3-2t.console │ ├── 2ps3-2t.tar.bz2 │ ├── 2ps3-2t.test │ ├── 32amd64-4s2n4c-cgroup2.tar.bz2 │ ├── 32amd64-4s2n4c-cgroup2.test │ ├── 32amd64-4s2n4c-cgroup2.xml │ ├── 32em64t-2n8c+dax+nvme+mic+dimms.tar.bz2 │ ├── 32em64t-2n8c+dax+nvme+mic+dimms.test │ ├── 32em64t-2n8c+dax+nvme+mic+dimms.xml │ ├── 32intel64-2p8co2t+8ve.console │ ├── 32intel64-2p8co2t+8ve.tar.bz2 │ ├── 32intel64-2p8co2t+8ve.test │ ├── 40intel64-2g2n4c+pcilocality.tar.bz2 │ ├── 40intel64-2g2n4c+pcilocality.test │ ├── 40intel64-2g2n4c+pcilocality.xml │ ├── 40intel64-4n10c+pci-conflicts.console │ ├── 40intel64-4n10c+pci-conflicts.tar.bz2 │ ├── 40intel64-4n10c+pci-conflicts.test │ ├── 48amd64-4pa2n6c-sparse.console │ ├── 48amd64-4pa2n6c-sparse.tar.bz2 │ ├── 48amd64-4pa2n6c-sparse.test │ ├── 4fake-4gr1nu1pu.console │ ├── 4fake-4gr1nu1pu.tar.bz2 │ ├── 4fake-4gr1nu1pu.test │ ├── 64amd64-4s2n4ca2co.console │ ├── 64amd64-4s2n4ca2co.tar.bz2 │ ├── 64amd64-4s2n4ca2co.test │ ├── 64fake-4n2s2ca2c2t.console │ ├── 64fake-4n2s2ca2c2t.tar.bz2 │ ├── 64fake-4n2s2ca2c2t.test │ ├── 64intel64-fakeKNL-A2A-cache.console │ ├── 64intel64-fakeKNL-A2A-cache.tar.bz2 │ ├── 64intel64-fakeKNL-A2A-cache.test │ ├── 64intel64-fakeKNL-SNC4-hybrid-msc.console │ ├── 64intel64-fakeKNL-SNC4-hybrid-msc.test │ ├── 64intel64-fakeKNL-SNC4-hybrid.console │ ├── 64intel64-fakeKNL-SNC4-hybrid.tar.bz2 │ ├── 64intel64-fakeKNL-SNC4-hybrid.test │ ├── 8em64t-2s2ca2c-buggynuma.console │ ├── 8em64t-2s2ca2c-buggynuma.tar.bz2 │ ├── 8em64t-2s2ca2c-buggynuma.test │ ├── 8em64t-2s2ca2c.console │ ├── 8em64t-2s2ca2c.tar.bz2 │ ├── 8em64t-2s2ca2c.test │ ├── 8em64t-2s4c-asymcaches.console │ ├── 8em64t-2s4c-asymcaches.tar.bz2 │ ├── 8em64t-2s4c-asymcaches.test │ ├── 8ia64-2n2s2c.console │ ├── 8ia64-2n2s2c.tar.bz2 │ ├── 8ia64-2n2s2c.test │ ├── 8ia64-2s2c2t.console │ ├── 8ia64-2s2c2t.tar.bz2 │ ├── 8ia64-2s2c2t.test │ ├── 96em64t-4no4pa3ca2co.console │ ├── 96em64t-4no4pa3ca2co.tar.bz2 │ ├── 96em64t-4no4pa3ca2co.test │ ├── Makefile.am │ ├── README │ ├── allowed │ │ ├── Makefile.am │ │ ├── test-topology.sh.in │ │ ├── test1.fsroot.tar.bz2 │ │ ├── test1.test │ │ └── test1.xml │ ├── fakecpuid1f-64intel64-2p4d2n2c2t.console │ ├── fakecpuid1f-64intel64-2p4d2n2c2t.tar.bz2 │ ├── fakecpuid1f-64intel64-2p4d2n2c2t.test │ ├── fakeheterocpunuma.tar.bz2 │ ├── fakeheterocpunuma.test │ ├── fakeheterocpunuma.xml │ ├── fakeheteromemtiers.console │ ├── fakeheteromemtiers.tar.bz2 │ ├── fakeheteromemtiers.test │ ├── fakememinitiators-1np2c+1npp+gi.console │ ├── fakememinitiators-1np2c+1npp+gi.tar.bz2 │ ├── fakememinitiators-1np2c+1npp+gi.test │ ├── gather │ │ ├── Makefile.am │ │ └── test-gather-topology.sh.in │ ├── memorysidecaches.console │ ├── memorysidecaches.tar.bz2 │ ├── memorysidecaches.test │ ├── nvidiagpunumanodes-kept.console │ ├── nvidiagpunumanodes-kept.test │ ├── nvidiagpunumanodes.console │ ├── nvidiagpunumanodes.tar.bz2 │ ├── nvidiagpunumanodes.test │ ├── offline-cpu0-node0.console │ ├── offline-cpu0-node0.tar.bz2 │ ├── offline-cpu0-node0.test │ └── test-topology.sh.in │ ├── memattrs.c │ ├── memtiers.c │ ├── nvml.c │ ├── opencl.c │ ├── openfabrics-verbs.c │ ├── ports │ ├── Makefile.am │ └── include │ │ ├── aix │ │ ├── procinfo.h │ │ └── sys │ │ │ ├── processor.h │ │ │ ├── rset.h │ │ │ ├── systemcfg.h │ │ │ └── thread.h │ │ ├── cuda │ │ ├── cuda.h │ │ └── cuda_runtime_api.h │ │ ├── darwin │ │ ├── Availability.h │ │ ├── CoreFoundation │ │ │ └── CoreFoundation.h │ │ ├── IOKit │ │ │ └── IOKitLib.h │ │ └── sys │ │ │ └── sysctl.h │ │ ├── freebsd │ │ ├── pthread.h │ │ ├── pthread_np.h │ │ └── sys │ │ │ ├── cpuset.h │ │ │ ├── domainset.h │ │ │ ├── param.h │ │ │ ├── sysctl.h │ │ │ ├── thr.h │ │ │ └── user.h │ │ ├── gl │ │ ├── NVCtrl │ │ │ ├── NVCtrl.h │ │ │ └── NVCtrlLib.h │ │ └── X11 │ │ │ └── Xlib.h │ │ ├── hpux │ │ └── sys │ │ │ └── mpctl.h │ │ ├── levelzero │ │ └── level_zero │ │ │ ├── ze_api.h │ │ │ └── zes_api.h │ │ ├── netbsd │ │ ├── pthread.h │ │ ├── sched.h │ │ └── sys │ │ │ └── sysctl.h │ │ ├── nvml │ │ └── nvml.h │ │ ├── opencl │ │ └── CL │ │ │ └── cl.h │ │ ├── rsmi │ │ └── rocm_smi │ │ │ └── rocm_smi.h │ │ ├── solaris │ │ ├── kstat.h │ │ ├── picl.h │ │ └── sys │ │ │ ├── lgrp_user.h │ │ │ ├── processor.h │ │ │ ├── procset.h │ │ │ └── systeminfo.h │ │ └── windows │ │ ├── windows.h │ │ └── windowsx.h │ ├── rename │ ├── Makefile.am │ └── main.c │ ├── rsmi.c │ ├── shmem.c │ ├── windows_processor_groups.c │ ├── wrapper.sh.in │ ├── x86+linux │ ├── 5intel64-hybrid-lakefield.console │ ├── 5intel64-hybrid-lakefield.tar.bz2 │ ├── 5intel64-hybrid-lakefield.test │ ├── 64amd64-4p2n4ca2co+topoextnuma.test │ ├── 64amd64-4p2n4ca2co.tar.bz2 │ ├── 64amd64-4p2n4ca2co.test │ ├── 64amd64-4p2n4ca2co.xml │ ├── Makefile.am │ └── test-topology.sh.in │ ├── x86 │ ├── AMD-15h-Bulldozer-4xOpteron-6272.tar.bz2 │ ├── AMD-15h-Bulldozer-4xOpteron-6272.test │ ├── AMD-15h-Bulldozer-4xOpteron-6272.xml │ ├── AMD-15h-Piledriver-4xOpteron-6348.tar.bz2 │ ├── AMD-15h-Piledriver-4xOpteron-6348.test │ ├── AMD-15h-Piledriver-4xOpteron-6348.xml │ ├── AMD-17h-Zen-2xEpyc-7451.tar.bz2 │ ├── AMD-17h-Zen-2xEpyc-7451.test │ ├── AMD-17h-Zen-2xEpyc-7451.xml │ ├── AMD-19h-Zen3-2xEpyc-7763.tar.bz2 │ ├── AMD-19h-Zen3-2xEpyc-7763.test │ ├── AMD-19h-Zen3-2xEpyc-7763.xml │ ├── AMD-19h-Zen4-2xEpyc-9654.tar.bz2 │ ├── AMD-19h-Zen4-2xEpyc-9654.test │ ├── AMD-19h-Zen4-2xEpyc-9654.xml │ ├── AMD-K10-Istanbul-8xOpteron-8439SE.tar.bz2 │ ├── AMD-K10-Istanbul-8xOpteron-8439SE.test │ ├── AMD-K10-Istanbul-8xOpteron-8439SE.xml │ ├── AMD-K10-MagnyCours-2xOpteron-6164HE.tar.bz2 │ ├── AMD-K10-MagnyCours-2xOpteron-6164HE.test │ ├── AMD-K10-MagnyCours-2xOpteron-6164HE.xml │ ├── AMD-K8-SantaRosa-2xOpteron-2218.tar.bz2 │ ├── AMD-K8-SantaRosa-2xOpteron-2218.test │ ├── AMD-K8-SantaRosa-2xOpteron-2218.xml │ ├── AMD-K8-SledgeHammer-2xOpteron-250.tar.bz2 │ ├── AMD-K8-SledgeHammer-2xOpteron-250.test │ ├── AMD-K8-SledgeHammer-2xOpteron-250.xml │ ├── Hygon-Dhyana-32cores.tar.bz2 │ ├── Hygon-Dhyana-32cores.test │ ├── Hygon-Dhyana-32cores.xml │ ├── Intel-Broadwell-2xXeon-E5-2650Lv4.tar.bz2 │ ├── Intel-Broadwell-2xXeon-E5-2650Lv4.test │ ├── Intel-Broadwell-2xXeon-E5-2650Lv4.xml │ ├── Intel-CPUID.1A-1p2co2t.env │ ├── Intel-CPUID.1A-1p2co2t.tar.bz2 │ ├── Intel-CPUID.1A-1p2co2t.test │ ├── Intel-CPUID.1A-1p2co2t.xml │ ├── Intel-CPUID.1F-Qemu-2p3d3c2t.tar.bz2 │ ├── Intel-CPUID.1F-Qemu-2p3d3c2t.test │ ├── Intel-CPUID.1F-Qemu-2p3d3c2t.xml │ ├── Intel-CascadeLake-2xXeon6230.tar.bz2 │ ├── Intel-CascadeLake-2xXeon6230.test │ ├── Intel-CascadeLake-2xXeon6230.xml │ ├── Intel-Core-2xXeon-E5345.tar.bz2 │ ├── Intel-Core-2xXeon-E5345.test │ ├── Intel-Core-2xXeon-E5345.xml │ ├── Intel-Haswell-2xXeon-E5-2680v3.tar.bz2 │ ├── Intel-Haswell-2xXeon-E5-2680v3.test │ ├── Intel-Haswell-2xXeon-E5-2680v3.xml │ ├── Intel-IvyBridge-12xXeon-E5-4620v2.tar.bz2 │ ├── Intel-IvyBridge-12xXeon-E5-4620v2.test │ ├── Intel-IvyBridge-12xXeon-E5-4620v2.xml │ ├── Intel-KnightsCorner-XeonPhi-SE10P.tar.bz2 │ ├── Intel-KnightsCorner-XeonPhi-SE10P.test │ ├── Intel-KnightsCorner-XeonPhi-SE10P.xml │ ├── Intel-KnightsLanding-XeonPhi-7210.tar.bz2 │ ├── Intel-KnightsLanding-XeonPhi-7210.test │ ├── Intel-KnightsLanding-XeonPhi-7210.xml │ ├── Intel-Nehalem-2xXeon-X5550.tar.bz2 │ ├── Intel-Nehalem-2xXeon-X5550.test │ ├── Intel-Nehalem-2xXeon-X5550.xml │ ├── Intel-Penryn-4xXeon-X7460.tar.bz2 │ ├── Intel-Penryn-4xXeon-X7460.test │ ├── Intel-Penryn-4xXeon-X7460.xml │ ├── Intel-RaptorLake-Corei7-1370P.tar.bz2 │ ├── Intel-RaptorLake-Corei7-1370P.test │ ├── Intel-RaptorLake-Corei7-1370P.xml │ ├── Intel-SandyBridge-2xXeon-E5-2650.tar.bz2 │ ├── Intel-SandyBridge-2xXeon-E5-2650.test │ ├── Intel-SandyBridge-2xXeon-E5-2650.xml │ ├── Intel-SapphireRapids-2xXeonMax9460.tar.bz2 │ ├── Intel-SapphireRapids-2xXeonMax9460.test │ ├── Intel-SapphireRapids-2xXeonMax9460.xml │ ├── Intel-Skylake-2xXeon6140.tar.bz2 │ ├── Intel-Skylake-2xXeon6140.test │ ├── Intel-Skylake-2xXeon6140.xml │ ├── Intel-Westmere-2xXeon-X5650.tar.bz2 │ ├── Intel-Westmere-2xXeon-X5650.test │ ├── Intel-Westmere-2xXeon-X5650.xml │ ├── Makefile.am │ ├── Zhaoxin-2xCentaurHauls-KaiSheng-KH-40000.tar.bz2 │ ├── Zhaoxin-2xCentaurHauls-KaiSheng-KH-40000.test │ ├── Zhaoxin-2xCentaurHauls-KaiSheng-KH-40000.xml │ ├── Zhaoxin-CentaurHauls-ZXD-4600.tar.bz2 │ ├── Zhaoxin-CentaurHauls-ZXD-4600.test │ ├── Zhaoxin-CentaurHauls-ZXD-4600.xml │ ├── Zhaoxin-Shanghai-KaiSheng-ZXC+-FC1081.tar.bz2 │ ├── Zhaoxin-Shanghai-KaiSheng-ZXC+-FC1081.test │ ├── Zhaoxin-Shanghai-KaiSheng-ZXC+-FC1081.xml │ └── test-topology.sh.in │ ├── xml │ ├── 16-2gr2gr2n2c+misc.console │ ├── 16-2gr2gr2n2c+misc.console.test │ ├── 16-2gr2gr2n2c+misc.test │ ├── 16-2gr2gr2n2c+misc.xml │ ├── 16amd64-4distances.console │ ├── 16amd64-4distances.console.test │ ├── 16amd64-4distances.test │ ├── 16amd64-4distances.xml │ ├── 16amd64-8n2c-cpusets.test │ ├── 16amd64-8n2c-cpusets.xml │ ├── 16em64t-4s2c2t-offlines.test │ ├── 16em64t-4s2c2t-offlines.xml │ ├── 16em64t-4s2c2t.console │ ├── 16em64t-4s2c2t.console.test │ ├── 16em64t-4s2c2t.test │ ├── 16em64t-4s2c2t.xml │ ├── 16intel64-manyVFs.console │ ├── 16intel64-manyVFs.console.test │ ├── 16intel64-manyVFs.nocollapse.console │ ├── 16intel64-manyVFs.nocollapse.console.test │ ├── 16intel64-manyVFs.test │ ├── 16intel64-manyVFs.xml │ ├── 192em64t-12gr2n8c2t.test │ ├── 192em64t-12gr2n8c2t.xml │ ├── 192em64t-24n8c2t.test │ ├── 192em64t-24n8c2t.xml │ ├── 24em64t-2n6c2t-pci.test │ ├── 24em64t-2n6c2t-pci.xml │ ├── 32em64t-2n8c2t-pci-noio.test │ ├── 32em64t-2n8c2t-pci-noio.xml │ ├── 32em64t-2n8c2t-pci-normalio.test │ ├── 32em64t-2n8c2t-pci-normalio.xml │ ├── 32em64t-2n8c2t-pci-wholeio.test │ ├── 32em64t-2n8c2t-pci-wholeio.xml │ ├── 64intel64-fakeKNL-SNC4-hybrid.test │ ├── 64intel64-fakeKNL-SNC4-hybrid.xml │ ├── 8intel64-4n2t-memattrs.test │ ├── 8intel64-4n2t-memattrs.xml │ ├── 96em64t-4n4d3ca2co-pci.test │ ├── 96em64t-4n4d3ca2co-pci.xml │ ├── Makefile.am │ ├── cxlmem+dax.v2.xml │ ├── cxlmem+dax.v2tov3.test │ ├── cxlmem+dax.v3.xml │ ├── cxlmem+dax.v3tov2.test │ ├── fakecpukinds.test │ ├── fakecpukinds.xml │ ├── fakeheterodistances.test │ ├── fakeheterodistances.xml │ ├── irregulargroups-disallowed.console │ ├── irregulargroups-disallowed.console.test │ ├── irregulargroups-disallowed.test │ ├── irregulargroups-disallowed.xml │ ├── memorysidecaches.test │ ├── memorysidecaches.xml │ ├── nvidiaDGX2.test │ ├── nvidiaDGX2.xml │ ├── power8gpudistances.test │ ├── power8gpudistances.xml │ └── test-topology.sh.in │ └── xmlbuffer.c └── utils ├── Makefile.am ├── hwloc ├── Makefile.am ├── common-ps.c ├── common-ps.h ├── hwloc-annotate.1in ├── hwloc-annotate.c ├── hwloc-bind.1in ├── hwloc-bind.c ├── hwloc-calc.1in ├── hwloc-calc.c ├── hwloc-calc.h ├── hwloc-compress-dir.1in ├── hwloc-compress-dir.in ├── hwloc-diff.1in ├── hwloc-diff.c ├── hwloc-distrib.1in ├── hwloc-distrib.c ├── hwloc-dump-hwdata-knl.c ├── hwloc-dump-hwdata.1in ├── hwloc-dump-hwdata.c ├── hwloc-gather-cpuid.1in ├── hwloc-gather-cpuid.c ├── hwloc-gather-topology.1in ├── hwloc-gather-topology.in ├── hwloc-info.1in ├── hwloc-info.c ├── hwloc-patch.1in ├── hwloc-patch.c ├── hwloc-ps.1in ├── hwloc-ps.c ├── hwloc.7in ├── misc.h ├── test-build-custom-topology.output ├── test-build-custom-topology.sh.in ├── test-fake-plugin.sh.in ├── test-hwloc-annotate.input ├── test-hwloc-annotate.output ├── test-hwloc-annotate.output2 ├── test-hwloc-annotate.output3 ├── test-hwloc-annotate.output4 ├── test-hwloc-annotate.sh.in ├── test-hwloc-calc.output ├── test-hwloc-calc.sh.in ├── test-hwloc-compress-dir.input.tar.gz ├── test-hwloc-compress-dir.output.tar.gz ├── test-hwloc-compress-dir.sh.in ├── test-hwloc-diffpatch.input1 ├── test-hwloc-diffpatch.input2 ├── test-hwloc-diffpatch.sh.in ├── test-hwloc-distrib.output ├── test-hwloc-distrib.sh.in ├── test-hwloc-dump-hwdata │ ├── Makefile.am │ ├── knl-snc4h50.tar.bz2 │ └── test-hwloc-dump-hwdata.sh.in ├── test-hwloc-info.output ├── test-hwloc-info.sh.in └── test-parsing-flags.sh.in └── lstopo ├── Makefile.am ├── lstopo-android.c ├── lstopo-ascii.c ├── lstopo-cairo.c ├── lstopo-draw.c ├── lstopo-fig.c ├── lstopo-no-graphics.1in ├── lstopo-shmem.c ├── lstopo-svg.c ├── lstopo-text.c ├── lstopo-tikz.c ├── lstopo-windows.c ├── lstopo-xml.c ├── lstopo.c ├── lstopo.desktop ├── lstopo.h ├── test-lstopo-shmem.sh.in ├── test-lstopo.output └── test-lstopo.sh.in /.github/ISSUE_TEMPLATE/ask.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Ask a question 3 | about: You have a question, you need a feature, etc. 4 | title: '' 5 | labels: '' 6 | assignees: '' 7 | --- 8 | 9 | -------------------------------------------------------------------------------- /.github/contributing.md: -------------------------------------------------------------------------------- 1 | # License and Signed-off-by token 2 | 3 | In order to ensure that we can keep distributing hwloc under our 4 | [open source license](/COPYING), we need to ensure that all 5 | contributions are compatible with that license. 6 | 7 | To that end, we require that all Git commits contributed to hwloc 8 | have a "Signed-off-by" token indicating that the commit author agrees 9 | with [Open MPI's Contributor's 10 | Declaration](https://github.com/open-mpi/ompi/wiki/Administrative-rules#contributors-declaration). 11 | 12 | If you have not already done so, please ensure that: 13 | 14 | 1. Every commit contains exactly the "Signed-off-by" token. You can 15 | add this token via `git commit -s`. 16 | 1. The email address after "Signed-off-by" must match the Git commit 17 | email address. 18 | 19 | # Copyright 20 | 21 | You may also update the copyright headers whenever you modify 22 | a file. `contrib/update-my-copyright.pl` may help you doing so. 23 | It requires you to set the `HWLOC_COPYRIGHT_FORMAT_NAME` environment 24 | to something like `Inria. All rights reserved.` 25 | and `HWLOC_COPYRIGHT_SEARCH_NAME` to something like `Inria`. 26 | 27 | You may even call `contrib/update-my-copyright.pl --check-only` from 28 | the git pre-commit hook so that it prevents committing without 29 | updated copyright headers (unless `--no-verify` is given). 30 | 31 | Major contributors are also listed in the [Authors](/AUTHORS) file. 32 | -------------------------------------------------------------------------------- /AUTHORS: -------------------------------------------------------------------------------- 1 | hwloc Authors 2 | ============= 3 | 4 | The following cumulative list contains the names of most individuals 5 | who have committed code to the hwloc repository 6 | (either directly or through a third party). 7 | 8 | Name Affiliation(s) 9 | --------------------------- -------------------- 10 | Grzegorz Andrejczuk Intel 11 | Cédric Augonnet University of Bordeaux 12 | Guillaume Beauchamp Inria 13 | Ahmad Boissetri Binzagr Inria 14 | Cyril Bordage Inria 15 | Nicholas Buroker UWL 16 | Christopher M. Cantalupo Intel 17 | Jérôme Clet-Ortega University of Bordeaux 18 | Ludovic Courtès Inria 19 | Clément Foyer Inria 20 | Nathalie Furmento CNRS 21 | Bryon Gloden 22 | Brice Goglin Inria 23 | Gilles Gouaillardet RIST 24 | Valentin Hoyet Inria 25 | Joshua Hursey UWL 26 | Alexey Kardashevskiy IBM 27 | Rob Latham ANL 28 | Douglas MacFarland UWL 29 | Marc Marí BSC 30 | Jonathan L Peyton Intel 31 | Piotr Luc Intel 32 | Antoine Rougier intern from University of Bordeaux 33 | Jeff Squyres Cisco 34 | Samuel Thibault University of Bordeaux 35 | Jean-Yves VET DDN 36 | Benjamin Worpitz 37 | Jeff Zhao Zhaoxin 38 | 39 | Affiliaion abbreviations: 40 | ------------------------- 41 | ANL = Argonne National Lab 42 | BSC = Barcelona Supercomputing Center 43 | Cisco = Cisco Systems, Inc. 44 | CNRS = Centre national de la recherche scientifique (France) 45 | UWL = University of Wisconsin-La Crosse 46 | -------------------------------------------------------------------------------- /SECURITY.md: -------------------------------------------------------------------------------- 1 | # Security Policy 2 | 3 | If you have discovered a security vulnerability in this project, please report it 4 | privately. **Do not disclose it as a public issue.** This gives us time to work with you 5 | to fix the issue before public exposure, reducing the chance that the exploit will be 6 | used before a patch is released. 7 | 8 | You may submit the report in the following ways: 9 | 10 | - send an email to brice.goglin@inria.fr; and/or 11 | - send us a [private vulnerability report](https://github.com/open-mpi/hwloc/security/advisories/new) 12 | 13 | Please provide the following information in your report: 14 | 15 | - A description of the vulnerability and its impact 16 | - How to reproduce the issue 17 | 18 | Security fixes will only be applied to active stable branches (usually the last two 19 | stable branches, e.g. v2.9 and v2.8). Older branches might be considered if there is a 20 | strong reason not to upgrade. 21 | -------------------------------------------------------------------------------- /VERSION: -------------------------------------------------------------------------------- 1 | # This is the VERSION file for hwloc, describing the precise version 2 | # of hwloc in this distribution. The various components of the version 3 | # number below are combined to form a single version number string. 4 | 5 | # major, minor, and release are generally combined in the form 6 | # ... If release is zero, then it is omitted. 7 | 8 | # Please update HWLOC_VERSION* in contrib/windows/hwloc_config.h too. 9 | 10 | major=3 11 | minor=0 12 | release=0 13 | 14 | # greek is used for alpha or beta release tags. If it is non-empty, 15 | # it will be appended to the version number. It does not have to be 16 | # numeric. Common examples include a1 (alpha release 1), b1 (beta 17 | # release 1), sc2005 (Super Computing 2005 release). The only 18 | # requirement is that it must be entirely printable ASCII characters 19 | # and have no white space. 20 | 21 | greek=a1 22 | 23 | # The date when this release was created 24 | 25 | date="Unreleased developer copy" 26 | 27 | # If snapshot=1, then use the value from snapshot_version as the 28 | # entire hwloc version (i.e., ignore major, minor, release, and 29 | # greek). This is only set to 1 when making snapshot tarballs. 30 | snapshot=1 31 | snapshot_version=${major}.${minor}.${release}${greek}-git 32 | 33 | # The shared library version of hwloc's public library. This version 34 | # is maintained in accordance with the "Library Interface Versions" 35 | # chapter from the GNU Libtool documentation. Notes: 36 | 37 | # 1. Since version numbers are associated with *releases*, the version 38 | # number maintained on the hwloc git master (and developer branches) 39 | # is always 0:0:0. 40 | 41 | # 2. Version numbers are described in the Libtool current:revision:age 42 | # format. 43 | 44 | libhwloc_so_version=0:0:0 45 | 46 | # Please also update the lines in contrib/windows/libhwloc.vcxproj 47 | -------------------------------------------------------------------------------- /autogen.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | # Exit on error, useful if autoconf is missing, the script will stop instead of 4 | # trying to continue. 5 | set -e 6 | 7 | srcdir=$(dirname "$0") 8 | if test "x$srcdir" != x; then 9 | # in case we ever autogen on a platform without dirname 10 | cd $srcdir 11 | fi 12 | 13 | autoreconf ${autoreconf_args:-"-ivf"} 14 | 15 | echo -n "Checking whether configure needs patching for MacOS Big Sur libtool.m4 bug... " 16 | if grep -A1 MACOSX_DEPLOYMENT_TARGET configure | grep powerpc >/dev/null \ 17 | || grep -A1 MACOSX_DEPLOYMENT_TARGET configure | grep 'darwin\[912' >/dev/null; then 18 | echo "no" 19 | else 20 | echo "yes" 21 | echo "Trying to patch configure..." 22 | if patch -p1 --dry-run < config/libtool-big-sur-fixup.patch >/dev/null 2>&1; then 23 | echo "Patching for real now" 24 | patch -p1 < config/libtool-big-sur-fixup.patch 25 | else 26 | echo "WARNING: Couldn't apply Big Sur libtool.m4 bug fix." 27 | fi 28 | fi 29 | -------------------------------------------------------------------------------- /config/hwloc_components.m4: -------------------------------------------------------------------------------- 1 | # Copyright © 2012-2020 Inria. All rights reserved. 2 | # See COPYING in top-level directory. 3 | 4 | 5 | # HWLOC_PREPARE_FILTER_COMPONENTS 6 | # 7 | # Given a list of names, define hwloc__component_maybeplugin=1. 8 | # 9 | # $1 = space-separated list of components to build as plugins 10 | # 11 | AC_DEFUN([HWLOC_PREPARE_FILTER_COMPONENTS], [ 12 | for name in [$1] ; do 13 | str="hwloc_${name}_component_wantplugin=1" 14 | eval $str 15 | done 16 | ]) 17 | 18 | 19 | # HWLOC_FILTER_COMPONENTS 20 | # 21 | # For each component in hwloc_components, 22 | # check if hwloc__component_wantplugin=1, 23 | # and check if hwloc__component_maybeplugin=1. 24 | # Add to hwloc_[static|plugin]_components accordingly. 25 | # And set hwloc__component=[static|plugin] accordingly. 26 | # 27 | AC_DEFUN([HWLOC_FILTER_COMPONENTS], [ 28 | for name in $hwloc_components ; do 29 | str="maybeplugin=\$hwloc_${name}_component_maybeplugin" 30 | eval $str 31 | str="wantplugin=\$hwloc_${name}_component_wantplugin" 32 | eval $str 33 | if test x$hwloc_have_plugins = xyes -a x$maybeplugin = x1 -a x$wantplugin = x1; then 34 | hwloc_plugin_components="$hwloc_plugin_components $name" 35 | str="hwloc_${name}_component=plugin" 36 | else 37 | hwloc_static_components="$hwloc_static_components $name" 38 | str="hwloc_${name}_component=static" 39 | fi 40 | eval $str 41 | done 42 | ]) 43 | 44 | 45 | # HWLOC_LIST_STATIC_COMPONENTS 46 | # 47 | # Append to file $1 an array of components by listing component names in $2. 48 | # 49 | # $1 = filename 50 | # $2 = list of component names 51 | # 52 | AC_DEFUN([HWLOC_LIST_STATIC_COMPONENTS], [ 53 | cat <>[$1] 54 | #include 55 | static const struct hwloc_component * hwloc_static_components[[]] = { 56 | EOF 57 | for comp in [$2]; do 58 | echo " &hwloc_${comp}_component," >>[$1] 59 | done 60 | cat <>[$1] 61 | NULL 62 | }; 63 | EOF 64 | ]) 65 | -------------------------------------------------------------------------------- /config/libtool-big-sur-fixup.patch: -------------------------------------------------------------------------------- 1 | Updated from libtool.m4 patch: 2 | 3 | [PATCH] Improve macOS version detection to support macOS 11 and simplify legacy logic 4 | 5 | Signed-off-by: Jeremy Huddleston Sequoia 6 | 7 | --- hwloc/configure.old 2020-11-25 16:03:04.225097149 +0100 8 | +++ hwloc/configure 2020-11-25 16:02:29.368995613 +0100 9 | @@ -8846,16 +8846,13 @@ 10 | _lt_dar_allow_undefined='$wl-undefined ${wl}suppress' ;; 11 | darwin1.*) 12 | _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;; 13 | - darwin*) # darwin 5.x on 14 | - # if running on 10.5 or later, the deployment target defaults 15 | - # to the OS version, if on x86, and 10.4, the deployment 16 | - # target defaults to 10.4. Don't you love it? 17 | - case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in 18 | - 10.0,*86*-darwin8*|10.0,*-darwin[91]*) 19 | - _lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' ;; 20 | - 10.[012][,.]*) 21 | - _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;; 22 | - 10.*) 23 | + darwin*) 24 | + # Open MPI patched for Darwin / MacOS Big Sur. See 25 | + # http://lists.gnu.org/archive/html/bug-libtool/2015-07/msg00001.html 26 | + case ${MACOSX_DEPLOYMENT_TARGET},$host in 27 | + 10.[012],*|,*powerpc*) 28 | + _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; 29 | + *) 30 | _lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' ;; 31 | esac 32 | ;; 33 | -------------------------------------------------------------------------------- /contrib/android/AndroidApp/.gitignore: -------------------------------------------------------------------------------- 1 | *.iml 2 | .gradle 3 | /local.properties 4 | /.idea/caches 5 | /.idea/libraries 6 | /.idea/modules.xml 7 | /.idea/workspace.xml 8 | /.idea/navEditor.xml 9 | /.idea/assetWizardSettings.xml 10 | .DS_Store 11 | /build 12 | /captures 13 | .externalNativeBuild 14 | -------------------------------------------------------------------------------- /contrib/android/AndroidApp/build.gradle: -------------------------------------------------------------------------------- 1 | // Top-level build file where you can add configuration options common to all sub-projects/modules. 2 | 3 | buildscript { 4 | repositories { 5 | google() 6 | jcenter() 7 | 8 | } 9 | dependencies { 10 | classpath 'com.android.tools.build:gradle:8.5.0' 11 | 12 | // NOTE: Do not place your application dependencies here; they belong 13 | // in the individual module build.gradle files 14 | } 15 | } 16 | 17 | allprojects { 18 | repositories { 19 | google() 20 | jcenter() 21 | maven { 22 | url "https://maven.google.com" 23 | } 24 | } 25 | } 26 | 27 | task clean(type: Delete) { 28 | delete rootProject.buildDir 29 | } 30 | -------------------------------------------------------------------------------- /contrib/android/AndroidApp/gradle.properties: -------------------------------------------------------------------------------- 1 | # Project-wide Gradle settings. 2 | # IDE (e.g. Android Studio) users: 3 | # Gradle settings configured through the IDE *will override* 4 | # any settings specified in this file. 5 | # For more details on how to configure your build environment visit 6 | # http://www.gradle.org/docs/current/userguide/build_environment.html 7 | # Specifies the JVM arguments used for the daemon process. 8 | # The setting is particularly useful for tweaking memory settings. 9 | org.gradle.jvmargs=-Xmx1536m 10 | android.useAndroidX=true 11 | android.enableJetifier=true 12 | # When configured, Gradle will run in incubating parallel mode. 13 | # This option should only be used with decoupled projects. More details, visit 14 | # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects 15 | # org.gradle.parallel=true 16 | 17 | 18 | -------------------------------------------------------------------------------- /contrib/android/AndroidApp/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/open-mpi/hwloc/7776a02c250324aa020d1d030c8927c0db408d82/contrib/android/AndroidApp/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /contrib/android/AndroidApp/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionBase=GRADLE_USER_HOME 2 | distributionPath=wrapper/dists 3 | distributionSha256Sum=a4b4158601f8636cdeeab09bd76afb640030bb5b144aafe261a5e8af027dc612 4 | distributionUrl=https\://services.gradle.org/distributions/gradle-8.8-bin.zip 5 | zipStoreBase=GRADLE_USER_HOME 6 | zipStorePath=wrapper/dists 7 | -------------------------------------------------------------------------------- /contrib/android/AndroidApp/lstopo/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 15 | 20 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 33 | 34 | 36 | 37 | 39 | 40 | 41 | 42 | -------------------------------------------------------------------------------- /contrib/android/AndroidApp/lstopo/src/main/ic_launcher-web.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/open-mpi/hwloc/7776a02c250324aa020d1d030c8927c0db408d82/contrib/android/AndroidApp/lstopo/src/main/ic_launcher-web.png -------------------------------------------------------------------------------- /contrib/android/AndroidApp/lstopo/src/main/java/com/hwloc/lstopo/GenericFileProvider.java: -------------------------------------------------------------------------------- 1 | package com.hwloc.lstopo; 2 | 3 | import androidx.core.content.FileProvider; 4 | 5 | public class GenericFileProvider extends FileProvider { } 6 | -------------------------------------------------------------------------------- /contrib/android/AndroidApp/lstopo/src/main/java/com/hwloc/lstopo/MyCanvas.java: -------------------------------------------------------------------------------- 1 | package com.hwloc.lstopo; 2 | 3 | import android.content.Context; 4 | import android.graphics.Canvas; 5 | import android.graphics.Color; 6 | import android.graphics.Paint; 7 | import android.view.View; 8 | import android.widget.RelativeLayout; 9 | 10 | // Create a canvas in which we can draw a line 11 | public class MyCanvas extends View { 12 | 13 | Paint paint; 14 | 15 | public MyCanvas(Context context, float x1, float x2, float y1, float y2){ 16 | super(context); 17 | 18 | paint = new Paint(); 19 | paint.setColor(Color.BLACK); 20 | paint.setStrokeWidth(10); 21 | 22 | RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams((int)(x2 - x1) + 10, (int)(y2 - y1) + 10); 23 | setLayoutParams(params); 24 | setY(y1); 25 | setX(x1); 26 | } 27 | 28 | @Override 29 | protected void onDraw(Canvas canvas) { 30 | super.onDraw(canvas); 31 | canvas.drawLine(0, 0, getWidth() - 10, getHeight() - 10, paint); 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /contrib/android/AndroidApp/lstopo/src/main/java/com/hwloc/lstopo/ZoomView/README.md: -------------------------------------------------------------------------------- 1 | This class was clone from another repository : 2 | https://github.com/Polidea/android-zoom-view.git 3 | 4 | and was developed by : 5 | Maciej Oczko ( literator ) -------------------------------------------------------------------------------- /contrib/android/AndroidApp/lstopo/src/main/java/com/hwloc/lstopo/ZoomView/licence.txt: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2012-2016 Polidea 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NON INFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /contrib/android/AndroidApp/lstopo/src/main/res/color/drawer_item.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /contrib/android/AndroidApp/lstopo/src/main/res/drawable-v24/ic_launcher_foreground.xml: -------------------------------------------------------------------------------- 1 | 7 | 12 | 13 | 19 | 22 | 25 | 26 | 27 | 28 | 34 | 35 | -------------------------------------------------------------------------------- /contrib/android/AndroidApp/lstopo/src/main/res/drawable/border_radius.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /contrib/android/AndroidApp/lstopo/src/main/res/drawable/button_border.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 7 | 8 | -------------------------------------------------------------------------------- /contrib/android/AndroidApp/lstopo/src/main/res/drawable/ic_share_24px.xml: -------------------------------------------------------------------------------- 1 | 6 | 9 | 10 | -------------------------------------------------------------------------------- /contrib/android/AndroidApp/lstopo/src/main/res/layout/activity_main_nav_header.xml: -------------------------------------------------------------------------------- 1 | 2 | 10 | 14 | -------------------------------------------------------------------------------- /contrib/android/AndroidApp/lstopo/src/main/res/menu/share_menu.xml: -------------------------------------------------------------------------------- 1 | 2 | 9 | 14 | -------------------------------------------------------------------------------- /contrib/android/AndroidApp/lstopo/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /contrib/android/AndroidApp/lstopo/src/main/res/mipmap-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/open-mpi/hwloc/7776a02c250324aa020d1d030c8927c0db408d82/contrib/android/AndroidApp/lstopo/src/main/res/mipmap-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /contrib/android/AndroidApp/lstopo/src/main/res/mipmap-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/open-mpi/hwloc/7776a02c250324aa020d1d030c8927c0db408d82/contrib/android/AndroidApp/lstopo/src/main/res/mipmap-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /contrib/android/AndroidApp/lstopo/src/main/res/mipmap-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/open-mpi/hwloc/7776a02c250324aa020d1d030c8927c0db408d82/contrib/android/AndroidApp/lstopo/src/main/res/mipmap-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /contrib/android/AndroidApp/lstopo/src/main/res/mipmap-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/open-mpi/hwloc/7776a02c250324aa020d1d030c8927c0db408d82/contrib/android/AndroidApp/lstopo/src/main/res/mipmap-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /contrib/android/AndroidApp/lstopo/src/main/res/mipmap-xxxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/open-mpi/hwloc/7776a02c250324aa020d1d030c8927c0db408d82/contrib/android/AndroidApp/lstopo/src/main/res/mipmap-xxxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /contrib/android/AndroidApp/lstopo/src/main/res/values/colors.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | #000000 4 | #9ca8bc 5 | #787878 6 | 7 | -------------------------------------------------------------------------------- /contrib/android/AndroidApp/lstopo/src/main/res/values/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 176dp 4 | -------------------------------------------------------------------------------- /contrib/android/AndroidApp/lstopo/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | hwloc lstopo 3 | 4 | Open navigation drawer 5 | Close navigation drawer 6 | 7 | -------------------------------------------------------------------------------- /contrib/android/AndroidApp/lstopo/src/main/res/values/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 12 | 13 | 14 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /contrib/android/AndroidApp/lstopo/src/main/res/xml/provider_paths.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /contrib/android/AndroidApp/settings.gradle: -------------------------------------------------------------------------------- 1 | include ':lstopo' 2 | -------------------------------------------------------------------------------- /contrib/android/assets/lstopo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/open-mpi/hwloc/7776a02c250324aa020d1d030c8927c0db408d82/contrib/android/assets/lstopo.png -------------------------------------------------------------------------------- /contrib/android/include/static-components.h: -------------------------------------------------------------------------------- 1 | HWLOC_DECLSPEC extern const struct hwloc_component hwloc_noos_component; 2 | HWLOC_DECLSPEC extern const struct hwloc_component hwloc_linux_component; 3 | HWLOC_DECLSPEC extern const struct hwloc_component hwloc_synthetic_component; 4 | HWLOC_DECLSPEC extern const struct hwloc_component hwloc_xml_component; 5 | HWLOC_DECLSPEC extern const struct hwloc_component hwloc_xml_nolibxml_component; 6 | 7 | static const struct hwloc_component * hwloc_static_components[] = { 8 | &hwloc_noos_component, 9 | &hwloc_linux_component, 10 | &hwloc_synthetic_component, 11 | &hwloc_xml_component, 12 | &hwloc_xml_nolibxml_component, 13 | NULL 14 | }; 15 | -------------------------------------------------------------------------------- /contrib/ci.inria.fr/browse_jenkins_logs.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | if test "x$1" = x -o "x$1" = "x-h" -o "x$1" = "x--help"; then 4 | echo "$0 []" 5 | echo " open all build logs from a job on ci.inria.fr jenkins." 6 | echo 7 | echo " If \$HWLOC_JENKINS_BROWSER isn't set (for instance, to 'firefox')," 8 | echo " URLs are listed in the terminal" 9 | echo 10 | echo " may be 'basic/job/master' ('basic' multibranch pipeline on branch 'master')" 11 | echo " or 'basic/view/change-requests/job/PR-302' ('basic' multibranch pipeline on pull request #302)" 12 | echo " or 'bgoglin' (normal pipeline)" 13 | echo 14 | echo " If the build number isn't specified, 'lastBuild' is used." 15 | exit 1 16 | fi 17 | 18 | JOB="$1" 19 | shift 20 | 21 | BUILD="$1" 22 | if test "x$BUILD" = x; then 23 | BUILD=lastBuild 24 | fi 25 | 26 | URL=https://ci.inria.fr/hwloc/job/$JOB/$BUILD/flowGraphTable/ 27 | echo "Reading $URL" 28 | 29 | LIST=$(wget -O - $URL \ 30 | | sed -e 's@@\n@g' \ 31 | | egrep '(sh|bat) - ' \ 32 | | egrep 'job-[0-9]-' \ 33 | | sed -r -e 's#.*href="(/hwloc/job/[^"]+/log/)".*#https://ci.inria.fr\1/\?consoleFull#') 34 | 35 | echo 36 | if test "x$HWLOC_JENKINS_BROWSER" = x; then 37 | echo "URLs are:" 38 | echo $LIST 39 | else 40 | echo "Opening URLs with HWLOC_JENKINS_BROWSER=$HWLOC_JENKINS_BROWSER ..." 41 | $HWLOC_JENKINS_BROWSER $LIST 42 | fi 43 | -------------------------------------------------------------------------------- /contrib/ci.inria.fr/job-1-check.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # 3 | # Copyright © 2012-2020 Inria. All rights reserved. 4 | # See COPYING in top-level directory. 5 | # 6 | 7 | echo "############################" 8 | echo "Running on:" 9 | uname -a 10 | echo "Tarball: $1" 11 | echo "############################" 12 | 13 | set -e 14 | set -x 15 | 16 | # environment variables 17 | test -f $HOME/.ciprofile && . $HOME/.ciprofile 18 | 19 | # extract the tarball 20 | tarball="$1" 21 | basename=$(basename $tarball .tar.gz) 22 | test -d $basename && chmod -R u+rwX $basename && rm -rf $basename 23 | tar xfz $tarball 24 | rm $tarball 25 | cd $basename 26 | 27 | # ignore clock problems 28 | touch configure 29 | 30 | # build without plugins, with relative VPATH 31 | mkdir build 32 | cd build 33 | ../configure $HWLOC_CI_JOB1CHECK_CONFOPTS 34 | make 35 | test x$NO_CHECK = xtrue || make check 36 | utils/lstopo/lstopo-no-graphics -v 37 | cd .. 38 | 39 | # build with plugins, with absolute VPATH 40 | mkdir build-plugins 41 | cd build-plugins 42 | $PWD/../configure --enable-plugins $HWLOC_CI_JOB1CHECK_CONFOPTS 43 | make 44 | test x$NO_CHECK = xtrue || make check 45 | tests/hwloc/wrapper.sh utils/lstopo/lstopo-no-graphics -v 46 | tests/hwloc/wrapper.sh utils/hwloc/hwloc-info --support 47 | cd .. 48 | 49 | # check renaming 50 | test x$NO_CHECK = xtrue || (cd build/tests/hwloc/rename && make check) 51 | 52 | exit 0 53 | -------------------------------------------------------------------------------- /contrib/ci.inria.fr/job-1-visualstudio.bat: -------------------------------------------------------------------------------- 1 | REM 2 | REM Copyright © 2012-2021 Inria. All rights reserved. 3 | REM See COPYING in top-level directory. 4 | REM 5 | 6 | call %JENKINS_CONFIG_DIR%\\ciprofile.bat 7 | 8 | set TARBALL=%1 9 | 10 | echo ############################### 11 | echo Running on: 12 | hostname 13 | ver 14 | echo Tarball: %TARBALL% 15 | echo ############################ 16 | 17 | sh -c "tar xfz %TARBALL%" 18 | if %errorlevel% neq 0 exit /b %errorlevel% 19 | 20 | cd %TARBALL:~0,-7%\contrib\windows 21 | if %errorlevel% neq 0 exit /b %errorlevel% 22 | 23 | MSBuild /p:Configuration=Release /p:Platform=x64 hwloc.sln 24 | if %errorlevel% neq 0 exit /b %errorlevel% 25 | 26 | x64\Release\lstopo-no-graphics.exe -v 27 | if %errorlevel% neq 0 exit /b %errorlevel% 28 | 29 | x64\Release\lstopo-no-graphics.exe --windows-processor-groups 30 | if %errorlevel% neq 0 exit /b %errorlevel% 31 | 32 | x64\Release\hwloc-info.exe --support 33 | if %errorlevel% neq 0 exit /b %errorlevel% 34 | 35 | exit /b 0 36 | -------------------------------------------------------------------------------- /contrib/ci.inria.fr/job-1-wincmake.bat: -------------------------------------------------------------------------------- 1 | REM 2 | REM Copyright © 2012-2023 Inria. All rights reserved. 3 | REM See COPYING in top-level directory. 4 | REM 5 | 6 | call %JENKINS_CONFIG_DIR%\\ciprofile.bat 7 | 8 | set TARBALL=%1 9 | set BASENAME=%TARBALL:~0,-7% 10 | REM reduce the build path name to avoid issues with very long file names in cmake/nmake 11 | set SHORTNAME=%BASENAME:~-9% 12 | 13 | echo ############################### 14 | echo Running on: 15 | hostname 16 | ver 17 | echo Tarball: %TARBALL% 18 | echo Build short name: %SHORTNAME% 19 | echo ############################ 20 | 21 | sh -c "tar xfz %TARBALL%" 22 | if %errorlevel% neq 0 exit /b %errorlevel% 23 | 24 | move %BASENAME% %SHORTNAME% 25 | if %errorlevel% neq 0 exit /b %errorlevel% 26 | 27 | cd %SHORTNAME%\contrib\windows-cmake 28 | if %errorlevel% neq 0 exit /b %errorlevel% 29 | 30 | cmake %HWLOC_WINCMAKE_OPTS% --install-prefix=%cd%/install -DCMAKE_BUILD_TYPE=Release -B build 31 | if %errorlevel% neq 0 exit /b %errorlevel% 32 | 33 | cmake --build build --parallel 34 | if %errorlevel% neq 0 exit /b %errorlevel% 35 | 36 | cmake --install build 37 | if %errorlevel% neq 0 exit /b %errorlevel% 38 | 39 | install\bin\lstopo-no-graphics.exe -v 40 | if %errorlevel% neq 0 exit /b %errorlevel% 41 | 42 | install\bin\lstopo-no-graphics.exe --windows-processor-groups 43 | if %errorlevel% neq 0 exit /b %errorlevel% 44 | 45 | install\bin\hwloc-info.exe --support 46 | if %errorlevel% neq 0 exit /b %errorlevel% 47 | 48 | ctest --test-dir build -V 49 | if %errorlevel% neq 0 exit /b %errorlevel% 50 | 51 | exit /b 0 52 | -------------------------------------------------------------------------------- /contrib/ci.inria.fr/job-3-android.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # 3 | # Copyright © 2012-2020 Inria. All rights reserved. 4 | # See COPYING in top-level directory. 5 | # 6 | 7 | echo "############################" 8 | echo "Running on:" 9 | uname -a 10 | echo "Tarball: $1" 11 | echo "############################" 12 | 13 | set -e 14 | set -x 15 | 16 | # environment variables 17 | test -f $HOME/.ciprofile && . $HOME/.ciprofile 18 | 19 | # extract the tarball 20 | tarball="$1" 21 | basename=$(basename $tarball .tar.gz) 22 | test -d $basename && chmod -R u+rwX $basename && rm -rf $basename 23 | tar xfz $tarball 24 | rm $tarball 25 | cd $basename 26 | 27 | # build android 28 | tar zxvf ../android.tar.gz 29 | cd contrib/android/AndroidApp 30 | ./gradlew --full-stacktrace build 31 | 32 | # move apk in specific folder (alphabetically ordered after the main tarballs in the jenkins artifacts) 33 | rm -rf ../../../../lstopo-android 34 | mkdir ../../../../lstopo-android 35 | mv lstopo/build/outputs/apk/debug/*.apk ../../../../lstopo-android 36 | 37 | exit 0 38 | -------------------------------------------------------------------------------- /contrib/ci.inria.fr/job-3-coverity.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # 3 | # Copyright © 2012-2022 Inria. All rights reserved. 4 | # See COPYING in top-level directory. 5 | # 6 | 7 | echo "############################" 8 | echo "Running on:" 9 | uname -a 10 | echo "Tarball: $3" 11 | echo "############################" 12 | 13 | set -e 14 | set -x 15 | 16 | git_repo_url="$1" 17 | hwloc_branch="$2" 18 | tarball="$3" 19 | 20 | if test -z "$git_repo_url" || test -z "$hwloc_branch"; then 21 | echo "Need repo URL and branch name as arguments." 22 | exit 1 23 | fi 24 | 25 | # environment variables 26 | test -f $HOME/.ciprofile && . $HOME/.ciprofile 27 | 28 | # check that the repo is the official one 29 | # check that this is master 30 | if test x$hwloc_branch != xmaster -o x$git_repo_url != xhttps://github.com/open-mpi/hwloc.git; then 31 | if test x$FORCE_COVERITY = xtrue; then 32 | echo "Forcing coverity on non-master-branch or non-official repository." 33 | else 34 | echo "Ignoring non-master-branch or non-official repository." 35 | exit 0 36 | fi 37 | fi 38 | 39 | # extract the tarball 40 | basename=$(basename $tarball .tar.gz) 41 | test -d $basename && chmod -R u+rwX $basename && rm -rf $basename 42 | tar xfz $tarball 43 | rm $tarball 44 | cd $basename 45 | 46 | # ignore clock problems 47 | touch configure 48 | 49 | # configure things 50 | EMAIL=brice.goglin@labri.fr 51 | VERSION=$basename 52 | COVDIR=cov-int 53 | COVBALL=myproject.tgz 54 | 55 | # run 56 | ./configure --enable-plugins 57 | cov-build --dir ${COVDIR} make all 58 | # run 'make check' even if NO_CHECK is set 59 | # (we don't want some issues to disappear from coverity depending on custom job config) 60 | cov-build --dir ${COVDIR} make check 61 | 62 | tar cfvz ${COVBALL} ${COVDIR} 63 | curl --form file=@${COVBALL} \ 64 | --form "token=<${COVERITY_TOKEN_FILE}" \ 65 | --form email=${EMAIL} \ 66 | --form version=${VERSION} \ 67 | --form description=manual \ 68 | https://scan.coverity.com/builds?project=hwloc 69 | 70 | exit 0 71 | -------------------------------------------------------------------------------- /contrib/ci.inria.fr/job-3-cygwin.bat: -------------------------------------------------------------------------------- 1 | REM 2 | REM Copyright © 2012-2018 Inria. All rights reserved. 3 | REM See COPYING in top-level directory. 4 | REM 5 | 6 | call %JENKINS_CONFIG_DIR%\\ciprofile.bat 7 | 8 | sh -c "chmod 755 job-3-cygwin.sh" 9 | sh -c "./job-3-cygwin.sh %1" 10 | if %errorlevel% neq 0 exit /b %errorlevel% 11 | 12 | exit /b 0 -------------------------------------------------------------------------------- /contrib/ci.inria.fr/job-3-cygwin.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # 3 | # Copyright © 2012-2021 Inria. All rights reserved. 4 | # See COPYING in top-level directory. 5 | # 6 | 7 | echo "############################" 8 | echo "Running on:" 9 | uname -a 10 | echo "Tarball: $1" 11 | echo "############################" 12 | 13 | set -e 14 | set -x 15 | 16 | # extract the tarball 17 | tarball="$1" 18 | basename=$(basename $tarball .tar.gz) 19 | test -d $basename && chmod -R u+rwX $basename && rm -rf $basename 20 | tar xfz $tarball 21 | rm $tarball 22 | cd $basename 23 | 24 | # ignore clock problems 25 | touch configure 26 | 27 | # build without plugins, with relative VPATH 28 | mkdir build 29 | cd build 30 | ../configure 31 | make 32 | test x$NO_CHECK = xtrue || make check 33 | utils/lstopo/lstopo-no-graphics -v 34 | utils/lstopo/lstopo-no-graphics --windows-processor-groups 35 | utils/hwloc/hwloc-info --support 36 | cd .. 37 | 38 | exit 0 39 | -------------------------------------------------------------------------------- /contrib/ci.inria.fr/job-3-debug.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # 3 | # Copyright © 2012-2020 Inria. All rights reserved. 4 | # See COPYING in top-level directory. 5 | # 6 | 7 | echo "############################" 8 | echo "Running on:" 9 | uname -a 10 | echo "Tarball: $1" 11 | echo "############################" 12 | 13 | set -e 14 | set -x 15 | 16 | # environment variables 17 | test -f $HOME/.ciprofile && . $HOME/.ciprofile 18 | 19 | # extract the tarball 20 | tarball="$1" 21 | basename=$(basename $tarball .tar.gz) 22 | test -d $basename && chmod -R u+rwX $basename && rm -rf $basename 23 | tar xfz $tarball 24 | rm $tarball 25 | cd $basename 26 | 27 | # ignore clock problems 28 | touch configure 29 | 30 | # build with plugins and debug 31 | mkdir build-plugins-debug 32 | cd build-plugins-debug 33 | ../configure --enable-plugins --enable-debug $HWLOC_CI_JOB3DEBUG_CONFOPTS 34 | make 35 | test x$NO_CHECK = xtrue || make check 36 | tests/hwloc/wrapper.sh utils/lstopo/lstopo-no-graphics 37 | cd .. 38 | 39 | exit 0 40 | -------------------------------------------------------------------------------- /contrib/ci.inria.fr/job-3-embedded.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # 3 | # Copyright © 2012-2018 Inria. All rights reserved. 4 | # See COPYING in top-level directory. 5 | # 6 | 7 | echo "############################" 8 | echo "Running on:" 9 | uname -a 10 | echo "Tarball: $1" 11 | echo "############################" 12 | 13 | set -e 14 | set -x 15 | 16 | # environment variables 17 | test -f $HOME/.ciprofile && . $HOME/.ciprofile 18 | 19 | # extract the tarball 20 | tarball="$1" 21 | basename=$(basename $tarball .tar.gz) 22 | test -d $basename && chmod -R u+rwX $basename && rm -rf $basename 23 | tar xfz $tarball 24 | mv $tarball $basename # keep the tarball, we'll need it for the embedded test below 25 | cd $basename 26 | 27 | # ignore clock problems 28 | touch configure 29 | 30 | # embedded tests 31 | (cd tests/hwloc/embedded && ./run-embedded-tests.sh ../../../$tarball) 32 | 33 | exit 0 34 | -------------------------------------------------------------------------------- /contrib/ci.inria.fr/job-3-mingw.bat: -------------------------------------------------------------------------------- 1 | REM 2 | REM Copyright © 2012-2021 Inria. All rights reserved. 3 | REM See COPYING in top-level directory. 4 | REM 5 | 6 | call %JENKINS_CONFIG_DIR%\\ciprofile.bat 7 | 8 | REM %MINGW32SH% and %MINGW64SH% should be defined on the slave to something like: 9 | REM C:\msys64\usr\bin\env MSYSTEM=MINGW32 HOME=%cd% /usr/bin/bash -li 10 | REM (either in ciprofile.bat or custom Windows environment variables) 11 | 12 | REM bashrc should then define $MSLIB32_PATH and $MSLIB64_PATH pointing to MSVC 13 | REM lib.exe directory for 32/64 builds, such as: 14 | REM export MSLIB32_PATH=/c/Program Files (x86)/Microsoft Visual Studio/2019/Community/VC/Tools/MSVC/14.27.29110/bin/Hostx86/x86/ 15 | REM export MSLIB64_PATH=/c/Program Files (x86)/Microsoft Visual Studio/2019/Community/VC/Tools/MSVC/14.27.29110/bin/Hostx64/x64/ 16 | 17 | REM bashrc also must make sure MSYS isn't going to rewrite lib.exe options 18 | REM such as "/def:.libs/libhwloc.def" into Windows paths. 19 | REM Can be avoided in MSYS2 with: 20 | REM export MSYS2_ARG_CONV_EXCL="/machine;/def;/out;/name" 21 | 22 | sh -c "chmod 755 job-3-mingw.sh" 23 | 24 | if %2 equ 32 set MINGWSH=%MINGW32SH% 25 | if %2 equ 64 set MINGWSH=%MINGW64SH% 26 | 27 | %MINGWSH% -c "./job-3-mingw.sh %1 %2" 28 | if %errorlevel% neq 0 exit /b %errorlevel% 29 | 30 | exit /b 0 31 | -------------------------------------------------------------------------------- /contrib/completion/Makefile.am: -------------------------------------------------------------------------------- 1 | # Copyright © 2009-2024 Inria. All rights reserved. 2 | # 3 | # See COPYING in top-level directory. 4 | 5 | # This makefile is only reached when building in standalone mode 6 | 7 | bashcompletionsdir = $(datadir)/bash-completion/completions 8 | dist_bashcompletions_DATA = bash/hwloc 9 | 10 | if HWLOC_HAVE_BASH 11 | # no need to test everywhere, Linux is enough 12 | if HWLOC_HAVE_LINUX 13 | TESTS = test-bash-completion.sh 14 | endif 15 | endif 16 | -------------------------------------------------------------------------------- /contrib/coverity-model.c: -------------------------------------------------------------------------------- 1 | void bogus() { 2 | __coverity_panic__(); 3 | } 4 | -------------------------------------------------------------------------------- /contrib/git-hooks/check-versions.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # 3 | # Copyright © 2018-2021 Inria. All rights reserved. 4 | # $COPYRIGHT$ 5 | # 6 | 7 | ./contrib/windows/check-versions.sh --quiet 8 | ./contrib/android/check-versions.sh --quiet 9 | ./contrib/windows-cmake/check-versions.sh --quiet 10 | -------------------------------------------------------------------------------- /contrib/git-hooks/pre-commit: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # This hook may be installed in .git/hooks (or ~/.git_template for future clones) 4 | # and additional/custom checks may be added if needed. 5 | 6 | function die() { 7 | rc=$1 8 | shift; 9 | printf "*** GIT PRE-COMMIT HOOK FAILED ***:\n" 10 | echo "$@" 11 | exit $rc 12 | } 13 | 14 | if test -f contrib/git-hooks/check-versions.sh; then 15 | echo "=== Checking versions..." 16 | ./contrib/git-hooks/check-versions.sh || die $? "Versions are not up to date" 17 | else 18 | echo "=== No check-versions.sh script -- skipping" 19 | fi 20 | 21 | if test -f contrib/git-hooks/check-manpages-completions.pl; then 22 | echo "=== Checking manpages and completions..." 23 | ./contrib/git-hooks/check-manpages-completions.pl || die $? "Manpages or completions are not up to date" 24 | else 25 | echo "=== No check-manpages-completions.pl script -- skipping" 26 | fi 27 | 28 | # If we have a copyright-checking script, run it 29 | if test -x ./contrib/update-my-copyright.pl; then 30 | echo "=== Checking copyrights..." 31 | ./contrib/update-my-copyright.pl --check-only --quiet || die $? "Copyrights are not up to date" 32 | else 33 | echo "=== No update-my-copyright.pl script -- skipping" 34 | fi 35 | -------------------------------------------------------------------------------- /contrib/hwloc-ps.www/Makefile.am: -------------------------------------------------------------------------------- 1 | # Copyright © 2019 Inria. All rights reserved. 2 | # See COPYING in top-level directory. 3 | 4 | jsdir = $(pkgdatadir)/hwloc-ps.www 5 | dist_js_DATA = client.js \ 6 | package.json \ 7 | README 8 | 9 | jsassetsdir = $(jsdir)/assets 10 | dist_jsassets_DATA = assets/index.html \ 11 | assets/main.css \ 12 | assets/script.js \ 13 | assets/style.css 14 | -------------------------------------------------------------------------------- /contrib/hwloc-ps.www/README: -------------------------------------------------------------------------------- 1 | This tool displays process and thread binding in an interative web page. 2 | 3 | 4 | 1) Basic Usage 5 | 6 | Run the hwloc-ps tool in JSON server mode: 7 | 8 | $ hwloc-ps --json-server 9 | server running on port 8888... 10 | 11 | Export the topology as a SVG file using the native backend: 12 | 13 | $ lstopo filename.svg --of nativesvg 14 | 15 | Now run the client side for displaying the binding: 16 | 17 | $ cd /path/to/hwloc-ps.www/ 18 | $ node client.js /path/to/filename.svg 19 | 20 | This should open a webpage in your browser. 21 | Otherwise add -u to see the URL that you should open (usually http://localhost:3000). 22 | 23 | 24 | 2) Installing node.js and JS dependencies 25 | 26 | The "node" command is available in the "nodejs" package in most Linux distributions, 27 | but you should rather install the "npm" package to get additional utilities: 28 | 29 | # apt instal npm 30 | # yum install npm 31 | 32 | Then install the dependencies needed by client.js: 33 | 34 | $ cd /path/to/hwloc-ps.www/ 35 | $ npm install 36 | 37 | If you don't have write-access to the hwloc-ps.www/ directory, 38 | copy it somewhere else, run "npm install" from there, 39 | and then run the client from there: 40 | 41 | $ cp -a /path/to/hwloc-ps.www/ $HOME/myhwloc-ps.www/ 42 | $ cd $HOME/myhwloc-ps.www/ 43 | $ npm install 44 | $ node client.js /path/to/filename.svg 45 | 46 | 47 | 3) Running on a remote server 48 | 49 | This tool is often useful for debugging process placement on remote servers, hence: 50 | 51 | * hwloc-ps and lstopo should run on that remote server 52 | (this requires a recent hwloc on the remote side). 53 | 54 | * you must copy the SVG file back to your machine: 55 | 56 | $ scp target:/path/to/filename.svg . 57 | 58 | * if the target machine port 8888 is not directly accessible, you may 59 | have to forward its 8888 port: 60 | 61 | $ ssh target -L 8888:localhost:8888 -Nf 62 | -------------------------------------------------------------------------------- /contrib/hwloc-ps.www/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "js", 3 | "version": "1.0.0", 4 | "description": "", 5 | "main": "client.js", 6 | "scripts": { 7 | "test": "echo \"Error: no test specified\" && exit 1", 8 | "grunt": "grunt", 9 | "server": "node server.js" 10 | }, 11 | "author": "", 12 | "license": "ISC", 13 | "dependencies": { 14 | "express": "^4.16.4", 15 | "open": ">=6.0.0" 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /contrib/misc/Makefile.am: -------------------------------------------------------------------------------- 1 | # Copyright © 2009-2020 Inria. All rights reserved. 2 | # 3 | # See COPYING in top-level directory. 4 | 5 | # This makefile is only reached when building in standalone mode 6 | 7 | AM_CFLAGS = $(HWLOC_CFLAGS) 8 | AM_CPPFLAGS = $(HWLOC_CPPFLAGS) 9 | AM_LDFLAGS = $(HWLOC_LDFLAGS) 10 | 11 | LDADD = $(HWLOC_top_builddir)/hwloc/libhwloc.la 12 | 13 | check_PROGRAMS = hwloc-tweak-osindex 14 | 15 | dist_doc_DATA = dynamic_SVG_example.html 16 | 17 | EXTRA_DIST = hwloc-export-sysfs 18 | -------------------------------------------------------------------------------- /contrib/systemd/Makefile.am: -------------------------------------------------------------------------------- 1 | # Copyright © 2016 Inria. All rights reserved. 2 | # Copyright © 2016 Université Bordeaux 3 | # See COPYING in top-level directory. 4 | 5 | # We can't use autoconf because we don't want $sbindir to be replaced with ${exec_prefix}/sbin 6 | # Also don't install since , let the packagers do it. 7 | 8 | EXTRA_DIST = hwloc-dump-hwdata.service.in 9 | 10 | if HWLOC_HAVE_LINUX 11 | nodist_pkgdata_DATA = hwloc-dump-hwdata.service 12 | # depend on Makefile in case we rerun configure with different directory arguments 13 | hwloc-dump-hwdata.service: hwloc-dump-hwdata.service.in Makefile 14 | @echo Creating $@... 15 | @ $(SED) \ 16 | -e 's/#SBINDIR#/$(subst /,\/,$(sbindir))/g' \ 17 | -e 's/#RUNSTATEDIR#/$(subst /,\/,$(HWLOC_runstatedir))/g' \ 18 | > $@ < $< 19 | 20 | distclean-local: 21 | rm -f hwloc-dump-hwdata.service 22 | endif 23 | -------------------------------------------------------------------------------- /contrib/systemd/hwloc-dump-hwdata.service.in: -------------------------------------------------------------------------------- 1 | # 2 | # Copyright © 2015-2016 Intel, Inc. All rights reserved. 3 | # Copyright © 2016 Inria. All rights reserved. 4 | # See COPYING in top-level directory. 5 | # 6 | # #RUNSTATEDIR#/hwloc was specified at configure time. 7 | # It may be changed by passing configure options such as --runstatedir, 8 | # --localstatedir or --prefix. 9 | # It may also be manually changed before installing this file in systemd directories. 10 | # 11 | 12 | [Unit] 13 | Description=Dump hardware topology and locality information to #RUNSTATEDIR#/hwloc 14 | 15 | [Service] 16 | Type=oneshot 17 | RemainAfterExit=yes 18 | ExecStart=#SBINDIR#/hwloc-dump-hwdata -o #RUNSTATEDIR#/hwloc 19 | 20 | [Install] 21 | WantedBy=multi-user.target 22 | -------------------------------------------------------------------------------- /contrib/update-versions.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # 3 | # Copyright © 2021 Inria. All rights reserved. 4 | # $COPYRIGHT$ 5 | # 6 | 7 | # 8 | # Update windows/cmake/android versions from VERSION 9 | # 10 | 11 | ./contrib/windows/check-versions.sh --update 12 | echo 13 | echo 14 | ./contrib/android/check-versions.sh --update 15 | echo 16 | echo 17 | ./contrib/windows-cmake/check-versions.sh --update 18 | -------------------------------------------------------------------------------- /contrib/windows-cmake/README: -------------------------------------------------------------------------------- 1 | This CMake support for Windows builds is inspired from 2 | https://github.com/microsoft/vcpkg/blob/7e495c0773353de69f24f3af8aea0ae9a129508c/ports/hwloc/CMakeLists.txt 3 | (before vcpkg switched from CMake to autotools). 4 | 5 | May be used with: 6 | $ cmake [options] -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=\path\to\install . 7 | $ cmake --build . 8 | $ cmake --build . --target INSTALL 9 | 10 | The "Debug" build type is also available, it enables lots of 11 | verbose debug messages and assertions. 12 | 13 | Options: 14 | -DHWLOC_SKIP_LSTOPO=1 to ignore lstopo 15 | -DHWLOC_SKIP_TOOLS=1 to ignore other hwloc command-line tools 16 | -DHWLOC_SKIP_INCLUDES=1 to ignore header installation 17 | 18 | See contrib/ci.inria.fr/job-1-wincmake.bat for an example. 19 | 20 | 21 | hwloc-compress-dir not built because it needs work. 22 | 23 | hwloc-gather-topology is Linux specific. 24 | 25 | hwloc-ps is not built because it does nothing on Windows anyway (see #367). 26 | -------------------------------------------------------------------------------- /contrib/windows-cmake/static-components.h.in: -------------------------------------------------------------------------------- 1 | HWLOC_DECLSPEC extern const struct hwloc_component hwloc_noos_component; 2 | HWLOC_DECLSPEC extern const struct hwloc_component hwloc_xml_component; 3 | HWLOC_DECLSPEC extern const struct hwloc_component hwloc_synthetic_component; 4 | HWLOC_DECLSPEC extern const struct hwloc_component hwloc_xml_nolibxml_component; 5 | HWLOC_DECLSPEC extern const struct hwloc_component hwloc_windows_component; 6 | #ifdef HWLOC_HAVE_X86_CPUID 7 | HWLOC_DECLSPEC extern const struct hwloc_component hwloc_x86_component; 8 | #endif 9 | #ifdef HWLOC_HAVE_LIBXML2 10 | HWLOC_DECLSPEC extern const struct hwloc_component hwloc_xml_libxml_component; 11 | #endif 12 | #ifdef HWLOC_HAVE_OPENCL 13 | HWLOC_DECLSPEC extern const struct hwloc_component hwloc_opencl_component; 14 | #endif 15 | #ifdef HWLOC_HAVE_CUDART 16 | HWLOC_DECLSPEC extern const struct hwloc_component hwloc_cuda_component; 17 | #endif 18 | 19 | static const struct hwloc_component * hwloc_static_components[] = { 20 | &hwloc_noos_component, 21 | &hwloc_xml_component, 22 | &hwloc_synthetic_component, 23 | &hwloc_xml_nolibxml_component, 24 | &hwloc_windows_component, 25 | #ifdef HWLOC_HAVE_X86_CPUID 26 | &hwloc_x86_component, 27 | #endif 28 | #ifdef HWLOC_HAVE_OPENCL 29 | &hwloc_opencl_component, 30 | #endif 31 | #ifdef HWLOC_HAVE_CUDART 32 | &hwloc_cuda_component, 33 | #endif 34 | #ifdef HWLOC_HAVE_LIBXML2 35 | &hwloc_xml_libxml_component, 36 | #endif 37 | NULL 38 | }; 39 | -------------------------------------------------------------------------------- /contrib/windows/Makefile.am: -------------------------------------------------------------------------------- 1 | # Copyright © 2009-2020 Inria. All rights reserved. 2 | # See COPYING in top-level directory. 3 | 4 | EXTRA_DIST = \ 5 | README \ 6 | hwloc.sln \ 7 | hwloc_config.h \ 8 | private_config.h \ 9 | static-components.h \ 10 | libhwloc.vcxproj \ 11 | libhwloc.vcxproj.filters \ 12 | hwloc-annotate.vcxproj \ 13 | hwloc-annotate.vcxproj.filters \ 14 | hwloc-bind.vcxproj \ 15 | hwloc-bind.vcxproj.filters \ 16 | hwloc-calc.vcxproj \ 17 | hwloc-calc.vcxproj.filters \ 18 | hwloc-diff.vcxproj \ 19 | hwloc-diff.vcxproj.filters \ 20 | hwloc-distrib.vcxproj \ 21 | hwloc-distrib.vcxproj.filters \ 22 | hwloc-gather-cpuid.vcxproj \ 23 | hwloc-gather-cpuid.vcxproj.filters \ 24 | hwloc-info.vcxproj \ 25 | hwloc-info.vcxproj.filters \ 26 | hwloc-patch.vcxproj \ 27 | hwloc-patch.vcxproj.filters \ 28 | lstopo-no-graphics.vcxproj \ 29 | lstopo-no-graphics.vcxproj.filters \ 30 | lstopo-win.vcxproj \ 31 | lstopo-win.vcxproj.filters \ 32 | lstopo.vcxproj \ 33 | lstopo.vcxproj.filters \ 34 | app.manifest \ 35 | check-versions.sh 36 | -------------------------------------------------------------------------------- /contrib/windows/README: -------------------------------------------------------------------------------- 1 | This Visual Studio support is experimental. 2 | Thanks to Eloi Gaudry for contributing most of these files. 3 | 4 | This may be directly open in VS, or built from the command-line with: 5 | %MSBUILD_PATH%\MSBuild hwloc.sln /p:Configuration=Release /p:Platform=x64 6 | 7 | If the specified platform toolset is too recent for your VS installation: 8 | "The builds tools for v142 (Platform Toolset = 'v142') cannot be found." 9 | You may force the build using your old one by adding 10 | /p:PlatformToolset=v110 11 | 12 | See contrib/ci.inria.fr/job-1-visualstudio.bat for an example. 13 | 14 | 15 | hwloc-compress-dir not built because it needs work. 16 | 17 | hwloc-gather-topology is Linux specific. 18 | 19 | hwloc-ps is not built because it does nothing on Windows anyway (see #367). 20 | -------------------------------------------------------------------------------- /contrib/windows/app.manifest: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /contrib/windows/hwloc-gather-cpuid.vcxproj.filters: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | {4FC737F1-C7A5-4376-A066-2A32D752A2FF} 6 | cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx 7 | 8 | 9 | {93995380-89BD-4b04-88EB-625FBE52EBFB} 10 | h;hpp;hxx;hm;inl;inc;xsd 11 | 12 | 13 | {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} 14 | rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms 15 | 16 | 17 | 18 | 19 | Source Files 20 | 21 | 22 | 23 | 24 | Header Files 25 | 26 | 27 | Header Files 28 | 29 | 30 | Header Files 31 | 32 | 33 | 34 | -------------------------------------------------------------------------------- /contrib/windows/hwloc_config.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright © 2009 CNRS 3 | * Copyright © 2009-2022 Inria. All rights reserved. 4 | * Copyright © 2009-2012 Université Bordeaux 5 | * Copyright © 2009-2011 Cisco Systems, Inc. All rights reserved. 6 | * See COPYING in top-level directory. 7 | */ 8 | 9 | /* The configuration file */ 10 | 11 | #ifndef HWLOC_CONFIG_H 12 | #define HWLOC_CONFIG_H 13 | 14 | #define HWLOC_VERSION "3.0.0a1" 15 | #define HWLOC_VERSION_MAJOR 3 16 | #define HWLOC_VERSION_MINOR 0 17 | #define HWLOC_VERSION_RELEASE 0 18 | #define HWLOC_VERSION_GREEK "a1" 19 | 20 | #define __hwloc_restrict 21 | #define __hwloc_inline __inline 22 | 23 | #define __hwloc_attribute_unused 24 | #define __hwloc_attribute_malloc 25 | #define __hwloc_attribute_const 26 | #define __hwloc_attribute_pure 27 | #define __hwloc_attribute_deprecated 28 | #define __hwloc_attribute_may_alias 29 | #define __hwloc_attribute_warn_unused_result 30 | 31 | /* Defined to 1 if you have the `windows.h' header. */ 32 | #define HWLOC_HAVE_WINDOWS_H 1 33 | #define hwloc_pid_t HANDLE 34 | #define hwloc_thread_t HANDLE 35 | 36 | #include 37 | #include 38 | typedef DWORDLONG hwloc_uint64_t; 39 | 40 | #if defined( _USRDLL ) /* dynamic linkage */ 41 | #if defined( DECLSPEC_EXPORTS ) 42 | #define HWLOC_DECLSPEC __declspec(dllexport) 43 | #else 44 | #define HWLOC_DECLSPEC __declspec(dllimport) 45 | #endif 46 | #else /* static linkage */ 47 | #define HWLOC_DECLSPEC 48 | #endif 49 | 50 | /* Whether we need to re-define all the hwloc public symbols or not */ 51 | #define HWLOC_SYM_TRANSFORM 0 52 | 53 | /* The hwloc symbol prefix */ 54 | #define HWLOC_SYM_PREFIX hwloc_ 55 | 56 | /* The hwloc symbol prefix in all caps */ 57 | #define HWLOC_SYM_PREFIX_CAPS HWLOC_ 58 | 59 | #endif /* HWLOC_CONFIG_H */ 60 | -------------------------------------------------------------------------------- /contrib/windows/static-components.h: -------------------------------------------------------------------------------- 1 | HWLOC_DECLSPEC extern const struct hwloc_component hwloc_noos_component; 2 | HWLOC_DECLSPEC extern const struct hwloc_component hwloc_xml_component; 3 | HWLOC_DECLSPEC extern const struct hwloc_component hwloc_synthetic_component; 4 | HWLOC_DECLSPEC extern const struct hwloc_component hwloc_xml_nolibxml_component; 5 | HWLOC_DECLSPEC extern const struct hwloc_component hwloc_windows_component; 6 | HWLOC_DECLSPEC extern const struct hwloc_component hwloc_x86_component; 7 | static const struct hwloc_component * hwloc_static_components[] = { 8 | &hwloc_noos_component, 9 | &hwloc_xml_component, 10 | &hwloc_synthetic_component, 11 | &hwloc_xml_nolibxml_component, 12 | &hwloc_windows_component, 13 | &hwloc_x86_component, 14 | NULL 15 | }; 16 | -------------------------------------------------------------------------------- /doc/README.sed: -------------------------------------------------------------------------------- 1 | s/\–/--/g 2 | s/©/(c)/g 3 | s/é/é/g 4 | s/
12 | #include 13 | 14 | #include "hwloc.h" 15 | 16 | int main(void) 17 | { 18 | hwloc_topology_t topology; 19 | hwloc_obj_t root; 20 | const char *cluster_mode; 21 | const char *memory_mode; 22 | 23 | hwloc_topology_init(&topology); 24 | hwloc_topology_load(topology); 25 | 26 | root = hwloc_get_root_obj(topology); 27 | 28 | cluster_mode = hwloc_obj_get_info_by_name(root, "ClusterMode"); 29 | memory_mode = hwloc_obj_get_info_by_name(root, "MemoryMode"); 30 | 31 | printf ("ClusterMode is '%s' MemoryMode is '%s'\n", 32 | cluster_mode ? cluster_mode : "NULL", 33 | memory_mode ? memory_mode : "NULL"); 34 | 35 | hwloc_topology_destroy(topology); 36 | return 0; 37 | } 38 | -------------------------------------------------------------------------------- /doc/images/HACKING: -------------------------------------------------------------------------------- 1 | To update PNG files, do: 2 | 3 | cd /doc/images 4 | export PATH=/utils/lstopo:$PATH 5 | 6 | for f in dudley emmett hagrid devel09-pci; do 7 | LANG=C lstopo -i ${f}.xml --horiz=machine --no-legend --disallowed -f ${f}.png ; 8 | done 9 | 10 | for f in ppc64-without-smt ppc64-with-smt ppc64-full-with-smt ; do 11 | LANG=C lstopo -i ${f}.xml --horiz --no-legend --logical --no-index --index=pu --index=numa --index=core --index=pack --no-factorize -f ${f}.png ; 12 | done 13 | 14 | for f in heteromem ; do 15 | LANG=C lstopo -i ${f}.xml --horiz --no-legend --logical --no-index --ignore pu --index=numa --index=core --index=pack --no-factorize -f ${f}.png ; 16 | done 17 | -------------------------------------------------------------------------------- /doc/images/devel09-pci.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/open-mpi/hwloc/7776a02c250324aa020d1d030c8927c0db408d82/doc/images/devel09-pci.png -------------------------------------------------------------------------------- /doc/images/dudley.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/open-mpi/hwloc/7776a02c250324aa020d1d030c8927c0db408d82/doc/images/dudley.png -------------------------------------------------------------------------------- /doc/images/emmett.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/open-mpi/hwloc/7776a02c250324aa020d1d030c8927c0db408d82/doc/images/emmett.png -------------------------------------------------------------------------------- /doc/images/hagrid.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/open-mpi/hwloc/7776a02c250324aa020d1d030c8927c0db408d82/doc/images/hagrid.png -------------------------------------------------------------------------------- /doc/images/heteromem.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/open-mpi/hwloc/7776a02c250324aa020d1d030c8927c0db408d82/doc/images/heteromem.png -------------------------------------------------------------------------------- /doc/images/ppc64-full-with-smt.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/open-mpi/hwloc/7776a02c250324aa020d1d030c8927c0db408d82/doc/images/ppc64-full-with-smt.png -------------------------------------------------------------------------------- /doc/images/ppc64-with-smt.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/open-mpi/hwloc/7776a02c250324aa020d1d030c8927c0db408d82/doc/images/ppc64-with-smt.png -------------------------------------------------------------------------------- /doc/images/ppc64-without-smt.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/open-mpi/hwloc/7776a02c250324aa020d1d030c8927c0db408d82/doc/images/ppc64-without-smt.png -------------------------------------------------------------------------------- /doc/readthedocs/conf.py: -------------------------------------------------------------------------------- 1 | import subprocess, os 2 | 3 | html_static_path = ['_build/html'] 4 | html_extra_path = ['./build/html'] 5 | 6 | read_the_docs_build = os.environ.get('READTHEDOCS', None) == 'True' 7 | if read_the_docs_build: 8 | subprocess.call('./readthedocs.io.sh ; doxygen readthedocs.io.cfg', shell=True) 9 | 10 | 11 | -------------------------------------------------------------------------------- /doc/readthedocs/index.rst: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/open-mpi/hwloc/7776a02c250324aa020d1d030c8927c0db408d82/doc/readthedocs/index.rst -------------------------------------------------------------------------------- /doc/readthedocs/readthedocs.io.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # 3 | # Copyright © 2018-2021 Inria. All rights reserved. 4 | # $COPYRIGHT$ 5 | # 6 | 7 | version=$(./../../config/hwloc_get_version.sh ./../../VERSION --version) 8 | 9 | cp ./../doxygen-config.cfg.in ./doxygen-config.cfg 10 | sed -i 's/@top_srcdir@/..\/../g' ./doxygen-config.cfg 11 | sed -i 's/@PACKAGE_VERSION@/'$version'/g' ./doxygen-config.cfg 12 | 13 | 14 | echo "@INCLUDE = ./../doxygen.cfg" > readthedocs.io.cfg 15 | echo "OUTPUT_DIRECTORY = ./build" >> readthedocs.io.cfg 16 | echo "SHORT_NAMES = NO" >> readthedocs.io.cfg 17 | echo "GENERATE_TAGFILE =" >> readthedocs.io.cfg 18 | echo "GENERATE_MAN = NO" >> readthedocs.io.cfg 19 | echo "GENERATE_LATEX = NO" >> readthedocs.io.cfg 20 | echo "GENERATE_TREEVIEW = YES" >> readthedocs.io.cfg 21 | -------------------------------------------------------------------------------- /doc/www.open-mpi.org-css.inc: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /doc/www.open-mpi.org-footer.inc: -------------------------------------------------------------------------------- 1 | 15 | -------------------------------------------------------------------------------- /doc/www.open-mpi.org.cfg: -------------------------------------------------------------------------------- 1 | # Copyright © 2010-2015 Inria. All rights reserved. 2 | # Copyright © 2009 Cisco Systems, Inc. All rights reserved. 3 | # See COPYING in top-level directory. 4 | 5 | ############################################################### 6 | # Customized for output onto the www.open-mpi.org web site. 7 | ############################################################### 8 | 9 | @INCLUDE = doxygen.cfg 10 | 11 | #PROJECT_NUMBER = @HWLOC_VERSION@ 12 | OUTPUT_DIRECTORY = www.open-mpi.org 13 | #EXAMPLE_PATH = @top_srcdir@/doc 14 | #IMAGE_PATH = @top_srcdir@/doc/images images 15 | HTML_FILE_EXTENSION = .php 16 | HTML_HEADER = www.open-mpi.org-header.inc 17 | HTML_FOOTER = www.open-mpi.org-footer.inc 18 | GENERATE_MAN = NO 19 | GENERATE_LATEX = NO 20 | #INCLUDE_PATH = @top_srcdir@/doc 21 | -------------------------------------------------------------------------------- /hwloc.pc.in: -------------------------------------------------------------------------------- 1 | prefix=@prefix@ 2 | exec_prefix=@exec_prefix@ 3 | libdir=@libdir@ 4 | includedir=@includedir@ 5 | 6 | Name: hwloc 7 | Description: Hardware locality detection and management library 8 | Version: @HWLOC_VERSION@ 9 | Requires.private: @HWLOC_REQUIRES@ 10 | Cflags: -I${includedir} 11 | Libs: -L${libdir} -lhwloc 12 | Libs.private: @HWLOC_LIBS@ @HWLOC_DL_LIBS@ @HWLOC_LTDL_LIBS@ @HWLOC_LIBS_PRIVATE@ 13 | -------------------------------------------------------------------------------- /hwloc/hwloc2-diff.dtd: -------------------------------------------------------------------------------- 1 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /include/Makefile.am: -------------------------------------------------------------------------------- 1 | # Copyright © 2009-2021 Inria. All rights reserved. 2 | # Copyright © 2009-2010 Université Bordeaux 3 | # Copyright © 2009-2014 Cisco Systems, Inc. All rights reserved. 4 | # Copyright © 2011 Oracle and/or its affiliates. All rights reserved. 5 | # See COPYING in top-level directory. 6 | 7 | # Only install the headers if we're in standalone mode (meaning: 8 | # *don't* install the headers if we're in embedded mode). 9 | 10 | if HWLOC_BUILD_STANDALONE 11 | include_HEADERS = hwloc.h 12 | 13 | include_hwlocdir = $(includedir)/hwloc 14 | include_hwloc_HEADERS = \ 15 | hwloc/bitmap.h \ 16 | hwloc/helper.h \ 17 | hwloc/inlines.h \ 18 | hwloc/memattrs.h \ 19 | hwloc/cpukinds.h \ 20 | hwloc/diff.h \ 21 | hwloc/shmem.h \ 22 | hwloc/distances.h \ 23 | hwloc/export.h \ 24 | hwloc/openfabrics-verbs.h \ 25 | hwloc/opencl.h \ 26 | hwloc/cuda.h \ 27 | hwloc/cudart.h \ 28 | hwloc/nvml.h \ 29 | hwloc/rsmi.h \ 30 | hwloc/levelzero.h \ 31 | hwloc/plugins.h \ 32 | hwloc/gl.h \ 33 | hwloc/rename.h \ 34 | hwloc/deprecated.h 35 | include_hwloc_autogendir = $(includedir)/hwloc/autogen 36 | nodist_include_hwloc_autogen_HEADERS = hwloc/autogen/config.h 37 | 38 | noinst_HEADERS = \ 39 | private/private.h \ 40 | private/debug.h \ 41 | private/misc.h \ 42 | private/xml.h \ 43 | private/components.h \ 44 | private/internal-components.h \ 45 | private/cpuid-x86.h \ 46 | private/windows.h 47 | 48 | if HWLOC_HAVE_LINUX 49 | include_hwloc_HEADERS += \ 50 | hwloc/linux.h \ 51 | hwloc/linux-libnuma.h 52 | endif HWLOC_HAVE_LINUX 53 | 54 | if HWLOC_HAVE_SOLARIS 55 | include_hwloc_HEADERS += \ 56 | private/solaris-chiptype.h 57 | endif HWLOC_HAVE_SOLARIS 58 | 59 | if HWLOC_HAVE_SCHED_SETAFFINITY 60 | include_hwloc_HEADERS += hwloc/glibc-sched.h 61 | endif HWLOC_HAVE_SCHED_SETAFFINITY 62 | 63 | if HWLOC_HAVE_WINDOWS 64 | include_hwloc_HEADERS += \ 65 | hwloc/windows.h 66 | endif HWLOC_HAVE_WINDOWS 67 | 68 | endif HWLOC_BUILD_STANDALONE 69 | -------------------------------------------------------------------------------- /include/hwloc/deprecated.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright © 2009 CNRS 3 | * Copyright © 2009-2024 Inria. All rights reserved. 4 | * Copyright © 2009-2012 Université Bordeaux 5 | * Copyright © 2009-2010 Cisco Systems, Inc. All rights reserved. 6 | * See COPYING in top-level directory. 7 | */ 8 | 9 | /** 10 | * This file contains the inline code of functions declared in hwloc.h 11 | */ 12 | 13 | #ifndef HWLOC_DEPRECATED_H 14 | #define HWLOC_DEPRECATED_H 15 | 16 | #ifndef HWLOC_H 17 | #error Please include the main hwloc.h instead 18 | #endif 19 | 20 | #ifdef __cplusplus 21 | extern "C" { 22 | #endif 23 | 24 | /* backward compat with v2.x before _MEANS_ became _VALUE_ */ 25 | #define HWLOC_DISTANCES_KIND_MEANS_LATENCY HWLOC_DISTANCES_KIND_VALUE_LATENCY 26 | #define HWLOC_DISTANCES_KIND_MEANS_BANDWIDTH HWLOC_DISTANCES_KIND_VALUE_BANDWIDTH 27 | 28 | /* backward compat with v2.x before BLOCK renaming */ 29 | #define HWLOC_OBJ_OSDEV_BLOCK HWLOC_OBJ_OSDEV_STORAGE 30 | /* backward compat with v2.0 before WHOLE_SYSTEM renaming */ 31 | #define HWLOC_TOPOLOGY_FLAG_WHOLE_SYSTEM HWLOC_TOPOLOGY_FLAG_INCLUDE_DISALLOWED 32 | 33 | /** \brief Get the depth from an object type. 34 | * 35 | * Superseded by hwloc_type_sscanf()+hwloc_get_type_depth_with_attr() in v3.0. 36 | */ 37 | HWLOC_DECLSPEC int hwloc_type_sscanf_as_depth(const char *string, hwloc_obj_type_t *typep, 38 | hwloc_topology_t topology, int *depthp) __hwloc_attribute_deprecated; 39 | 40 | /** \brief Add a distances structure. 41 | * 42 | * Superseded by hwloc_distances_add_create()+hwloc_distances_add_values()+hwloc_distances_add_commit() 43 | * in v2.5. 44 | */ 45 | HWLOC_DECLSPEC int hwloc_distances_add(hwloc_topology_t topology, 46 | unsigned nbobjs, hwloc_obj_t *objs, hwloc_uint64_t *values, 47 | unsigned long kind, unsigned long flags) __hwloc_attribute_deprecated; 48 | 49 | #ifdef __cplusplus 50 | } /* extern "C" */ 51 | #endif 52 | 53 | 54 | #endif /* HWLOC_DEPRECATED_H */ 55 | -------------------------------------------------------------------------------- /include/private/autogen/README.txt: -------------------------------------------------------------------------------- 1 | This directory needs to exist in the repo so that the Autotools can 2 | generate a file here. We have a put a token file in this directory so 3 | that git doesn't ignore the empty directory in the repository. 4 | -------------------------------------------------------------------------------- /include/private/components.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright © 2012-2019 Inria. All rights reserved. 3 | * See COPYING in top-level directory. 4 | */ 5 | 6 | 7 | #ifdef HWLOC_INSIDE_PLUGIN 8 | /* 9 | * these declarations are internal only, they are not available to plugins 10 | * (many functions below are internal static symbols). 11 | */ 12 | #error This file should not be used in plugins 13 | #endif 14 | 15 | 16 | #ifndef PRIVATE_COMPONENTS_H 17 | #define PRIVATE_COMPONENTS_H 1 18 | 19 | #include "hwloc/plugins.h" 20 | 21 | struct hwloc_topology; 22 | 23 | extern int hwloc_disc_component_force_enable(struct hwloc_topology *topology, 24 | int envvar_forced, /* 1 if forced through envvar, 0 if forced through API */ 25 | const char *name, 26 | const void *data1, const void *data2, const void *data3); 27 | extern void hwloc_disc_components_enable_others(struct hwloc_topology *topology); 28 | 29 | /* Compute the topology is_thissystem flag and find some callbacks based on enabled backends */ 30 | extern void hwloc_backends_is_thissystem(struct hwloc_topology *topology); 31 | extern void hwloc_backends_find_callbacks(struct hwloc_topology *topology); 32 | 33 | /* Initialize the lists of components and backends used by a topology */ 34 | extern void hwloc_topology_components_init(struct hwloc_topology *topology); 35 | /* Disable and destroy all backends used by a topology */ 36 | extern void hwloc_backends_disable_all(struct hwloc_topology *topology); 37 | /* Cleanup the lists of components used by a topology */ 38 | extern void hwloc_topology_components_fini(struct hwloc_topology *topology); 39 | 40 | /* Used by the core to setup/destroy the list of components */ 41 | extern void hwloc_components_init(void); /* increases components refcount, should be called exactly once per topology (during init) */ 42 | extern void hwloc_components_fini(void); /* decreases components refcount, should be called exactly once per topology (during destroy) */ 43 | 44 | #endif /* PRIVATE_COMPONENTS_H */ 45 | 46 | -------------------------------------------------------------------------------- /include/private/internal-components.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright © 2018-2022 Inria. All rights reserved. 3 | * 4 | * See COPYING in top-level directory. 5 | */ 6 | 7 | /* List of components defined inside hwloc */ 8 | 9 | #ifndef PRIVATE_INTERNAL_COMPONENTS_H 10 | #define PRIVATE_INTERNAL_COMPONENTS_H 11 | 12 | /* global discovery */ 13 | HWLOC_DECLSPEC extern const struct hwloc_component hwloc_xml_component; 14 | HWLOC_DECLSPEC extern const struct hwloc_component hwloc_synthetic_component; 15 | 16 | /* CPU discovery */ 17 | HWLOC_DECLSPEC extern const struct hwloc_component hwloc_aix_component; 18 | HWLOC_DECLSPEC extern const struct hwloc_component hwloc_darwin_component; 19 | HWLOC_DECLSPEC extern const struct hwloc_component hwloc_freebsd_component; 20 | HWLOC_DECLSPEC extern const struct hwloc_component hwloc_hpux_component; 21 | HWLOC_DECLSPEC extern const struct hwloc_component hwloc_linux_component; 22 | HWLOC_DECLSPEC extern const struct hwloc_component hwloc_netbsd_component; 23 | HWLOC_DECLSPEC extern const struct hwloc_component hwloc_noos_component; 24 | HWLOC_DECLSPEC extern const struct hwloc_component hwloc_solaris_component; 25 | HWLOC_DECLSPEC extern const struct hwloc_component hwloc_windows_component; 26 | HWLOC_DECLSPEC extern const struct hwloc_component hwloc_x86_component; 27 | 28 | /* I/O discovery */ 29 | HWLOC_DECLSPEC extern const struct hwloc_component hwloc_cuda_component; 30 | HWLOC_DECLSPEC extern const struct hwloc_component hwloc_gl_component; 31 | HWLOC_DECLSPEC extern const struct hwloc_component hwloc_nvml_component; 32 | HWLOC_DECLSPEC extern const struct hwloc_component hwloc_rsmi_component; 33 | HWLOC_DECLSPEC extern const struct hwloc_component hwloc_levelzero_component; 34 | HWLOC_DECLSPEC extern const struct hwloc_component hwloc_opencl_component; 35 | HWLOC_DECLSPEC extern const struct hwloc_component hwloc_pci_component; 36 | 37 | /* XML backend */ 38 | HWLOC_DECLSPEC extern const struct hwloc_component hwloc_xml_nolibxml_component; 39 | HWLOC_DECLSPEC extern const struct hwloc_component hwloc_xml_libxml_component; 40 | 41 | #endif /* PRIVATE_INTERNAL_COMPONENTS_H */ 42 | -------------------------------------------------------------------------------- /include/private/solaris-chiptype.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright © 2009-2010 Oracle and/or its affiliates. All rights reserved. 3 | * 4 | * Copyright © 2017 Inria. All rights reserved. 5 | * $COPYRIGHT$ 6 | * 7 | * Additional copyrights may follow 8 | * 9 | * $HEADER$ 10 | */ 11 | 12 | 13 | #ifdef HWLOC_INSIDE_PLUGIN 14 | /* 15 | * these declarations are internal only, they are not available to plugins 16 | * (functions below are internal static symbols). 17 | */ 18 | #error This file should not be used in plugins 19 | #endif 20 | 21 | 22 | #ifndef HWLOC_PRIVATE_SOLARIS_CHIPTYPE_H 23 | #define HWLOC_PRIVATE_SOLARIS_CHIPTYPE_H 24 | 25 | struct hwloc_solaris_chip_info_s { 26 | char *model; 27 | char *type; 28 | /* L1i, L1d, L2, L3 */ 29 | #define HWLOC_SOLARIS_CHIP_INFO_L1I 0 30 | #define HWLOC_SOLARIS_CHIP_INFO_L1D 1 31 | #define HWLOC_SOLARIS_CHIP_INFO_L2I 2 32 | #define HWLOC_SOLARIS_CHIP_INFO_L2D 3 33 | #define HWLOC_SOLARIS_CHIP_INFO_L3 4 34 | long cache_size[5]; /* cleared to -1 if we don't want of that cache */ 35 | unsigned cache_linesize[5]; 36 | unsigned cache_associativity[5]; 37 | int l2_unified; 38 | }; 39 | 40 | /* fills the structure with 0 on error */ 41 | extern void hwloc_solaris_get_chip_info(struct hwloc_solaris_chip_info_s *info); 42 | 43 | #endif /* HWLOC_PRIVATE_SOLARIS_CHIPTYPE_H */ 44 | -------------------------------------------------------------------------------- /include/private/windows.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright © 2009 Université Bordeaux 3 | * Copyright © 2020-2022 Inria. All rights reserved. 4 | * 5 | * See COPYING in top-level directory. 6 | */ 7 | 8 | #ifndef HWLOC_PRIVATE_WINDOWS_H 9 | #define HWLOC_PRIVATE_WINDOWS_H 10 | 11 | #ifndef _ANONYMOUS_UNION 12 | #ifdef __GNUC__ 13 | #define _ANONYMOUS_UNION __extension__ 14 | #else 15 | #define _ANONYMOUS_UNION 16 | #endif /* __GNUC__ */ 17 | #endif /* _ANONYMOUS_UNION */ 18 | 19 | #ifndef _ANONYMOUS_STRUCT 20 | #ifdef __GNUC__ 21 | #define _ANONYMOUS_STRUCT __extension__ 22 | #else 23 | #define _ANONYMOUS_STRUCT 24 | #endif /* __GNUC__ */ 25 | #endif /* _ANONYMOUS_STRUCT */ 26 | 27 | #define DUMMYUNIONNAME 28 | #define DUMMYSTRUCTNAME 29 | 30 | #endif /* HWLOC_PRIVATE_WINDOWS_H */ 31 | -------------------------------------------------------------------------------- /tests/Makefile.am: -------------------------------------------------------------------------------- 1 | # Copyright © 2014 Cisco Systems, Inc. All rights reserved. 2 | # Copyright © 2016 Inria. All rights reserved. 3 | # 4 | # See COPYING in top-level directory. 5 | 6 | SUBDIRS = hwloc 7 | -------------------------------------------------------------------------------- /tests/hwloc/embedded/Makefile.am: -------------------------------------------------------------------------------- 1 | # Copyright © 2009-2010 Cisco Systems, Inc. All rights reserved. 2 | # See COPYING in top-level directory. 3 | 4 | ACLOCAL_AMFLAGS = -I./config -I./hwloc-tree/config 5 | 6 | SUBDIRS = hwloc-tree 7 | 8 | AM_CPPFLAGS = $(HWLOC_EMBEDDED_CPPFLAGS) 9 | 10 | TESTS = main 11 | 12 | noinst_PROGRAMS = main 13 | noinst_LTLIBRARIES = libdo_test.la 14 | 15 | libdo_test_la_SOURCES = do_test.c 16 | 17 | main_SOURCES = main.c 18 | main_LDADD = libdo_test.la $(HWLOC_EMBEDDED_LDADD) $(HWLOC_EMBEDDED_LIBS) 19 | main_DEPENDENCIES = libdo_test.la 20 | 21 | EXTRA_DIST = run-embedded-tests.sh 22 | -------------------------------------------------------------------------------- /tests/hwloc/embedded/README.txt: -------------------------------------------------------------------------------- 1 | This test is meant to be run manually; it is not part of "make check". 2 | 3 | Someday I may figure out how to make this part of "make check", but 4 | today is not that day. :-) 5 | 6 | You can run these tests in one of two ways: 7 | 8 | 1. PREFERRED METHOD: From this directory, invoke 9 | "./run-embedded-tests.sh ". This will run a 10 | battery of tests against that tarball to verify that embedding is 11 | working properly from that tarball. 12 | 13 | 2. MANUAL METHOD: Expand a distribution hwloc tarball in this 14 | directory and rename the top-level directory from hwloc-/ 15 | to hwloc-tree/. Then run ./autogen.sh, ./configure, and make. And 16 | whatever other tests you'd like to run. 17 | 18 | Things to test (most of which are done in the run-embedded-tests.sh 19 | script): 20 | 21 | - autogen.sh runs properly and to completion 22 | - configure runs properly and to completion (normal, absolute VPATH, 23 | and relative VPATH) 24 | - make runs properly and to completion 25 | - you can run the resulting "./main" executable and it properly shows 26 | the hwloc depth of the current machine 27 | - make test works 28 | 29 | If you look at configure.ac, you see that it uses the HWLOC m4 macros 30 | to build the hwloc located at hwloc-tree/, and renames all the symbols 31 | from "hwloc_" to "mytest_". The main.c source calls several 32 | hwloc functions via the "mytest_" symbols. 33 | 34 | Bottom line: if the "main" executable runs and prints the current 35 | depth (or you can run "make check" successfully), the embedding should 36 | be working properly. 37 | -------------------------------------------------------------------------------- /tests/hwloc/embedded/autogen.sh: -------------------------------------------------------------------------------- 1 | : 2 | autoreconf -ivf 3 | -------------------------------------------------------------------------------- /tests/hwloc/embedded/config/README.txt: -------------------------------------------------------------------------------- 1 | This file exists solely so that the config/ directory exists in git checkouts. 2 | -------------------------------------------------------------------------------- /tests/hwloc/embedded/configure.ac: -------------------------------------------------------------------------------- 1 | # Copyright © 2009-2020 Cisco Systems, Inc. All rights reserved. 2 | # Copyright © 2013 Inria. All rights reserved. 3 | # See COPYING in top-level directory. 4 | 5 | AC_INIT([hwloc-embedded-test], [1.0], [https://www.open-mpi.org/projects/hwloc/], [hwloc-embedded-test]) 6 | AC_PREREQ([2.63]) 7 | AC_CONFIG_AUX_DIR([./config]) 8 | AC_CONFIG_MACRO_DIR([./config]) 9 | AC_CANONICAL_TARGET 10 | AM_INIT_AUTOMAKE([1.10 dist-bzip2 foreign subdir-objects tar-ustar -Wall -Werror]) 11 | m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])]) 12 | 13 | AC_LANG([C]) 14 | 15 | AC_PROG_CC 16 | AM_PROG_CC_C_O 17 | 18 | cat < 4 | 5 | /* The body of the test is in a separate .c file and a separate 6 | library, just to ensure that hwloc didn't force compilation with 7 | visibility flags enabled. */ 8 | 9 | int do_test(void) 10 | { 11 | mytest_hwloc_topology_t topology; 12 | unsigned depth; 13 | hwloc_bitmap_t cpu_set; 14 | 15 | /* Just call a bunch of functions to see if we can link and run */ 16 | 17 | printf("*** Test 1: bitmap alloc\n"); 18 | cpu_set = mytest_hwloc_bitmap_alloc(); 19 | if (NULL == cpu_set) return 1; 20 | printf("*** Test 2: topology init\n"); 21 | if (0 != mytest_hwloc_topology_init(&topology)) return 1; 22 | printf("*** Test 3: topology load\n"); 23 | if (0 != mytest_hwloc_topology_load(topology)) return 1; 24 | printf("*** Test 4: topology get depth\n"); 25 | depth = mytest_hwloc_topology_get_depth(topology); 26 | if (depth > 10000) return 1; 27 | printf(" Max depth: %u\n", depth); 28 | printf("*** Test 5: topology destroy\n"); 29 | mytest_hwloc_topology_destroy(topology); 30 | printf("*** Test 6: bitmap free\n"); 31 | mytest_hwloc_bitmap_free(cpu_set); 32 | 33 | return 0; 34 | } 35 | -------------------------------------------------------------------------------- /tests/hwloc/embedded/main.c: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright © 2009 CNRS 3 | * Copyright © 2009 inria. All rights reserved. 4 | * Copyright © 2009 Université Bordeaux 5 | * Copyright © 2009 Cisco Systems, Inc. All rights reserved. 6 | * See COPYING in top-level directory. 7 | */ 8 | 9 | #include "hwloc.h" 10 | 11 | #include 12 | 13 | extern int do_test(void); 14 | 15 | 16 | int main(int argc, char *argv[]) 17 | { 18 | /* Make the test be in a separate library that will fail to link 19 | properly if hwloc forces compilation with visibility 20 | enabled. */ 21 | return do_test(); 22 | } 23 | -------------------------------------------------------------------------------- /tests/hwloc/hwloc_api_version.c: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright © 2019 Inria. All rights reserved. 3 | * See COPYING in top-level directory. 4 | */ 5 | 6 | #include "hwloc.h" 7 | 8 | #include 9 | 10 | int main(void) 11 | { 12 | unsigned static_version = HWLOC_API_VERSION; 13 | unsigned dynamic_version = hwloc_get_api_version(); 14 | assert(static_version == dynamic_version); 15 | return 0; 16 | } 17 | -------------------------------------------------------------------------------- /tests/hwloc/hwloc_bitmap_singlify.c: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright © 2009 CNRS 3 | * Copyright © 2009-2010 inria. All rights reserved. 4 | * Copyright © 2009 Université Bordeaux 5 | * Copyright © 2009-2011 Cisco Systems, Inc. All rights reserved. 6 | * See COPYING in top-level directory. 7 | */ 8 | 9 | #include "hwloc.h" 10 | 11 | #include 12 | #include 13 | #include 14 | #include 15 | 16 | /* check hwloc_bitmap_singlify() */ 17 | 18 | int main(void) 19 | { 20 | hwloc_bitmap_t orig, expected; 21 | 22 | orig = hwloc_bitmap_alloc(); 23 | expected = hwloc_bitmap_alloc(); 24 | 25 | /* empty set gives empty set */ 26 | hwloc_bitmap_singlify(orig); 27 | assert(hwloc_bitmap_iszero(orig)); 28 | 29 | /* full set gives first bit only */ 30 | hwloc_bitmap_fill(orig); 31 | hwloc_bitmap_singlify(orig); 32 | hwloc_bitmap_zero(expected); 33 | hwloc_bitmap_set(expected, 0); 34 | assert(hwloc_bitmap_isequal(orig, expected)); 35 | assert(!hwloc_bitmap_compare(orig, expected)); 36 | 37 | /* actual non-trivial set */ 38 | hwloc_bitmap_zero(orig); 39 | hwloc_bitmap_set(orig, 45); 40 | hwloc_bitmap_set(orig, 46); 41 | hwloc_bitmap_set(orig, 517); 42 | hwloc_bitmap_singlify(orig); 43 | hwloc_bitmap_zero(expected); 44 | hwloc_bitmap_set(expected, 45); 45 | assert(hwloc_bitmap_isequal(orig, expected)); 46 | assert(!hwloc_bitmap_compare(orig, expected)); 47 | 48 | hwloc_bitmap_free(orig); 49 | hwloc_bitmap_free(expected); 50 | 51 | return 0; 52 | } 53 | -------------------------------------------------------------------------------- /tests/hwloc/hwloc_list_components.c: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright © 2012-2020 Inria. All rights reserved. 3 | * See COPYING in top-level directory. 4 | */ 5 | 6 | #include "hwloc.h" 7 | 8 | #include 9 | 10 | int main(void) 11 | { 12 | hwloc_topology_t topology; 13 | 14 | putenv((char *) "HWLOC_COMPONENTS_VERBOSE=1"); 15 | 16 | hwloc_topology_init(&topology); 17 | /* no load, to avoid spurious "enable" messages */ 18 | hwloc_topology_destroy(topology); 19 | return 0; 20 | } 21 | -------------------------------------------------------------------------------- /tests/hwloc/linux/128arm-2pa2n8cluster4co.tar.bz2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/open-mpi/hwloc/7776a02c250324aa020d1d030c8927c0db408d82/tests/hwloc/linux/128arm-2pa2n8cluster4co.tar.bz2 -------------------------------------------------------------------------------- /tests/hwloc/linux/128arm-2pa2n8cluster4co.test: -------------------------------------------------------------------------------- 1 | # ARM ARM kunpeng 920 CPUs with cluster info in sysfs 2 | source: 128arm-2pa2n8cluster4co.tar.bz2 3 | target: 128arm-2pa2n8cluster4co.console 4 | -------------------------------------------------------------------------------- /tests/hwloc/linux/128ia64-17n4s2c.tar.bz2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/open-mpi/hwloc/7776a02c250324aa020d1d030c8927c0db408d82/tests/hwloc/linux/128ia64-17n4s2c.tar.bz2 -------------------------------------------------------------------------------- /tests/hwloc/linux/128ia64-17n4s2c.test: -------------------------------------------------------------------------------- 1 | # HP Integrity Superdome sx2000 2 | # Strange IA64 machine with 16 sockets and an additional CPU-less 17th NUMA node. 3 | # Distance-based grouping had to be modified for this NUMA topology 4 | # (see commit SVN r2232 / GIT bb0655f572d503b78aaad60f47c7c148d0eaf41c) 5 | source: 128ia64-17n4s2c.tar.bz2 6 | target: 128ia64-17n4s2c.console 7 | -------------------------------------------------------------------------------- /tests/hwloc/linux/16amd64-4n4c-cgroup-distance-merge.console: -------------------------------------------------------------------------------- 1 | Machine (P#0 total=16GiB DMIProductName=H8QM8 DMIProductVersion=1234567890 DMIBoardVendor=Supermicro DMIBoardName=H8QM8 DMIBoardVersion=1234567890 DMIBoardAssetTag="To Be Filled By O.E.M." DMIChassisVendor="To Be Filled By O.E.M." DMIChassisType=3 DMIChassisVersion="To Be Filled By O.E.M." DMIChassisAssetTag="To Be Filled By O.E.M." DMIBIOSVendor="American Megatrends Inc." DMIBIOSVersion="080014 " DMIBIOSDate=12/20/2008 DMISysVendor=Supermicro) 2 | Package L#0 (P#0 CPUModel="Quad-Core AMD Opteron(tm) Processor 8347 HE") 3 | L3Cache L#0 (size=2048KiB linesize=64 ways=32) 4 | PU L#0 (P#0) 5 | PU L#1 (P#1) 6 | PU L#2 (P#2) 7 | PU L#3 (P#3) 8 | Package L#1 (P#2 total=8192MiB CPUModel="Quad-Core AMD Opteron(tm) Processor 8347 HE") 9 | NUMANode L#0 (P#2 local=8192MiB total=8192MiB) 10 | Package L#2 (P#3 total=8192MiB CPUModel="Quad-Core AMD Opteron(tm) Processor 8347 HE") 11 | NUMANode L#1 (P#3 local=8192MiB total=8192MiB) 12 | depth 0: 1 Machine (type #0) 13 | depth 1: 3 Package (type #1) 14 | depth 2: 1 L3Cache (type #7) 15 | depth 3: 4 PU (type #4) 16 | Special depth -3: 2 NUMANode (type #14) 17 | Relative latency matrix (name NUMALatency kind 5) between 2 NUMANodes (depth -3) by logical indexes: 18 | index 0 1 19 | 0 10 20 20 | 1 20 10 21 | 12 processors not represented in topology: 0x0000fff0 22 | Topology infos: LinuxCgroup=/prout Backend=Linux 23 | Topology not from this system 24 | -------------------------------------------------------------------------------- /tests/hwloc/linux/16amd64-4n4c-cgroup-distance-merge.tar.bz2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/open-mpi/hwloc/7776a02c250324aa020d1d030c8927c0db408d82/tests/hwloc/linux/16amd64-4n4c-cgroup-distance-merge.tar.bz2 -------------------------------------------------------------------------------- /tests/hwloc/linux/16amd64-4n4c-cgroup-distance-merge.test: -------------------------------------------------------------------------------- 1 | # Cgroups disable some CPU and NUMA, and filtering causes 2 | # things to disappear, hence restricting the distances matrix. 3 | source: 16amd64-4n4c-cgroup-distance-merge.tar.bz2 4 | target: 16amd64-4n4c-cgroup-distance-merge.console 5 | options: - -v --filter all:structure --no-icaches 6 | -------------------------------------------------------------------------------- /tests/hwloc/linux/16amd64-8n2c-cpusets-disallowed.test: -------------------------------------------------------------------------------- 1 | # Cpusets disabling things, but we keep them 2 | source: 16amd64-8n2c-cpusets.tar.bz2 3 | target: 16amd64-8n2c-cpusets-disallowed.console 4 | options: - -v --disallowed 5 | -------------------------------------------------------------------------------- /tests/hwloc/linux/16amd64-8n2c-cpusets-xml.test: -------------------------------------------------------------------------------- 1 | # Cpusets disabling things 2 | source: 16amd64-8n2c-cpusets.tar.bz2 3 | target: 16amd64-8n2c-cpusets-xml.xml 4 | options: --no-icaches 5 | -------------------------------------------------------------------------------- /tests/hwloc/linux/16amd64-8n2c-cpusets.tar.bz2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/open-mpi/hwloc/7776a02c250324aa020d1d030c8927c0db408d82/tests/hwloc/linux/16amd64-8n2c-cpusets.tar.bz2 -------------------------------------------------------------------------------- /tests/hwloc/linux/16amd64-8n2c-cpusets.test: -------------------------------------------------------------------------------- 1 | # Cpusets disabling things 2 | source: 16amd64-8n2c-cpusets.tar.bz2 3 | target: 16amd64-8n2c-cpusets.console 4 | -------------------------------------------------------------------------------- /tests/hwloc/linux/16amd64-8n2c.tar.bz2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/open-mpi/hwloc/7776a02c250324aa020d1d030c8927c0db408d82/tests/hwloc/linux/16amd64-8n2c.tar.bz2 -------------------------------------------------------------------------------- /tests/hwloc/linux/16amd64-8n2c.test: -------------------------------------------------------------------------------- 1 | # Old Tyan S4881+M4881 big NUMA machine 2 | # Also used in test-lstopo 3 | source: 16amd64-8n2c.tar.bz2 4 | target: 16amd64-8n2c.console 5 | -------------------------------------------------------------------------------- /tests/hwloc/linux/16em64t-4s2c2t-merge.console: -------------------------------------------------------------------------------- 1 | Machine (P#0 total=16GiB) 2 | NUMANode L#0 (P#0 local=16GiB total=16GiB) 3 | Package L#0 (P#0 CPUModel="Intel(R) Xeon(TM) CPU 2.60GHz") 4 | Core L#0 (P#0) 5 | PU L#0 (P#0) 6 | PU L#1 (P#8) 7 | Core L#1 (P#1) 8 | PU L#2 (P#4) 9 | PU L#3 (P#12) 10 | Package L#1 (P#1 CPUModel="Intel(R) Xeon(TM) CPU 2.60GHz") 11 | Core L#2 (P#0) 12 | PU L#4 (P#1) 13 | PU L#5 (P#9) 14 | Core L#3 (P#1) 15 | PU L#6 (P#5) 16 | PU L#7 (P#13) 17 | Package L#2 (P#2 CPUModel="Intel(R) Xeon(TM) CPU 2.60GHz") 18 | Core L#4 (P#0) 19 | PU L#8 (P#2) 20 | PU L#9 (P#10) 21 | Core L#5 (P#1) 22 | PU L#10 (P#6) 23 | PU L#11 (P#14) 24 | Package L#3 (P#3 CPUModel="Intel(R) Xeon(TM) CPU 2.60GHz") 25 | Core L#6 (P#0) 26 | PU L#12 (P#3) 27 | PU L#13 (P#11) 28 | Core L#7 (P#1) 29 | PU L#14 (P#7) 30 | PU L#15 (P#15) 31 | depth 0: 1 Machine (type #0) 32 | depth 1: 4 Package (type #1) 33 | depth 2: 8 Core (type #3) 34 | depth 3: 16 PU (type #4) 35 | Special depth -3: 1 NUMANode (type #14) 36 | Topology infos: Backend=Linux 37 | Topology not from this system 38 | -------------------------------------------------------------------------------- /tests/hwloc/linux/16em64t-4s2c2t-merge.test: -------------------------------------------------------------------------------- 1 | # Merging identical levels 2 | source: 16em64t-4s2c2t.tar.bz2 3 | target: 16em64t-4s2c2t-merge.console 4 | options: - -v --merge --no-icaches 5 | -------------------------------------------------------------------------------- /tests/hwloc/linux/16em64t-4s2c2t-nocaches.console: -------------------------------------------------------------------------------- 1 | Machine (P#0 total=16GiB) 2 | NUMANode L#0 (P#0 local=16GiB total=16GiB) 3 | Package L#0 (P#0 CPUModel="Intel(R) Xeon(TM) CPU 2.60GHz") 4 | Core L#0 (P#0) 5 | PU L#0 (P#0) 6 | PU L#1 (P#8) 7 | Core L#1 (P#1) 8 | PU L#2 (P#4) 9 | PU L#3 (P#12) 10 | Package L#1 (P#1 CPUModel="Intel(R) Xeon(TM) CPU 2.60GHz") 11 | Core L#2 (P#0) 12 | PU L#4 (P#1) 13 | PU L#5 (P#9) 14 | Core L#3 (P#1) 15 | PU L#6 (P#5) 16 | PU L#7 (P#13) 17 | Package L#2 (P#2 CPUModel="Intel(R) Xeon(TM) CPU 2.60GHz") 18 | Core L#4 (P#0) 19 | PU L#8 (P#2) 20 | PU L#9 (P#10) 21 | Core L#5 (P#1) 22 | PU L#10 (P#6) 23 | PU L#11 (P#14) 24 | Package L#3 (P#3 CPUModel="Intel(R) Xeon(TM) CPU 2.60GHz") 25 | Core L#6 (P#0) 26 | PU L#12 (P#3) 27 | PU L#13 (P#11) 28 | Core L#7 (P#1) 29 | PU L#14 (P#7) 30 | PU L#15 (P#15) 31 | depth 0: 1 Machine (type #0) 32 | depth 1: 4 Package (type #1) 33 | depth 2: 8 Core (type #3) 34 | depth 3: 16 PU (type #4) 35 | Special depth -3: 1 NUMANode (type #14) 36 | Topology infos: Backend=Linux 37 | Topology not from this system 38 | -------------------------------------------------------------------------------- /tests/hwloc/linux/16em64t-4s2c2t-nocaches.test: -------------------------------------------------------------------------------- 1 | # Removing caches 2 | source: 16em64t-4s2c2t.tar.bz2 3 | target: 16em64t-4s2c2t-nocaches.console 4 | options: - -v --no-caches 5 | -------------------------------------------------------------------------------- /tests/hwloc/linux/16em64t-4s2c2t-offlines-xml.test: -------------------------------------------------------------------------------- 1 | # Offline CPUs 2 | source: 16em64t-4s2c2t-offlines.tar.bz2 3 | target: 16em64t-4s2c2t-offlines-xml.xml 4 | options: --no-icaches 5 | -------------------------------------------------------------------------------- /tests/hwloc/linux/16em64t-4s2c2t-offlines.tar.bz2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/open-mpi/hwloc/7776a02c250324aa020d1d030c8927c0db408d82/tests/hwloc/linux/16em64t-4s2c2t-offlines.tar.bz2 -------------------------------------------------------------------------------- /tests/hwloc/linux/16em64t-4s2c2t-offlines.test: -------------------------------------------------------------------------------- 1 | # Offline CPUs 2 | source: 16em64t-4s2c2t-offlines.tar.bz2 3 | target: 16em64t-4s2c2t-offlines.console 4 | -------------------------------------------------------------------------------- /tests/hwloc/linux/16em64t-4s2c2t-xml.test: -------------------------------------------------------------------------------- 1 | # Old UMA platform 2 | source: 16em64t-4s2c2t.tar.bz2 3 | target: 16em64t-4s2c2t-xml.xml 4 | options: --no-icaches 5 | -------------------------------------------------------------------------------- /tests/hwloc/linux/16em64t-4s2c2t.tar.bz2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/open-mpi/hwloc/7776a02c250324aa020d1d030c8927c0db408d82/tests/hwloc/linux/16em64t-4s2c2t.tar.bz2 -------------------------------------------------------------------------------- /tests/hwloc/linux/16em64t-4s2c2t.test: -------------------------------------------------------------------------------- 1 | # Old UMA platform 2 | source: 16em64t-4s2c2t.tar.bz2 3 | target: 16em64t-4s2c2t.console 4 | -------------------------------------------------------------------------------- /tests/hwloc/linux/16em64t-4s2ca2c-cpusetreorder-merge.console: -------------------------------------------------------------------------------- 1 | Machine (P#0 total=16GiB) 2 | NUMANode L#0 (P#0 local=16GiB total=16GiB) 3 | Package L#0 (P#0 CPUModel="Intel(R) Xeon(TM) CPU 2.60GHz") 4 | L2Cache L#0 (size=1024KiB linesize=64 ways=8) 5 | PU L#0 (P#8) 6 | L2Cache L#1 (size=1024KiB linesize=64 ways=8) 7 | PU L#1 (P#4) 8 | Package L#1 (P#1 CPUModel="Intel(R) Xeon(TM) CPU 2.60GHz") 9 | L2Cache L#2 (size=1024KiB linesize=64 ways=8) 10 | PU L#2 (P#9) 11 | L2Cache L#3 (size=1024KiB linesize=64 ways=8) 12 | PU L#3 (P#5) 13 | PU L#4 (P#13) 14 | Package L#2 (P#2 CPUModel="Intel(R) Xeon(TM) CPU 2.60GHz") 15 | L2Cache L#4 (size=1024KiB linesize=64 ways=8) 16 | PU L#5 (P#2) 17 | PU L#6 (P#10) 18 | L2Cache L#5 (size=1024KiB linesize=64 ways=8) 19 | PU L#7 (P#6) 20 | Package L#3 (P#3 CPUModel="Intel(R) Xeon(TM) CPU 2.60GHz") 21 | L2Cache L#6 (size=1024KiB linesize=64 ways=8) 22 | PU L#8 (P#3) 23 | PU L#9 (P#11) 24 | L2Cache L#7 (size=1024KiB linesize=64 ways=8) 25 | PU L#10 (P#7) 26 | depth 0: 1 Machine (type #0) 27 | depth 1: 4 Package (type #1) 28 | depth 2: 8 L2Cache (type #6) 29 | depth 3: 11 PU (type #4) 30 | Special depth -3: 1 NUMANode (type #14) 31 | 5 processors not represented in topology: 0x0000d003 32 | Topology infos: LinuxCgroup=/prout Backend=Linux 33 | Topology not from this system 34 | -------------------------------------------------------------------------------- /tests/hwloc/linux/16em64t-4s2ca2c-cpusetreorder-merge.test: -------------------------------------------------------------------------------- 1 | # Objects get reordered because some PUs are missing 2 | source: 16em64t-4s2ca2c-cpusetreorder.tar.bz2 3 | target: 16em64t-4s2ca2c-cpusetreorder-merge.console 4 | options: - -v --filter all:structure 5 | -------------------------------------------------------------------------------- /tests/hwloc/linux/16em64t-4s2ca2c-cpusetreorder.tar.bz2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/open-mpi/hwloc/7776a02c250324aa020d1d030c8927c0db408d82/tests/hwloc/linux/16em64t-4s2ca2c-cpusetreorder.tar.bz2 -------------------------------------------------------------------------------- /tests/hwloc/linux/16em64t-4s2ca2c-cpusetreorder.test: -------------------------------------------------------------------------------- 1 | # Objects are reordered because some CPUs are missing 2 | source: 16em64t-4s2ca2c-cpusetreorder.tar.bz2 3 | target: 16em64t-4s2ca2c-cpusetreorder.console 4 | -------------------------------------------------------------------------------- /tests/hwloc/linux/16ia64-8n2s.tar.bz2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/open-mpi/hwloc/7776a02c250324aa020d1d030c8927c0db408d82/tests/hwloc/linux/16ia64-8n2s.tar.bz2 -------------------------------------------------------------------------------- /tests/hwloc/linux/16ia64-8n2s.test: -------------------------------------------------------------------------------- 1 | # IA64 NUMA 2 | source: 16ia64-8n2s.tar.bz2 3 | target: 16ia64-8n2s.console 4 | -------------------------------------------------------------------------------- /tests/hwloc/linux/20em64t-hybrid-1p6c2t+2ca4co1t.tar.bz2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/open-mpi/hwloc/7776a02c250324aa020d1d030c8927c0db408d82/tests/hwloc/linux/20em64t-hybrid-1p6c2t+2ca4co1t.tar.bz2 -------------------------------------------------------------------------------- /tests/hwloc/linux/20em64t-hybrid-1p6c2t+2ca4co1t.test: -------------------------------------------------------------------------------- 1 | # raptorlake Core i7-1370P with 6 HT P-cores and 8 non-HT E-cores 2 | # hybrid CPUkinds 3 | # TurboBoost Max 3.0 causes different max freqs on big cores 4 | source: 20em64t-hybrid-1p6c2t+2ca4co1t.tar.bz2 5 | target: 20em64t-hybrid-1p6c2t+2ca4co1t.console 6 | -------------------------------------------------------------------------------- /tests/hwloc/linux/20s390-2g6s4c.console: -------------------------------------------------------------------------------- 1 | Machine (P#0 total=2006MiB) 2 | NUMANode L#0 (P#0 local=2006MiB total=2006MiB) 3 | Group0(Drawer) L#0 (P#4) 4 | Group1(Book) L#0 (P#0) 5 | Package L#0 6 | Core L#0 (P#1) 7 | PU L#0 (P#0) 8 | Core L#1 (P#1) 9 | PU L#1 (P#1) 10 | Core L#2 (P#1) 11 | PU L#2 (P#2) 12 | Package L#1 13 | Core L#3 (P#4) 14 | PU L#3 (P#10) 15 | Core L#4 (P#4) 16 | PU L#4 (P#11) 17 | Core L#5 (P#4) 18 | PU L#5 (P#12) 19 | Group1(Book) L#1 (P#1) 20 | Package L#2 21 | Core L#6 (P#2) 22 | PU L#6 (P#3) 23 | Core L#7 (P#2) 24 | PU L#7 (P#4) 25 | Core L#8 (P#2) 26 | PU L#8 (P#5) 27 | Core L#9 (P#2) 28 | PU L#9 (P#6) 29 | Package L#3 30 | Core L#10 (P#3) 31 | PU L#10 (P#7) 32 | Core L#11 (P#3) 33 | PU L#11 (P#8) 34 | Core L#12 (P#3) 35 | PU L#12 (P#9) 36 | Group0(Drawer) L#1 (P#3) 37 | Group1(Book) L#2 (P#7) 38 | Package L#4 39 | Core L#13 (P#5) 40 | PU L#13 (P#13) 41 | Core L#14 (P#5) 42 | PU L#14 (P#14) 43 | Package L#5 44 | Core L#15 (P#6) 45 | PU L#15 (P#15) 46 | Group1(Book) L#3 (P#8) 47 | Package L#6 48 | Core L#16 (P#1) 49 | PU L#16 (P#16) 50 | Package L#7 51 | Core L#17 (P#2) 52 | PU L#17 (P#17) 53 | Core L#18 (P#2) 54 | PU L#18 (P#18) 55 | Core L#19 (P#2) 56 | PU L#19 (P#19) 57 | depth 0: 1 Machine (type #0) 58 | depth 1: 2 Group0 (type #13) 59 | depth 2: 4 Group1 (type #13) 60 | depth 3: 8 Package (type #1) 61 | depth 4: 20 Core (type #3) 62 | depth 5: 20 PU (type #4) 63 | Special depth -3: 1 NUMANode (type #14) 64 | Topology infos: Backend=Linux OSName=Linux OSRelease=dummy OSVersion=dummy HostName=dummy Architecture=s390x 65 | Topology not from this system 66 | -------------------------------------------------------------------------------- /tests/hwloc/linux/20s390-2g6s4c.tar.bz2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/open-mpi/hwloc/7776a02c250324aa020d1d030c8927c0db408d82/tests/hwloc/linux/20s390-2g6s4c.tar.bz2 -------------------------------------------------------------------------------- /tests/hwloc/linux/20s390-2g6s4c.test: -------------------------------------------------------------------------------- 1 | # S390 with "book" groups 2 | source: 20s390-2g6s4c.tar.bz2 3 | target: 20s390-2g6s4c.console 4 | -------------------------------------------------------------------------------- /tests/hwloc/linux/256ia64-64n2s2c.tar.bz2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/open-mpi/hwloc/7776a02c250324aa020d1d030c8927c0db408d82/tests/hwloc/linux/256ia64-64n2s2c.tar.bz2 -------------------------------------------------------------------------------- /tests/hwloc/linux/256ia64-64n2s2c.test: -------------------------------------------------------------------------------- 1 | # Big IA64 NUMA 2 | source: 256ia64-64n2s2c.tar.bz2 3 | target: 256ia64-64n2s2c.console 4 | -------------------------------------------------------------------------------- /tests/hwloc/linux/256ppc-8n8s4t.tar.bz2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/open-mpi/hwloc/7776a02c250324aa020d1d030c8927c0db408d82/tests/hwloc/linux/256ppc-8n8s4t.tar.bz2 -------------------------------------------------------------------------------- /tests/hwloc/linux/256ppc-8n8s4t.test: -------------------------------------------------------------------------------- 1 | # POWER7 2 | source: 256ppc-8n8s4t.tar.bz2 3 | target: 256ppc-8n8s4t.console 4 | -------------------------------------------------------------------------------- /tests/hwloc/linux/2arm-2c.console: -------------------------------------------------------------------------------- 1 | Machine (P#0 total=274MiB CPUModel="ARMv7 Processor rev 1 (v7l)" CPUImplementer=0x41 CPUArchitecture=7 CPUVariant=0x2 CPUPart=0xc09 CPURevision=1 HardwareName="ST-Ericsson MOP500 platform" HardwareRevision=0000 HardwareSerial=0000000000000000) 2 | Package L#0 (P#3 total=274MiB) 3 | NUMANode L#0 (P#0 local=274MiB total=274MiB) 4 | Core L#0 (P#0) 5 | PU L#0 (P#0) 6 | Core L#1 (P#1) 7 | PU L#1 (P#1) 8 | depth 0: 1 Machine (type #0) 9 | depth 1: 1 Package (type #1) 10 | depth 2: 2 Core (type #3) 11 | depth 3: 2 PU (type #4) 12 | Special depth -3: 1 NUMANode (type #14) 13 | CPU kind #0 efficiency 0 cpuset 0x00000001 14 | FrequencyMaxMHz = 800 15 | Topology infos: Backend=Linux Architecture=arm 16 | Topology not from this system 17 | -------------------------------------------------------------------------------- /tests/hwloc/linux/2arm-2c.tar.bz2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/open-mpi/hwloc/7776a02c250324aa020d1d030c8927c0db408d82/tests/hwloc/linux/2arm-2c.tar.bz2 -------------------------------------------------------------------------------- /tests/hwloc/linux/2arm-2c.test: -------------------------------------------------------------------------------- 1 | # dual-core ARM 2 | source: 2arm-2c.tar.bz2 3 | target: 2arm-2c.console 4 | -------------------------------------------------------------------------------- /tests/hwloc/linux/2i386-2c-nohugepage.tar.bz2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/open-mpi/hwloc/7776a02c250324aa020d1d030c8927c0db408d82/tests/hwloc/linux/2i386-2c-nohugepage.tar.bz2 -------------------------------------------------------------------------------- /tests/hwloc/linux/2i386-2c-nohugepage.test: -------------------------------------------------------------------------------- 1 | # 32bits kernel without hugepage support 2 | source: 2i386-2c-nohugepage.tar.bz2 3 | target: 2i386-2c-nohugepage.xml 4 | options: --no-icaches 5 | -------------------------------------------------------------------------------- /tests/hwloc/linux/2i386-2t-hugepagesizecount.tar.bz2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/open-mpi/hwloc/7776a02c250324aa020d1d030c8927c0db408d82/tests/hwloc/linux/2i386-2t-hugepagesizecount.tar.bz2 -------------------------------------------------------------------------------- /tests/hwloc/linux/2i386-2t-hugepagesizecount.test: -------------------------------------------------------------------------------- 1 | # 32bits kernel with hugepage support 2 | source: 2i386-2t-hugepagesizecount.tar.bz2 3 | target: 2i386-2t-hugepagesizecount.xml 4 | options: --no-icaches 5 | -------------------------------------------------------------------------------- /tests/hwloc/linux/2pa-pcidomain32bits.tar.bz2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/open-mpi/hwloc/7776a02c250324aa020d1d030c8927c0db408d82/tests/hwloc/linux/2pa-pcidomain32bits.tar.bz2 -------------------------------------------------------------------------------- /tests/hwloc/linux/2pa-pcidomain32bits.test: -------------------------------------------------------------------------------- 1 | # 32bits PCI domains 2 | source: 2pa-pcidomain32bits.tar.bz2 3 | target: 2pa-pcidomain32bits.console 4 | -------------------------------------------------------------------------------- /tests/hwloc/linux/2ps3-2t.console: -------------------------------------------------------------------------------- 1 | Machine (P#0 PlatformName=PS3 PlatformModel=SonyPS3) 2 | Core L#0 3 | NUMANode L#0 (P#0) 4 | PU L#0 (P#0) 5 | PU L#1 (P#1) 6 | depth 0: 1 Machine (type #0) 7 | depth 1: 1 Core (type #3) 8 | depth 2: 2 PU (type #4) 9 | Special depth -3: 1 NUMANode (type #14) 10 | Topology infos: Backend=Linux Architecture=ppc 11 | Topology not from this system 12 | -------------------------------------------------------------------------------- /tests/hwloc/linux/2ps3-2t.tar.bz2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/open-mpi/hwloc/7776a02c250324aa020d1d030c8927c0db408d82/tests/hwloc/linux/2ps3-2t.tar.bz2 -------------------------------------------------------------------------------- /tests/hwloc/linux/2ps3-2t.test: -------------------------------------------------------------------------------- 1 | # PS3 2 | source: 2ps3-2t.tar.bz2 3 | target: 2ps3-2t.console 4 | -------------------------------------------------------------------------------- /tests/hwloc/linux/32amd64-4s2n4c-cgroup2.tar.bz2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/open-mpi/hwloc/7776a02c250324aa020d1d030c8927c0db408d82/tests/hwloc/linux/32amd64-4s2n4c-cgroup2.tar.bz2 -------------------------------------------------------------------------------- /tests/hwloc/linux/32amd64-4s2n4c-cgroup2.test: -------------------------------------------------------------------------------- 1 | # Cgroup v2 2 | source: 32amd64-4s2n4c-cgroup2.tar.bz2 3 | target: 32amd64-4s2n4c-cgroup2.xml 4 | options: --no-icaches 5 | -------------------------------------------------------------------------------- /tests/hwloc/linux/32em64t-2n8c+dax+nvme+mic+dimms.tar.bz2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/open-mpi/hwloc/7776a02c250324aa020d1d030c8927c0db408d82/tests/hwloc/linux/32em64t-2n8c+dax+nvme+mic+dimms.tar.bz2 -------------------------------------------------------------------------------- /tests/hwloc/linux/32em64t-2n8c+dax+nvme+mic+dimms.test: -------------------------------------------------------------------------------- 1 | # Machine originally a Xeon Phi MIC accelerator (now ignored by hwloc) 2 | # later extended with PCI slot numbers, memory modules, nvme, and some DAX devices. 3 | source: 32em64t-2n8c+dax+nvme+mic+dimms.tar.bz2 4 | target: 32em64t-2n8c+dax+nvme+mic+dimms.xml 5 | options: --whole-io 6 | -------------------------------------------------------------------------------- /tests/hwloc/linux/32intel64-2p8co2t+8ve.tar.bz2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/open-mpi/hwloc/7776a02c250324aa020d1d030c8927c0db408d82/tests/hwloc/linux/32intel64-2p8co2t+8ve.tar.bz2 -------------------------------------------------------------------------------- /tests/hwloc/linux/32intel64-2p8co2t+8ve.test: -------------------------------------------------------------------------------- 1 | # 8 NEC VectorEngine accelerators 2 | source: 32intel64-2p8co2t+8ve.tar.bz2 3 | target: 32intel64-2p8co2t+8ve.console 4 | -------------------------------------------------------------------------------- /tests/hwloc/linux/40intel64-2g2n4c+pcilocality.tar.bz2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/open-mpi/hwloc/7776a02c250324aa020d1d030c8927c0db408d82/tests/hwloc/linux/40intel64-2g2n4c+pcilocality.tar.bz2 -------------------------------------------------------------------------------- /tests/hwloc/linux/40intel64-2g2n4c+pcilocality.test: -------------------------------------------------------------------------------- 1 | # Forced PCI locality 2 | source: 40intel64-2g2n4c+pcilocality.tar.bz2 3 | target: 40intel64-2g2n4c+pcilocality.xml 4 | options: --whole-io 5 | env: HWLOC_PCI_LOCALITY="# near 1st package;0000:00-09 0x00000055,0x55555555;# near 2nd package;0000:40-46 0x000000aa,0xaaaaaaaa" 6 | env: export HWLOC_PCI_LOCALITY 7 | -------------------------------------------------------------------------------- /tests/hwloc/linux/40intel64-4n10c+pci-conflicts.tar.bz2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/open-mpi/hwloc/7776a02c250324aa020d1d030c8927c0db408d82/tests/hwloc/linux/40intel64-4n10c+pci-conflicts.tar.bz2 -------------------------------------------------------------------------------- /tests/hwloc/linux/40intel64-4n10c+pci-conflicts.test: -------------------------------------------------------------------------------- 1 | # conflicting cpusets to check insert errors (hidden) 2 | # 4th socket conflicts, ignored 3 | # 3rd L3 conflicts, ignored 4 | # core distance matrix conflicts, distance-core-groups ignored 5 | # I/O affinity conflicts, cannot insert I/O group for hostbridge, attach to root 6 | # NUMA distance matrix works fine. 7 | source: 40intel64-4n10c+pci-conflicts.tar.bz2 8 | target: 40intel64-4n10c+pci-conflicts.console 9 | env: HWLOC_HIDE_ERRORS=1 10 | env: export HWLOC_HIDE_ERRORS 11 | -------------------------------------------------------------------------------- /tests/hwloc/linux/48amd64-4pa2n6c-sparse.tar.bz2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/open-mpi/hwloc/7776a02c250324aa020d1d030c8927c0db408d82/tests/hwloc/linux/48amd64-4pa2n6c-sparse.tar.bz2 -------------------------------------------------------------------------------- /tests/hwloc/linux/48amd64-4pa2n6c-sparse.test: -------------------------------------------------------------------------------- 1 | # 48-core AMD Magny-Cours, initially interesting because: 2 | # - 2 NUMA nodes inside each socket 3 | # - non-multiple of 32 kernel cpumaps (NR_CPUS=48) 4 | # Later modified to simulate sparse numa node OS indexes. 5 | # The distances matrix was also modified to become asymmetric (to verify we don't mix rows/columns) 6 | # but this change was lost somewhere in the history. 7 | source: 48amd64-4pa2n6c-sparse.tar.bz2 8 | target: 48amd64-4pa2n6c-sparse.console 9 | -------------------------------------------------------------------------------- /tests/hwloc/linux/4fake-4gr1nu1pu.console: -------------------------------------------------------------------------------- 1 | Machine (P#0 total=2048MiB) 2 | Package L#0 (P#0 total=2048MiB) 3 | Group0 L#0 (total=1024MiB) 4 | NUMANode L#0 (P#0 local=1024MiB total=1024MiB) 5 | PU L#0 (P#0) 6 | Group0 L#1 7 | PU L#1 (P#1) 8 | Group0 L#2 (total=1024MiB) 9 | NUMANode L#1 (P#2 local=1024MiB total=1024MiB) 10 | depth 0: 1 Machine (type #0) 11 | depth 1: 1 Package (type #1) 12 | depth 2: 3 Group0 (type #13) 13 | depth 3: 2 PU (type #4) 14 | Special depth -3: 2 NUMANode (type #14) 15 | 2 processors not represented in topology: 0x0000000c 16 | Topology infos: LinuxCgroup=/dummy Backend=Linux 17 | Topology not from this system 18 | -------------------------------------------------------------------------------- /tests/hwloc/linux/4fake-4gr1nu1pu.tar.bz2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/open-mpi/hwloc/7776a02c250324aa020d1d030c8927c0db408d82/tests/hwloc/linux/4fake-4gr1nu1pu.tar.bz2 -------------------------------------------------------------------------------- /tests/hwloc/linux/4fake-4gr1nu1pu.test: -------------------------------------------------------------------------------- 1 | # Fake test with 1 NUMA per PU, and some disallowed stuff 2 | # To makes sure NUMA doesn't end-up below PU. 3 | source: 4fake-4gr1nu1pu.tar.bz2 4 | target: 4fake-4gr1nu1pu.console 5 | -------------------------------------------------------------------------------- /tests/hwloc/linux/64amd64-4s2n4ca2co.tar.bz2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/open-mpi/hwloc/7776a02c250324aa020d1d030c8927c0db408d82/tests/hwloc/linux/64amd64-4s2n4ca2co.tar.bz2 -------------------------------------------------------------------------------- /tests/hwloc/linux/64amd64-4s2n4ca2co.test: -------------------------------------------------------------------------------- 1 | # 64-core AMD bulldozer 2 | # L1i isn't equal to L1d, its cpuset is larger (and equal to L2). 3 | source: 64amd64-4s2n4ca2co.tar.bz2 4 | target: 64amd64-4s2n4ca2co.console 5 | -------------------------------------------------------------------------------- /tests/hwloc/linux/64fake-4n2s2ca2c2t.tar.bz2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/open-mpi/hwloc/7776a02c250324aa020d1d030c8927c0db408d82/tests/hwloc/linux/64fake-4n2s2ca2c2t.tar.bz2 -------------------------------------------------------------------------------- /tests/hwloc/linux/64fake-4n2s2ca2c2t.test: -------------------------------------------------------------------------------- 1 | # Very old fake machine 2 | source: 64fake-4n2s2ca2c2t.tar.bz2 3 | target: 64fake-4n2s2ca2c2t.console 4 | -------------------------------------------------------------------------------- /tests/hwloc/linux/64intel64-fakeKNL-A2A-cache.tar.bz2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/open-mpi/hwloc/7776a02c250324aa020d1d030c8927c0db408d82/tests/hwloc/linux/64intel64-fakeKNL-A2A-cache.tar.bz2 -------------------------------------------------------------------------------- /tests/hwloc/linux/64intel64-fakeKNL-A2A-cache.test: -------------------------------------------------------------------------------- 1 | # Fake KNL with only 16 cores, configured in All2all and Cache modes 2 | source: 64intel64-fakeKNL-A2A-cache.tar.bz2 3 | target: 64intel64-fakeKNL-A2A-cache.console 4 | -------------------------------------------------------------------------------- /tests/hwloc/linux/64intel64-fakeKNL-SNC4-hybrid-msc.test: -------------------------------------------------------------------------------- 1 | # Fake KNL with only 16 cores, configured in SNC-4 an Hybrid modes 2 | # MCDRAM cache is forced as memory-side cache 3 | source: 64intel64-fakeKNL-SNC4-hybrid.tar.bz2 4 | target: 64intel64-fakeKNL-SNC4-hybrid-msc.console 5 | env: HWLOC_KNL_MSCACHE_L3=0 6 | env: export HWLOC_KNL_MSCACHE_L3 7 | -------------------------------------------------------------------------------- /tests/hwloc/linux/64intel64-fakeKNL-SNC4-hybrid.tar.bz2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/open-mpi/hwloc/7776a02c250324aa020d1d030c8927c0db408d82/tests/hwloc/linux/64intel64-fakeKNL-SNC4-hybrid.tar.bz2 -------------------------------------------------------------------------------- /tests/hwloc/linux/64intel64-fakeKNL-SNC4-hybrid.test: -------------------------------------------------------------------------------- 1 | # Fake KNL with only 16 cores, configured in SNC-4 an Hybrid modes 2 | source: 64intel64-fakeKNL-SNC4-hybrid.tar.bz2 3 | target: 64intel64-fakeKNL-SNC4-hybrid.console 4 | -------------------------------------------------------------------------------- /tests/hwloc/linux/8em64t-2s2ca2c-buggynuma.tar.bz2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/open-mpi/hwloc/7776a02c250324aa020d1d030c8927c0db408d82/tests/hwloc/linux/8em64t-2s2ca2c-buggynuma.tar.bz2 -------------------------------------------------------------------------------- /tests/hwloc/linux/8em64t-2s2ca2c-buggynuma.test: -------------------------------------------------------------------------------- 1 | # Buggy NUMA info 2 | # Linux reports 8 NUMA nodes containing the (same) entire list of all cores, hence all of them get merged. 3 | source: 8em64t-2s2ca2c-buggynuma.tar.bz2 4 | target: 8em64t-2s2ca2c-buggynuma.console 5 | -------------------------------------------------------------------------------- /tests/hwloc/linux/8em64t-2s2ca2c.tar.bz2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/open-mpi/hwloc/7776a02c250324aa020d1d030c8927c0db408d82/tests/hwloc/linux/8em64t-2s2ca2c.tar.bz2 -------------------------------------------------------------------------------- /tests/hwloc/linux/8em64t-2s2ca2c.test: -------------------------------------------------------------------------------- 1 | # Old Intel with two dual-core dies per socket 2 | source: 8em64t-2s2ca2c.tar.bz2 3 | target: 8em64t-2s2ca2c.console 4 | -------------------------------------------------------------------------------- /tests/hwloc/linux/8em64t-2s4c-asymcaches.console: -------------------------------------------------------------------------------- 1 | Machine (P#0 total=16GiB DMIProductName="PowerEdge 2950" DMIProductVersion= DMIBoardVendor="Dell Inc." DMIBoardName=0NR282 DMIBoardVersion=A00 DMIBoardAssetTag= DMIChassisVendor="Dell Inc." DMIChassisType=23 DMIChassisVersion= DMIChassisAssetTag= DMIBIOSVendor="Dell Inc." DMIBIOSVersion=2.3.1 DMIBIOSDate=04/29/2008 DMISysVendor="Dell Inc.") 2 | NUMANode L#0 (P#0 local=16GiB total=16GiB) 3 | Package L#0 (P#0 CPUModel="Intel(R) Xeon(R) CPU E5345 @ 2.33GHz") 4 | L1dCache L#0 (size=32KiB linesize=64 ways=8) 5 | L1iCache L#0 (size=32KiB linesize=64 ways=8) 6 | Core L#0 (P#0) 7 | PU L#0 (P#0) 8 | L2Cache L#0 (size=4096KiB linesize=64 ways=16) 9 | Core L#1 (P#2) 10 | PU L#1 (P#2) 11 | L1dCache L#1 (size=32KiB linesize=64 ways=8) 12 | L1iCache L#1 (size=32KiB linesize=64 ways=8) 13 | Core L#2 (P#3) 14 | PU L#2 (P#6) 15 | L1dCache L#2 (size=32KiB linesize=64 ways=8) 16 | L1iCache L#2 (size=32KiB linesize=64 ways=8) 17 | Core L#3 (P#1) 18 | PU L#3 (P#4) 19 | Package L#1 (P#1 CPUModel="Intel(R) Xeon(R) CPU E5345 @ 2.33GHz") 20 | L2Cache L#1 (size=4096KiB linesize=64 ways=16) 21 | Core L#4 (P#0) 22 | PU L#4 (P#1) 23 | Core L#5 (P#1) 24 | PU L#5 (P#5) 25 | L2Cache L#2 (size=4096KiB linesize=64 ways=16) 26 | L1dCache L#3 (size=32KiB linesize=64 ways=8) 27 | L1iCache L#3 (size=32KiB linesize=64 ways=8) 28 | Core L#6 (P#2) 29 | PU L#6 (P#3) 30 | L1dCache L#4 (size=32KiB linesize=64 ways=8) 31 | L1iCache L#4 (size=32KiB linesize=64 ways=8) 32 | Core L#7 (P#3) 33 | PU L#7 (P#7) 34 | depth 0: 1 Machine (type #0) 35 | depth 1: 2 Package (type #1) 36 | depth 2: 3 L2Cache (type #6) 37 | depth 3: 5 L1dCache (type #5) 38 | depth 4: 5 L1iCache (type #10) 39 | depth 5: 8 Core (type #3) 40 | depth 6: 8 PU (type #4) 41 | Special depth -3: 1 NUMANode (type #14) 42 | Topology infos: Backend=Linux 43 | Topology not from this system 44 | -------------------------------------------------------------------------------- /tests/hwloc/linux/8em64t-2s4c-asymcaches.tar.bz2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/open-mpi/hwloc/7776a02c250324aa020d1d030c8927c0db408d82/tests/hwloc/linux/8em64t-2s4c-asymcaches.tar.bz2 -------------------------------------------------------------------------------- /tests/hwloc/linux/8em64t-2s4c-asymcaches.test: -------------------------------------------------------------------------------- 1 | # Manually removed caches in the hierarchy to make things asymmetric 2 | source: 8em64t-2s4c-asymcaches.tar.bz2 3 | target: 8em64t-2s4c-asymcaches.console 4 | -------------------------------------------------------------------------------- /tests/hwloc/linux/8ia64-2n2s2c.tar.bz2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/open-mpi/hwloc/7776a02c250324aa020d1d030c8927c0db408d82/tests/hwloc/linux/8ia64-2n2s2c.tar.bz2 -------------------------------------------------------------------------------- /tests/hwloc/linux/8ia64-2n2s2c.test: -------------------------------------------------------------------------------- 1 | # old IA64 with 2 dual-core sockets per NUMA 2 | source: 8ia64-2n2s2c.tar.bz2 3 | target: 8ia64-2n2s2c.console 4 | -------------------------------------------------------------------------------- /tests/hwloc/linux/8ia64-2s2c2t.tar.bz2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/open-mpi/hwloc/7776a02c250324aa020d1d030c8927c0db408d82/tests/hwloc/linux/8ia64-2s2c2t.tar.bz2 -------------------------------------------------------------------------------- /tests/hwloc/linux/8ia64-2s2c2t.test: -------------------------------------------------------------------------------- 1 | # old IA64 with 2 dual-core SMT sockets 2 | source: 8ia64-2s2c2t.tar.bz2 3 | target: 8ia64-2s2c2t.console 4 | -------------------------------------------------------------------------------- /tests/hwloc/linux/96em64t-4no4pa3ca2co.tar.bz2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/open-mpi/hwloc/7776a02c250324aa020d1d030c8927c0db408d82/tests/hwloc/linux/96em64t-4no4pa3ca2co.tar.bz2 -------------------------------------------------------------------------------- /tests/hwloc/linux/96em64t-4no4pa3ca2co.test: -------------------------------------------------------------------------------- 1 | # Old IBM x3950M2 assembling 4 nodes into a custom NUMA arch 2 | source: 96em64t-4no4pa3ca2co.tar.bz2 3 | target: 96em64t-4no4pa3ca2co.console 4 | 5 | -------------------------------------------------------------------------------- /tests/hwloc/linux/README: -------------------------------------------------------------------------------- 1 | -*- text -*- 2 | 3 | This directory contains tarballs of Linux sysfs hierarchies collected on 4 | various systems. Each tarball `xyz.tar.bz2' comes with the corresponding 5 | `xyz.output', which gives the expected output of "lstopo -v -" for that 6 | system. 7 | 8 | Together with the `HWLOC_FSROOT' environment variable, these are 9 | used by `test-topology.sh' to check for any regression introduced in 10 | hwloc detection logic. 11 | 12 | A new topology may be added by: 13 | * running "hwloc-gather-topology" on the target system and saving the 14 | tarball and output files here. 15 | * if lstopo is not available on the target system, running "lstopo -v -" 16 | on the extracted tarball to generate the corresponding `output' file 17 | locally. 18 | * adding the tarball and output files to Makefile.am so that they are 19 | properly handled in "make check" and "make dist". 20 | 21 | When adding a XML-based output, make sure that the filename of the 22 | tarball ends with .xml.tar.bz2 (so that test-topology may skip it 23 | if XML support is disabled). 24 | 25 | If a `xyz.options' file is found, it will override the `lstopo' options 26 | (`-v -' by default) for generating the output `xyz.output'. 27 | 28 | If the output and tarball names do not match, it is possible to specify 29 | the actual tarball name in a `xyz.source' file. 30 | If some files should be excluded when extracting the tarball, they may 31 | be listed in a `xyz.exclude' file. For instance, to exclude `/sys/*/foo' 32 | from the saved topology, you should add `*/sys/foo' to `xyz.exclude'. 33 | These features are especially useful when the same tarball should be 34 | used for different tests with different configurations and thus different 35 | expected outputs, without having to save multiple copies of the tarball. 36 | -------------------------------------------------------------------------------- /tests/hwloc/linux/allowed/Makefile.am: -------------------------------------------------------------------------------- 1 | # Copyright © 2009-2023 Inria. All rights reserved. 2 | # See COPYING in top-level directory. 3 | 4 | AM_CFLAGS = $(HWLOC_CFLAGS) 5 | AM_CPPFLAGS = $(HWLOC_CPPFLAGS) 6 | AM_LDFLAGS = $(HWLOC_LDFLAGS) 7 | 8 | allowed_tests = \ 9 | test1.test 10 | 11 | allowed_outputs = \ 12 | test1.xml 13 | 14 | allowed_fsroots = \ 15 | test1.fsroot.tar.bz2 16 | 17 | if HWLOC_HAVE_OPENAT 18 | if HWLOC_HAVE_BUNZIPP 19 | TESTS = $(allowed_tests) 20 | endif HWLOC_HAVE_BUNZIPP 21 | endif HWLOC_HAVE_OPENAT 22 | 23 | EXTRA_DIST = $(allowed_tests) $(allowed_outputs) $(allowed_fsroots) 24 | 25 | # .test is in TEXT_EXTENSIONS by default, hence it uses its own test configuration 26 | # variables prefixed with TEST_ 27 | TEST_LOG_COMPILER = $(abs_builddir)/test-topology.sh 28 | 29 | check-local: 30 | if test -x extra/extra-tests.sh; then extra/extra-tests.sh "$(TEST_LOG_COMPILER)"; fi 31 | -------------------------------------------------------------------------------- /tests/hwloc/linux/allowed/test1.fsroot.tar.bz2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/open-mpi/hwloc/7776a02c250324aa020d1d030c8927c0db408d82/tests/hwloc/linux/allowed/test1.fsroot.tar.bz2 -------------------------------------------------------------------------------- /tests/hwloc/linux/allowed/test1.test: -------------------------------------------------------------------------------- 1 | synthetic: numa:4 core:2 pu:2 2 | fsroot: test1.fsroot.tar.bz2 3 | target: test1.xml 4 | options: -v -.xml 5 | -------------------------------------------------------------------------------- /tests/hwloc/linux/fakecpuid1f-64intel64-2p4d2n2c2t.tar.bz2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/open-mpi/hwloc/7776a02c250324aa020d1d030c8927c0db408d82/tests/hwloc/linux/fakecpuid1f-64intel64-2p4d2n2c2t.tar.bz2 -------------------------------------------------------------------------------- /tests/hwloc/linux/fakecpuid1f-64intel64-2p4d2n2c2t.test: -------------------------------------------------------------------------------- 1 | # fake (Qemu-generated) case with CPUID.1f Dies 2 | source: fakecpuid1f-64intel64-2p4d2n2c2t.tar.bz2 3 | target: fakecpuid1f-64intel64-2p4d2n2c2t.console 4 | -------------------------------------------------------------------------------- /tests/hwloc/linux/fakeheterocpunuma.tar.bz2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/open-mpi/hwloc/7776a02c250324aa020d1d030c8927c0db408d82/tests/hwloc/linux/fakeheterocpunuma.tar.bz2 -------------------------------------------------------------------------------- /tests/hwloc/linux/fakeheterocpunuma.test: -------------------------------------------------------------------------------- 1 | # fake linux example 2 | # heterogeneous NUMA locations: 3 | # - NUMA nodes at different levels and even some above others. 4 | # - Intented to regression test the inserting/management of nodes and nodesets in the core 5 | # even if real machines didn't expose such things yet. 6 | # and heterogenous frequencies for cpukinds. 7 | # Also used in test-hwloc-calc and test-hwloc-info. 8 | source: fakeheterocpunuma.tar.bz2 9 | target: fakeheterocpunuma.xml 10 | env: HWLOC_DEBUG_ALLOW_OVERLAPPING_NODE_CPUSETS=1 11 | env: export HWLOC_DEBUG_ALLOW_OVERLAPPING_NODE_CPUSETS 12 | env: HWLOC_CPUKINDS_MAXFREQ=1 13 | env: export HWLOC_CPUKINDS_MAXFREQ 14 | -------------------------------------------------------------------------------- /tests/hwloc/linux/fakeheteromemtiers.tar.bz2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/open-mpi/hwloc/7776a02c250324aa020d1d030c8927c0db408d82/tests/hwloc/linux/fakeheteromemtiers.tar.bz2 -------------------------------------------------------------------------------- /tests/hwloc/linux/fakeheteromemtiers.test: -------------------------------------------------------------------------------- 1 | # lots of heterogeneous memories: 2 | # Package0 has DRAM+HBM+NVM but HBM is exposed as DAX (SPM instead of HBM since DAX have no BW info). 3 | # Package1 has DRAM+2xHBM+NVM but one HBM is as DAX (SPM instead of HBM). 4 | # Package2 has HBM+2xNVM but one NVM is as DAX (NVM). 5 | # See commit 526cdf1b7fc87f1f4a3b1e14d675139d65342681 for Qemu configuration and later tweaks. 6 | source: fakeheteromemtiers.tar.bz2 7 | target: fakeheteromemtiers.console 8 | -------------------------------------------------------------------------------- /tests/hwloc/linux/fakememinitiators-1np2c+1npp+gi.tar.bz2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/open-mpi/hwloc/7776a02c250324aa020d1d030c8927c0db408d82/tests/hwloc/linux/fakememinitiators-1np2c+1npp+gi.tar.bz2 -------------------------------------------------------------------------------- /tests/hwloc/linux/fakememinitiators-1np2c+1npp+gi.test: -------------------------------------------------------------------------------- 1 | # complex initiators/targets 2 | # one node per pair of core and one per 4-core package. 3 | # All nodes are either cpu-only (0-3) or memory-only (5-10) 4 | # Hence we have to hide CPU-only nodes and find the locality of memory nodes 5 | # using sysfs target/initiator files. 6 | # There's also a generic initiator (node4) that has faster access 7 | # to memory node5/6/7 than its local CPU. 8 | # It doesn't appear in our topology but forces us to use access1 instead of access0. 9 | source: fakememinitiators-1np2c+1npp+gi.tar.bz2 10 | target: fakememinitiators-1np2c+1npp+gi.console 11 | -------------------------------------------------------------------------------- /tests/hwloc/linux/gather/Makefile.am: -------------------------------------------------------------------------------- 1 | # Copyright © 2010 inria. All rights reserved. 2 | # Copyright © 2010 Cisco Systems, Inc. All rights reserved. 3 | # See COPYING in top-level directory. 4 | 5 | if !HWLOC_CROSS_COMPILING 6 | if HWLOC_HAVE_LINUX 7 | if HWLOC_HAVE_OPENAT 8 | if HWLOC_HAVE_BUNZIPP 9 | TESTS = test-gather-topology.sh 10 | endif HWLOC_HAVE_BUNZIPP 11 | endif HWLOC_HAVE_OPENAT 12 | endif HWLOC_HAVE_LINUX 13 | endif !HWLOC_CROSS_COMPILING 14 | -------------------------------------------------------------------------------- /tests/hwloc/linux/memorysidecaches.tar.bz2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/open-mpi/hwloc/7776a02c250324aa020d1d030c8927c0db408d82/tests/hwloc/linux/memorysidecaches.tar.bz2 -------------------------------------------------------------------------------- /tests/hwloc/linux/memorysidecaches.test: -------------------------------------------------------------------------------- 1 | # dual CascadeLake with DDR as Cache in front of Optane (2LM), SNC2 2 | # 80intel64-2p2n20c2t 3 | source: memorysidecaches.tar.bz2 4 | target: memorysidecaches.console 5 | -------------------------------------------------------------------------------- /tests/hwloc/linux/nvidiagpunumanodes-kept.test: -------------------------------------------------------------------------------- 1 | # P9 with V100 NUMA nodes, kept 2 | # Some cpus were removed from /sys/devices/system/cpu to reduce the size of the topology 3 | source: nvidiagpunumanodes.tar.bz2 4 | target: nvidiagpunumanodes-kept.console 5 | env: HWLOC_KEEP_NVIDIA_GPU_NUMA_NODES=1 6 | env: export HWLOC_KEEP_NVIDIA_GPU_NUMA_NODES 7 | -------------------------------------------------------------------------------- /tests/hwloc/linux/nvidiagpunumanodes.tar.bz2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/open-mpi/hwloc/7776a02c250324aa020d1d030c8927c0db408d82/tests/hwloc/linux/nvidiagpunumanodes.tar.bz2 -------------------------------------------------------------------------------- /tests/hwloc/linux/nvidiagpunumanodes.test: -------------------------------------------------------------------------------- 1 | # P9 with V100 NUMA nodes, ignored 2 | # Some cpus were removed from /sys/devices/system/cpu to reduce the size of the topology 3 | source: nvidiagpunumanodes.tar.bz2 4 | target: nvidiagpunumanodes.console 5 | -------------------------------------------------------------------------------- /tests/hwloc/linux/offline-cpu0-node0.tar.bz2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/open-mpi/hwloc/7776a02c250324aa020d1d030c8927c0db408d82/tests/hwloc/linux/offline-cpu0-node0.tar.bz2 -------------------------------------------------------------------------------- /tests/hwloc/linux/offline-cpu0-node0.test: -------------------------------------------------------------------------------- 1 | # CPU#0 and NUMA node#0 offline 2 | # Generated from a dual-12-core haswell platform, 3 | # after marking cores 0-4,21-23 offline and NUMA node 0 offline, 4 | # and updating sysfs cpu/cache/node bitmap accordingly. 5 | source: offline-cpu0-node0.tar.bz2 6 | target: offline-cpu0-node0.console 7 | -------------------------------------------------------------------------------- /tests/hwloc/ports/include/aix/procinfo.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright © 2012 Inria. All rights reserved. 3 | * See COPYING in top-level directory. 4 | */ 5 | 6 | #ifndef HWLOC_PORT_AIX_PROCINFO_H 7 | #define HWLOC_PORT_AIX_PROCINFO_H 8 | 9 | #include 10 | #include 11 | 12 | struct thrdsinfo { 13 | unsigned long ti_tid; 14 | unsigned long ti_cpuid; 15 | }; 16 | 17 | struct thrdentry64 { 18 | tid_t ti_tid; 19 | cpu_t ti_cpuid; 20 | }; 21 | 22 | extern int getthrds(pid_t, void *, int, tid_t *, int); 23 | extern int getthrds64(pid_t, void *, int, tid64_t *, int); 24 | 25 | #endif /* HWLOC_PORT_AIX_PROCINFO_H */ 26 | -------------------------------------------------------------------------------- /tests/hwloc/ports/include/aix/sys/processor.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright © 2009 inria. All rights reserved. 3 | * Copyright © 2009 Université Bordeaux 4 | * See COPYING in top-level directory. 5 | */ 6 | 7 | #ifndef HWLOC_PORT_AIX_SYS_PROCESSOR_H 8 | #define HWLOC_PORT_AIX_SYS_PROCESSOR_H 9 | 10 | typedef short cpu_t; 11 | #define BINDPROCESS 1 12 | #define BINDTHREAD 2 13 | #define PROCESSOR_CLASS_ANY ((cpu_t)(-1)) 14 | extern int bindprocessor(int What, int Who, cpu_t Where); 15 | 16 | extern cpu_t mycpu(void); 17 | 18 | #endif /* HWLOC_PORT_AIX_SYS_PROCESSOR_H */ 19 | -------------------------------------------------------------------------------- /tests/hwloc/ports/include/aix/sys/systemcfg.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright © 2011 Université Bordeaux 3 | * Copyright © 2016 Inria. All rights reserved. 4 | * See COPYING in top-level directory. 5 | */ 6 | 7 | #ifndef HWLOC_PORT_AIX_SYS_SYSTEMCFG_H 8 | #define HWLOC_PORT_AIX_SYS_SYSTEMCFG_H 9 | 10 | struct { 11 | int dcache_size; 12 | int dcache_asc; 13 | int dcache_line; 14 | int icache_size; 15 | int icache_asc; 16 | int icache_line; 17 | int L2_cache_size; 18 | int L2_cache_asc; 19 | int cache_attrib; 20 | } _system_configuration; 21 | 22 | #define __power_pc() 1 23 | #define __power_4() 1 24 | #define __power_5() 1 25 | #define __power_6() 1 26 | #define __power_7() 1 27 | 28 | /* hide Linux' host disabling _SC_LARGE_PAGESIZE */ 29 | #undef HAVE_DECL__SC_LARGE_PAGESIZE 30 | #define HAVE_DECL__SC_LARGE_PAGESIZE 1 31 | #undef _SC_LARGE_PAGESIZE 32 | #define _SC_LARGE_PAGESIZE 33 33 | 34 | #endif /* HWLOC_PORT_AIX_SYS_SYSTEMCFG_H */ 35 | -------------------------------------------------------------------------------- /tests/hwloc/ports/include/aix/sys/thread.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright © 2009 inria. All rights reserved. 3 | * Copyright © 2009 Université Bordeaux 4 | * See COPYING in top-level directory. 5 | */ 6 | 7 | #ifndef HWLOC_PORT_AIX_SYS_THREAD_H 8 | #define HWLOC_PORT_AIX_SYS_THREAD_H 9 | 10 | typedef long tid_t; 11 | typedef uint64_t tid64_t; 12 | 13 | tid_t thread_self(void); 14 | struct __pthrdsinfo { 15 | tid_t __pi_tid; 16 | }; 17 | #define PTHRDSINFO_QUERY_TID 0x10 18 | int pthread_getthrds_np (pthread_t * thread, int mode, struct __pthrdsinfo * buf, int bufsize, void * regbuf, int * regbufsize); 19 | 20 | #endif /* HWLOC_PORT_AIX_SYS_THREAD_H */ 21 | -------------------------------------------------------------------------------- /tests/hwloc/ports/include/cuda/cuda.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright © 2015 Inria. All rights reserved. 3 | * See COPYING in top-level directory. 4 | */ 5 | 6 | #ifndef HWLOC_PORT_CUDA_CUDA_H 7 | #define HWLOC_PORT_CUDA_CUDA_H 8 | 9 | #define CUDA_VERSION 4000 10 | 11 | #endif /* HWLOC_PORT_CUDA_CUDA_H */ 12 | -------------------------------------------------------------------------------- /tests/hwloc/ports/include/cuda/cuda_runtime_api.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright © 2013-2021 Inria. All rights reserved. 3 | * See COPYING in top-level directory. 4 | */ 5 | 6 | #ifndef HWLOC_PORT_CUDA_CUDA_RUNTIME_API_H 7 | #define HWLOC_PORT_CUDA_CUDA_RUNTIME_API_H 8 | 9 | /* we need to replace any CUDA-related #define that configure may have put in private/autogen/config.h */ 10 | #ifndef HWLOC_CONFIGURE_H 11 | #error cuda_runtime_api.h must be included after private/autogen/config.h 12 | #endif 13 | #undef HWLOC_HAVE_CUDA_L2CACHESIZE 14 | #define HWLOC_HAVE_CUDA_L2CACHESIZE 1 15 | 16 | typedef unsigned cudaError_t; 17 | #define cudaErrorNoDevice 37 18 | 19 | struct cudaDeviceProp { 20 | char name[256]; 21 | int pciDomainID; 22 | int pciBusID; 23 | int pciDeviceID; 24 | size_t totalGlobalMem; 25 | size_t sharedMemPerBlock; 26 | int major; 27 | int minor; 28 | int l2CacheSize; 29 | int multiProcessorCount; 30 | }; 31 | 32 | cudaError_t cudaGetDeviceProperties(struct cudaDeviceProp *, int); 33 | cudaError_t cudaGetDeviceCount(int *); 34 | const char * cudaGetErrorString(cudaError_t); 35 | 36 | #endif /* HWLOC_PORT_CUDA_CUDA_RUNTIME_API_H */ 37 | -------------------------------------------------------------------------------- /tests/hwloc/ports/include/darwin/Availability.h: -------------------------------------------------------------------------------- 1 | #ifndef HWLOC_PORT_DARWIN_AVAILABILITY_H 2 | #define HWLOC_PORT_DARWIN_AVAILABILITY_H 3 | 4 | #endif /* HWLOC_PORT_DARWIN_AVAILABILITY_H */ 5 | 6 | -------------------------------------------------------------------------------- /tests/hwloc/ports/include/darwin/CoreFoundation/CoreFoundation.h: -------------------------------------------------------------------------------- 1 | #ifndef HWLOC_PORT_DARWIN_COREFOUNDATION_COREFOUNDATION_H 2 | #define HWLOC_PORT_DARWIN_COREFOUNDATION_COREFOUNDATION_H 3 | 4 | typedef unsigned char UInt8; 5 | typedef long int CFIndex; 6 | typedef const int * CFNumberRef; 7 | typedef const void * CFDataRef; 8 | typedef const char * CFStringRef; 9 | typedef const void * CFTypeRef; 10 | 11 | #define CFSTR(x) (x) 12 | 13 | #define CFRangeMake(x,y) (x) 14 | typedef unsigned CFRange; 15 | 16 | typedef unsigned CFTypeID; 17 | extern CFTypeID CFGetTypeID(CFTypeRef); 18 | extern CFTypeID CFNumberGetTypeID(void); 19 | extern CFTypeID CFDataGetTypeID(void); 20 | 21 | typedef int CFNumberType; 22 | #define kCFNumberLongLongType 0 23 | extern int CFNumberGetValue(CFNumberRef, CFNumberType, void *); 24 | 25 | extern CFIndex CFDataGetLength(CFDataRef); 26 | extern void CFDataGetBytes(CFDataRef, CFRange, UInt8 *); 27 | 28 | typedef unsigned CFStringEncoding; 29 | #define kCFStringEncodingUTF8 0 30 | extern const char * CFStringGetCStringPtr(CFStringRef, CFStringEncoding); 31 | extern CFStringRef CFCopyTypeIDDescription(CFTypeID); 32 | 33 | extern void CFRelease(CFTypeRef); 34 | 35 | typedef const void * CFAllocatorRef; 36 | #define kCFAllocatorDefault NULL 37 | 38 | #endif /* HWLOC_PORT_DARWIN_COREFOUNDATION_COREFOUNDATION_H */ 39 | -------------------------------------------------------------------------------- /tests/hwloc/ports/include/darwin/IOKit/IOKitLib.h: -------------------------------------------------------------------------------- 1 | #ifndef HWLOC_PORT_DARWIN_IOKIT_IOKITLIB_H 2 | #define HWLOC_PORT_DARWIN_IOKIT_IOKITLIB_H 3 | 4 | #include "CoreFoundation/CoreFoundation.h" 5 | 6 | typedef int io_registry_entry_t; 7 | typedef int io_iterator_t; 8 | typedef int io_object_t; 9 | typedef const char io_name_t[128]; 10 | typedef const char io_string_t[512]; 11 | 12 | typedef int kern_return_t; 13 | #define KERN_SUCCESS 0 14 | 15 | typedef int mach_port_t; 16 | #define kIOMainPortDefault 0 17 | extern io_registry_entry_t IORegistryEntryFromPath(mach_port_t, const io_string_t); 18 | extern kern_return_t IOObjectRelease(io_object_t); 19 | 20 | extern kern_return_t IORegistryEntryGetChildIterator(io_registry_entry_t, const io_name_t, io_iterator_t *); 21 | extern io_object_t IOIteratorNext(io_iterator_t); 22 | 23 | extern kern_return_t IORegistryEntryGetNameInPlane(io_registry_entry_t, const io_name_t, io_name_t); 24 | 25 | typedef unsigned IOOptionBits; 26 | #define kNilOptions 0 27 | extern CFTypeRef IORegistryEntrySearchCFProperty(io_registry_entry_t, const io_name_t, CFStringRef, CFAllocatorRef, IOOptionBits); 28 | 29 | #endif /* HWLOC_PORT_DARWIN_IOKIT_IOKITLIB_H */ 30 | 31 | -------------------------------------------------------------------------------- /tests/hwloc/ports/include/darwin/sys/sysctl.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright © 2009-2016 Inria. All rights reserved. 3 | * Copyright © 2009 Université Bordeaux 4 | * See COPYING in top-level directory. 5 | */ 6 | 7 | #ifndef HWLOC_PORT_DARWIN_SYS_SYSCTL_H 8 | #define HWLOC_PORT_DARWIN_SYS_SYSCTL_H 9 | 10 | extern int sysctl(int *name, int name_len, void *oldp, size_t *oldlenp, void *newp, size_t newlen); 11 | extern int sysctlbyname(const char *name, void *oldp, size_t *oldlenp, void *newp, size_t newlen); 12 | 13 | #define CTL_HW 6 14 | #define HW_PHYSMEM 5 15 | 16 | /* hide Linux' host disabling _SC_LARGE_PAGESIZE */ 17 | #undef HAVE_DECL__SC_LARGE_PAGESIZE 18 | #define HAVE_DECL__SC_LARGE_PAGESIZE 1 19 | #undef _SC_LARGE_PAGESIZE 20 | #define _SC_LARGE_PAGESIZE 33 21 | 22 | #endif /* HWLOC_PORT_DARWIN_SYS_SYSCTL_H */ 23 | -------------------------------------------------------------------------------- /tests/hwloc/ports/include/freebsd/pthread.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright © 2012 Inria. All rights reserved. 3 | * See COPYING in top-level directory. 4 | */ 5 | 6 | #ifndef HWLOC_PORT_FREEBSD_PTHREAD_H 7 | #define HWLOC_PORT_FREEBSD_PTHREAD_H 8 | 9 | #endif /* HWLOC_PORT_FREEBSD_PTHREAD_H */ 10 | -------------------------------------------------------------------------------- /tests/hwloc/ports/include/freebsd/pthread_np.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright © 2009 Université Bordeaux 3 | * See COPYING in top-level directory. 4 | */ 5 | 6 | #ifndef HWLOC_PORT_FREEBSD_PTHREAD_NP_H 7 | #define HWLOC_PORT_FREEBSD_PTHREAD_NP_H 8 | 9 | #include 10 | 11 | int pthread_getaffinity_np(pthread_t, size_t, cpuset_t *); 12 | int pthread_setaffinity_np(pthread_t, size_t, const cpuset_t *); 13 | 14 | #endif /* HWLOC_PORT_FREEBSD_PTHREAD_NP_H */ 15 | -------------------------------------------------------------------------------- /tests/hwloc/ports/include/freebsd/sys/cpuset.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright © 2009 Université Bordeaux 3 | * Copyright © 2015 Inria. All rights reserved. 4 | * See COPYING in top-level directory. 5 | */ 6 | 7 | #ifndef HWLOC_PORT_FREEBSD_SYS_CPUSET_H 8 | #define HWLOC_PORT_FREEBSD_SYS_CPUSET_H 9 | 10 | #include 11 | 12 | typedef long cpuset_t; 13 | typedef int cpulevel_t; 14 | typedef int cpuwhich_t; 15 | typedef int cpusetid_t; 16 | 17 | #define CPU_LEVEL_CPUSET 2 18 | #define CPU_LEVEL_WHICH 3 19 | #define CPU_WHICH_TID 1 20 | #define CPU_WHICH_PID 2 21 | #define CPU_WHICH_DOMAIN 6 22 | 23 | int cpuset_setid(cpuwhich_t which, id_t id, cpusetid_t setid); 24 | int cpuset_getid(cpulevel_t level, cpuwhich_t which, id_t id, cpusetid_t *setid); 25 | 26 | #undef CPU_SETSIZE 27 | #define CPU_SETSIZE (sizeof(cpuset_t) * CHAR_BIT) 28 | #undef CPU_ZERO 29 | #define CPU_ZERO(cpuset) (*(cpuset) = 0) 30 | #undef CPU_SET 31 | #define CPU_SET(cpu, cpuset) (*(cpuset) |= (1ULL<<(cpu))) 32 | #undef CPU_ISSET 33 | #define CPU_ISSET(cpu, cpuset) (*(cpuset) & (1ULL<<(cpu))) 34 | 35 | int cpuset_getaffinity(cpulevel_t level, cpuwhich_t which, id_t id, size_t size, cpuset_t *cpuset); 36 | int cpuset_setaffinity(cpulevel_t level, cpuwhich_t which, id_t id, size_t size, const cpuset_t *cpuset); 37 | 38 | #endif /* HWLOC_PORT_FREEBSD_SYS_CPUSET_H */ 39 | -------------------------------------------------------------------------------- /tests/hwloc/ports/include/freebsd/sys/domainset.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright © 2009 Université Bordeaux 3 | * Copyright © 2015-2020 Inria. All rights reserved. 4 | * See COPYING in top-level directory. 5 | */ 6 | 7 | #ifndef HWLOC_PORT_FREEBSD_SYS_DOMAINSET_H 8 | #define HWLOC_PORT_FREEBSD_SYS_DOMAINSET_H 9 | 10 | typedef long domainset_t; 11 | 12 | #define DOMAINSET_POLICY_ROUNDROBIN 1 13 | #define DOMAINSET_POLICY_FIRSTTOUCH 2 14 | #define DOMAINSET_POLICY_PREFER 3 15 | #define DOMAINSET_POLICY_INTERLEAVE 4 16 | 17 | #undef DOMAINSET_ZERO 18 | #define DOMAINSET_ZERO(domainset) (*(domainset) = 0) 19 | #undef DOMAINSET_SETSIZE 20 | #define DOMAINSET_SETSIZE (sizeof(domainset_t) * CHAR_BIT) 21 | 22 | int cpuset_getdomain(cpulevel_t, cpuwhich_t, id_t, size_t, domainset_t *, int *); 23 | int cpuset_setdomain(cpulevel_t, cpuwhich_t, id_t, size_t, const domainset_t *, int); 24 | 25 | #endif /* HWLOC_PORT_FREEBSD_SYS_DOMAINSET_H */ 26 | -------------------------------------------------------------------------------- /tests/hwloc/ports/include/freebsd/sys/param.h: -------------------------------------------------------------------------------- 1 | #ifndef _SYS_PARAM_H_ 2 | #define _SYS_PARAM_H_ 3 | 4 | #endif /* _SYS_PARAM_H_ */ 5 | -------------------------------------------------------------------------------- /tests/hwloc/ports/include/freebsd/sys/sysctl.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright © 2009 inria. All rights reserved. 3 | * Copyright © 2009 Université Bordeaux 4 | * See COPYING in top-level directory. 5 | */ 6 | 7 | #ifndef HWLOC_PORT_FREEBSD_SYS_SYSCTL_H 8 | #define HWLOC_PORT_FREEBSD_SYS_SYSCTL_H 9 | 10 | extern int sysctl(int *name, int name_len, void *oldp, size_t *oldlenp, void *newp, size_t newlen); 11 | extern int sysctlbyname(const char *name, void *oldp, size_t *oldlenp, const void *newp, size_t newlen); 12 | 13 | /* 14 | * CTL_KERN identifiers 15 | */ 16 | #define CTL_KERN 1 17 | #define CTL_HW 6 18 | 19 | /* 20 | * CTL_KERN identifiers 21 | */ 22 | #define KERN_PROC 14 23 | 24 | /* 25 | * KERN_PROC subtypes 26 | */ 27 | #define KERN_PROC_PID 1 28 | #define KERN_PROC_INC_THREAD 0x10 29 | 30 | /* 31 | * CTL_HW identifiers 32 | */ 33 | #define HW_PHYSMEM 5 34 | 35 | #endif /* HWLOC_PORT_FREEBSD_SYS_SYSCTL_H */ 36 | -------------------------------------------------------------------------------- /tests/hwloc/ports/include/freebsd/sys/thr.h: -------------------------------------------------------------------------------- 1 | #ifndef HWLOC_PORT_FREEBSD_SYS_THR_H 2 | #define HWLOC_PORT_FREEBSD_SYS_THR_H 3 | 4 | int thr_self(long *id); 5 | 6 | #endif /* HWLOC_PORT_FREEBSD_SYS_THR_H */ 7 | -------------------------------------------------------------------------------- /tests/hwloc/ports/include/freebsd/sys/user.h: -------------------------------------------------------------------------------- 1 | #ifndef _SYS_USER_H_ 2 | #define _SYS_USER_H_ 3 | 4 | typedef __int32_t lwpid_t; 5 | 6 | struct kinfo_proc { 7 | pid_t ki_pid; 8 | int ki_oncpu; 9 | int ki_lastcpu; 10 | lwpid_t ki_tid; 11 | }; 12 | 13 | #endif /* _SYS_USER_H_ */ 14 | -------------------------------------------------------------------------------- /tests/hwloc/ports/include/gl/NVCtrl/NVCtrl.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright © 2013 Inria. All rights reserved. 3 | * See COPYING in top-level directory. 4 | */ 5 | 6 | #ifndef HWLOC_PORT_GL_NVCTRL_NVCTRL_H 7 | #define HWLOC_PORT_GL_NVCTRL_NVCTRL_H 8 | 9 | #define NV_CTRL_TARGET_TYPE_X_SCREEN 0 10 | #define NV_CTRL_BINARY_DATA_GPUS_USED_BY_XSCREEN 4 11 | #define NV_CTRL_TARGET_TYPE_GPU 1 12 | #define NV_CTRL_PCI_DOMAIN 306 13 | #define NV_CTRL_PCI_BUS 239 14 | #define NV_CTRL_PCI_DEVICE 240 15 | #define NV_CTRL_PCI_FUNCTION 241 16 | #define NV_CTRL_STRING_PRODUCT_NAME 0 17 | 18 | #endif /* HWLOC_PORT_GL_NVCTRL_NVCTRL_H */ 19 | -------------------------------------------------------------------------------- /tests/hwloc/ports/include/gl/NVCtrl/NVCtrlLib.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright © 2013 Inria. All rights reserved. 3 | * See COPYING in top-level directory. 4 | */ 5 | 6 | #ifndef HWLOC_PORT_GL_NVCTRL_NVCTRLLIB_H 7 | #define HWLOC_PORT_GL_NVCTRL_NVCTRLLIB_H 8 | 9 | int XNVCTRLIsNvScreen(Display *, int); 10 | int XNVCTRLQueryTargetBinaryData(Display *, int, int, unsigned int, unsigned int, unsigned char **, int *); 11 | int XNVCTRLQueryTargetAttribute(Display *, int, int, unsigned int, unsigned int, int *); 12 | int XNVCTRLQueryTargetStringAttribute(Display *, int, int, unsigned int, unsigned int, char **ptr); 13 | 14 | #endif /* HWLOC_PORT_GL_NVCTRL_NVCTRLLIB_H */ 15 | -------------------------------------------------------------------------------- /tests/hwloc/ports/include/gl/X11/Xlib.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright © 2013 Inria. All rights reserved. 3 | * See COPYING in top-level directory. 4 | */ 5 | 6 | #ifndef HWLOC_PORT_GL_X11_XLIB_H 7 | #define HWLOC_PORT_GL_X11_XLIB_H 8 | 9 | typedef struct _XDisplay Display; 10 | 11 | Display *XOpenDisplay(const char*); 12 | int XQueryExtension(Display*, const char*, int*, int*, int*); 13 | int XCloseDisplay(Display*); 14 | int ScreenCount(Display*); 15 | 16 | #endif /* HWLOC_PORT_GL_X11_XLIB_H */ 17 | -------------------------------------------------------------------------------- /tests/hwloc/ports/include/hpux/sys/mpctl.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright © 2009-2015 Inria. All rights reserved. 3 | * Copyright © 2009 Université Bordeaux 4 | * See COPYING in top-level directory. 5 | */ 6 | 7 | #ifndef HWLOC_PORT_HPUX_SYS_MPCTL_H 8 | #define HWLOC_PORT_HPUX_SYS_MPCTL_H 9 | 10 | typedef int spu_t, ldom_t, pthread_spu_t, pthread_ldom_t; 11 | 12 | typedef enum mpc_request { 13 | MPC_GETNUMSPUS, 14 | MPC_GETFIRSTSPU, 15 | MPC_GETNEXTSPU, 16 | 17 | MPC_GETNUMSPUS_SYS, 18 | MPC_GETFIRSTSPU_SYS, 19 | MPC_GETNEXTSPU_SYS, 20 | 21 | MPC_GETCURRENTSTSPU, 22 | MPC_SETPROCESS, 23 | MPC_SETPROCESS_FORCE, 24 | MPC_SETLWP, 25 | MPC_SETLWP_FORCE, 26 | MPC_SETLWP_UP, 27 | 28 | MPC_SETLDOM, 29 | MPC_SETLWPLDOM, 30 | 31 | MPC_GETNUMLDOMS, 32 | MPC_GETFIRSTLDOM, 33 | MPC_GETNEXTLDOM, 34 | MPC_GETNUMLDOMS_SYS, 35 | MPC_GETFIRSTLDOM_SYS, 36 | MPC_GETNEXTLDOM_SYS, 37 | 38 | MPC_SPUTOLDOM, 39 | MPC_LDOMSPUS, 40 | MPC_LDOMSPUS_SYS, 41 | 42 | MPC_GETPROCESS_BINDVALUE, 43 | MPC_GETLWP_BINDVALUE 44 | } mpc_request_t; 45 | 46 | #define MPC_SPUFLOAT 0 47 | #define MPC_LDOMFLOAT 1 48 | #define MPC_SELFPID 2 49 | #define MPC_SELFLWPPID 3 50 | 51 | extern int mpctl(mpc_request_t, spu_t, ...); 52 | 53 | #define _SC_CCNUMA_SUPPORT 0 54 | #define _SC_PSET_SUPPORT 1 55 | 56 | int pthread_processor_bind_np(int request, pthread_spu_t *answer, pthread_spu_t spu, pthread_t tid); 57 | 58 | int pthread_ldom_bind_np(pthread_ldom_t *answer, pthread_ldom_t ldom, pthread_t tid); 59 | 60 | #define PTHREAD_SELFTID_NP 0 61 | #define PTHREAD_LDOMFLOAT_NP 0 62 | #define PTHREAD_SPUFLOAT_NP 0 63 | 64 | #define PTHREAD_BIND_ADVISORY_NP 0 65 | #define PTHREAD_BIND_FORCED_NP 1 66 | 67 | #define MAP_MEM_LOCAL 0 68 | #define MAP_MEM_INTERLEAVED 1 69 | #define MAP_MEM_FIRST_TOUCH 2 70 | 71 | #endif /* HWLOC_PORT_HPUX_SYS_MPCTL_H */ 72 | -------------------------------------------------------------------------------- /tests/hwloc/ports/include/netbsd/pthread.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright © 2012 Inria. All rights reserved. 3 | * See COPYING in top-level directory. 4 | */ 5 | 6 | #ifndef HWLOC_PORT_NETBSD_PTHREAD_H 7 | #define HWLOC_PORT_NETBSD_PTHREAD_H 8 | 9 | #include 10 | 11 | pthread_t pthread_self(void); 12 | 13 | int pthread_getaffinity_np(pthread_t, size_t, cpuset_t *); 14 | int pthread_setaffinity_np(pthread_t, size_t, cpuset_t *); 15 | 16 | #endif /* HWLOC_PORT_NETBSD_PTHREAD_H */ 17 | -------------------------------------------------------------------------------- /tests/hwloc/ports/include/netbsd/sched.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright © 2012 Inria. All rights reserved. 3 | * See COPYING in top-level directory. 4 | */ 5 | 6 | #ifndef HWLOC_PORT_NETBSD_SCHED_H 7 | #define HWLOC_PORT_NETBSD_SCHED_H 8 | 9 | typedef struct _cpuset cpuset_t; 10 | typedef unsigned long cpuid_t; 11 | 12 | cpuset_t *cpuset_create(void); 13 | void cpuset_destroy(cpuset_t *); 14 | void cpuset_zero(cpuset_t *); 15 | int cpuset_set(cpuid_t, cpuset_t *); 16 | int cpuset_isset(cpuid_t, const cpuset_t *); 17 | size_t cpuset_size(const cpuset_t *); 18 | 19 | int sched_getaffinity_np(pid_t, size_t, cpuset_t *); 20 | int sched_setaffinity_np(pid_t, size_t, cpuset_t *); 21 | 22 | #endif /* HWLOC_PORT_NETBSD_SCHED_H */ 23 | -------------------------------------------------------------------------------- /tests/hwloc/ports/include/netbsd/sys/sysctl.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright © 2014 Inria. All rights reserved. 3 | * See COPYING in top-level directory. 4 | */ 5 | 6 | #ifndef HWLOC_PORT_NETBSD_SYS_SYSCTL_H 7 | #define HWLOC_PORT_NETBSD_SYS_SYSCTL_H 8 | 9 | extern int sysctl(const int *, unsigned int, void *, size_t *, const void *, size_t); 10 | 11 | #define CTL_HW 6 12 | #define HW_PHYSMEM64 13 13 | 14 | #endif /* HWLOC_PORT_NETBSD_SYS_SYSCTL_H */ 15 | -------------------------------------------------------------------------------- /tests/hwloc/ports/include/opencl/CL/cl.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright © 2013-2021 Inria. All rights reserved. 3 | * See COPYING in top-level directory. 4 | */ 5 | 6 | #ifndef HWLOC_PORT_OPENCL_CL_CL_H 7 | #define HWLOC_PORT_OPENCL_CL_CL_H 8 | 9 | typedef char cl_char; 10 | typedef unsigned long cl_ulong; 11 | typedef unsigned int cl_uint; 12 | typedef int cl_int; 13 | typedef unsigned int cl_device_type; 14 | typedef unsigned int cl_platform_info; 15 | typedef unsigned int cl_device_info; 16 | 17 | struct _cl_platform_id; 18 | typedef struct _cl_platform_id * cl_platform_id; 19 | struct _cl_device_id; 20 | typedef struct _cl_device_id * cl_device_id; 21 | 22 | #define CL_SUCCESS 0 23 | 24 | cl_int clGetPlatformIDs(cl_uint, cl_platform_id *, cl_uint *); 25 | cl_int clGetDeviceIDs(cl_platform_id, cl_device_type, cl_uint, cl_device_id *, cl_uint *); 26 | cl_int clGetDeviceInfo(cl_device_id, cl_device_info, size_t, void *, size_t *); 27 | cl_int clGetPlatformInfo(cl_platform_id, cl_platform_info, size_t, void *, size_t *); 28 | 29 | #define CL_DEVICE_TYPE_DEFAULT (1 << 0) 30 | #define CL_DEVICE_TYPE_CPU (1 << 1) 31 | #define CL_DEVICE_TYPE_GPU (1 << 2) 32 | #define CL_DEVICE_TYPE_ACCELERATOR (1 << 3) 33 | #define CL_DEVICE_TYPE_CUSTOM (1 << 4) 34 | #define CL_DEVICE_TYPE_ALL 0xFFFFFFFF 35 | 36 | #define CL_PLATFORM_NAME 0x0902 37 | #define CL_DEVICE_TYPE 0x1000 38 | #define CL_DEVICE_MAX_COMPUTE_UNITS 0x1002 39 | #define CL_DEVICE_GLOBAL_MEM_SIZE 0x101F 40 | #define CL_DEVICE_NAME 0x102B 41 | #define CL_DEVICE_VENDOR 0x102C 42 | #define CL_DEVICE_PLATFORM 0x1031 43 | 44 | #endif /* HWLOC_PORT_OPENCL_CL_CL_H */ 45 | -------------------------------------------------------------------------------- /tests/hwloc/ports/include/solaris/kstat.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright © 2009-2017 Inria. All rights reserved. 3 | * Copyright © 2009 Université Bordeaux 4 | * See COPYING in top-level directory. 5 | */ 6 | 7 | #ifndef HWLOC_PORT_SOLARIS_KSTAT_H 8 | #define HWLOC_PORT_SOLARIS_KSTAT_H 9 | 10 | #include 11 | 12 | typedef long kid_t; 13 | 14 | #define KSTAT_STRLEN 31 15 | 16 | typedef struct kstat { 17 | char ks_module[KSTAT_STRLEN]; 18 | char ks_name[KSTAT_STRLEN]; 19 | int ks_instance; 20 | struct kstat *ks_next; 21 | } kstat_t; 22 | 23 | typedef struct kstat_named { 24 | unsigned char data_type; 25 | union { 26 | char c[16]; 27 | int32_t i32; 28 | uint32_t ui32; 29 | struct { 30 | union { 31 | char *ptr; 32 | } addr; 33 | } str; 34 | } value; 35 | } kstat_named_t; 36 | 37 | typedef struct kstat_ctl { 38 | kstat_t *kc_chain; 39 | } kstat_ctl_t; 40 | 41 | #define KSTAT_DATA_CHAR 1 42 | #define KSTAT_DATA_INT32 1 43 | #define KSTAT_DATA_UINT32 2 44 | #define KSTAT_DATA_INT64 3 45 | #define KSTAT_DATA_UINT64 4 46 | #define KSTAT_DATA_STRING 9 47 | 48 | kstat_ctl_t *kstat_open(void); 49 | kid_t kstat_read(kstat_ctl_t *, kstat_t *, void *); 50 | void *kstat_data_lookup(kstat_t *, char *); 51 | int kstat_close(kstat_ctl_t *); 52 | 53 | #endif /* HWLOC_PORT_SOLARIS_KSTAT_H */ 54 | -------------------------------------------------------------------------------- /tests/hwloc/ports/include/solaris/picl.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright © 2011 inria. All rights reserved. 3 | * See COPYING in top-level directory. 4 | */ 5 | 6 | #ifndef HWLOC_PORT_SOLARIS_PICL_H 7 | #define HWLOC_PORT_SOLARIS_PICL_H 8 | 9 | #include 10 | #include 11 | 12 | #define PICL_PROPNAMELEN_MAX 256 13 | 14 | typedef uint64_t picl_nodehdl_t; 15 | typedef uint64_t picl_prophdl_t; 16 | 17 | typedef enum { 18 | PICL_PTYPE_UNKNOWN, 19 | PICL_PTYPE_INT, 20 | PICL_PTYPE_UNSIGNED_INT, 21 | PICL_PTYPE_TABLE, 22 | PICL_PTYPE_CHARSTRING 23 | } picl_prop_type_t; 24 | 25 | typedef struct { 26 | picl_prop_type_t type; 27 | size_t size; 28 | char name[PICL_PROPNAMELEN_MAX]; 29 | } picl_propinfo_t; 30 | 31 | typedef enum { 32 | PICL_SUCCESS, 33 | PICL_WALK_TERMINATE, 34 | PICL_ENDOFLIST 35 | } picl_errno_t; 36 | 37 | extern int picl_initialize(void); 38 | extern int picl_shutdown(void); 39 | extern int picl_get_root(picl_nodehdl_t *nodehandle); 40 | extern int picl_get_first_prop(picl_nodehdl_t nodeh, picl_prophdl_t *proph); 41 | extern int picl_get_next_prop(picl_prophdl_t proph, picl_prophdl_t *nexth); 42 | extern int picl_get_propinfo(picl_prophdl_t proph, picl_propinfo_t *pi); 43 | extern int picl_get_propval(picl_prophdl_t proph, void *valbuf, size_t sz); 44 | extern int picl_get_next_by_row(picl_prophdl_t thish, picl_prophdl_t *proph); 45 | extern int picl_get_next_by_col(picl_prophdl_t thish, picl_prophdl_t *proph); 46 | extern int picl_walk_tree_by_class(picl_nodehdl_t rooth, const char *classname, void *c_args, int (*callback_fn)(picl_nodehdl_t hdl, void *args)); 47 | 48 | #endif /* HWLOC_PORT_SOLARIS_PICL_H */ 49 | -------------------------------------------------------------------------------- /tests/hwloc/ports/include/solaris/sys/processor.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright © 2009-2017 Inria. All rights reserved. 3 | * Copyright © 2009 Université Bordeaux 4 | * See COPYING in top-level directory. 5 | */ 6 | 7 | #ifndef HWLOC_PORT_SOLARIS_SYS_PROCESSOR_H 8 | #define HWLOC_PORT_SOLARIS_SYS_PROCESSOR_H 9 | 10 | #include 11 | typedef int processorid_t; 12 | #define PBIND_NONE -1 13 | #define PBIND_QUERY -2 14 | 15 | extern int processor_bind(idtype_t idtype, id_t id, processorid_t processorid, processorid_t *obind); 16 | extern processorid_t getcpuid(void); 17 | 18 | /* hide Linux' host disabling _SC_LARGE_PAGESIZE */ 19 | #undef HAVE_DECL__SC_LARGE_PAGESIZE 20 | #define HAVE_DECL__SC_LARGE_PAGESIZE 1 21 | #undef _SC_LARGE_PAGESIZE 22 | #define _SC_LARGE_PAGESIZE 33 23 | 24 | #endif /* HWLOC_PORT_SOLARIS_SYS_PROCESSOR_H */ 25 | -------------------------------------------------------------------------------- /tests/hwloc/ports/include/solaris/sys/procset.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright © 2009-2014 Inria. All rights reserved. 3 | * Copyright © 2009 Université Bordeaux 4 | * See COPYING in top-level directory. 5 | */ 6 | 7 | #ifndef HWLOC_PORT_SOLARIS_SYS_PROCSET_H 8 | #define HWLOC_PORT_SOLARIS_SYS_PROCSET_H 9 | 10 | #ifndef __ENUM_IDTYPE_T 11 | /* Linux doesn't have idtype_t unless __ENUM_IDTYPE_T is set */ 12 | typedef int idtype_t; 13 | #ifndef P_PID 14 | /* If there's no idtype_t, P_PID could exist as a #define */ 15 | #define P_PID 1 16 | #endif 17 | #endif 18 | 19 | /* Linux never has P_LWPID and P_MYID */ 20 | #define P_LWPID 2 21 | #define P_MYID 3 22 | 23 | #endif /* HWLOC_PORT_SOLARIS_SYS_PROCSET_H */ 24 | -------------------------------------------------------------------------------- /tests/hwloc/ports/include/solaris/sys/systeminfo.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright © 2011-2017 Inria. All rights reserved. 3 | * See COPYING in top-level directory. 4 | */ 5 | 6 | #ifndef HWLOC_PORT_SOLARIS_SYS_SYSTEMINFO_H 7 | #define HWLOC_PORT_SOLARIS_SYS_SYSTEMINFO_H 8 | 9 | #define SI_ARCHITECTURE 6 10 | #define SI_HW_PROVIDER 8 11 | #define SI_PLATFORM 513 12 | 13 | extern int sysinfo(int, char *, long); 14 | 15 | #endif /* HWLOC_PORT_SOLARIS_SYS_SYSTEMINFO_H */ 16 | -------------------------------------------------------------------------------- /tests/hwloc/ports/include/windows/windowsx.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright © 2015 Inria. All rights reserved. 3 | * See COPYING in top-level directory. 4 | */ 5 | 6 | #ifndef HWLOC_PORT_WINDOWS_WINDOWSX_H 7 | #define HWLOC_PORT_WINDOWS_WINDOWSX_H 8 | 9 | 10 | #endif /* HWLOC_PORT_WINDOWS_WINDOWSX_H */ 11 | -------------------------------------------------------------------------------- /tests/hwloc/rename/main.c: -------------------------------------------------------------------------------- 1 | /* don't let assert() stringify some hwloc names that would not 2 | * renamed afterwards, and wouldn't be easy to filter out */ 3 | #define NDEBUG 1 4 | 5 | #define _GNU_SOURCE 1 6 | #include "sched.h" 7 | 8 | /* all headers should be explicitly included */ 9 | 10 | /* autoheaders definitions first, to avoid conflicts later */ 11 | #include "private/autogen/config.h" 12 | #include "hwloc/autogen/config.h" 13 | 14 | #include "hwloc.h" /* hwloc/rename.h required before everything else */ 15 | #include "hwloc/bitmap.h" 16 | #include "hwloc/shmem.h" 17 | #include "hwloc/helper.h" 18 | #include "hwloc/plugins.h" 19 | 20 | #if HWLOC_TEST_RENAME_LINUX 21 | #include "hwloc/linux.h" 22 | #endif 23 | #if HWLOC_TEST_RENAME_LINUX_LIBNUMA 24 | #include "hwloc/linux-libnuma.h" 25 | #endif 26 | #if HWLOC_TEST_RENAME_GLIBC_SCHED 27 | #include "hwloc/glibc-sched.h" 28 | #endif 29 | #if HWLOC_TEST_RENAME_OPENFABRICS_VERBS 30 | #include "hwloc/openfabrics-verbs.h" 31 | #endif 32 | #if HWLOC_TEST_RENAME_OPENCL 33 | #include "hwloc/opencl.h" 34 | #endif 35 | #if HWLOC_TEST_RENAME_CUDA 36 | #include "hwloc/cuda.h" 37 | #endif 38 | #if HWLOC_TEST_RENAME_CUDART 39 | #include "hwloc/cudart.h" 40 | #endif 41 | #if HWLOC_TEST_RENAME_NVML 42 | #include "hwloc/nvml.h" 43 | #endif 44 | #if HWLOC_TEST_RENAME_RSMI 45 | #include "hwloc/rsmi.h" 46 | #endif 47 | #if HWLOC_TEST_RENAME_LEVELZERO 48 | #include "hwloc/levelzero.h" 49 | #endif 50 | #include "hwloc/gl.h" 51 | #include "hwloc/windows.h" 52 | 53 | #include "private/components.h" 54 | #include "private/internal-components.h" 55 | #include "private/cpuid-x86.h" 56 | #include "private/debug.h" 57 | #include "private/misc.h" 58 | #include "private/private.h" 59 | #include "private/solaris-chiptype.h" 60 | #include "private/xml.h" 61 | -------------------------------------------------------------------------------- /tests/hwloc/windows_processor_groups.c: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright © 2021 Inria. All rights reserved. 3 | * See COPYING in top-level directory. 4 | */ 5 | 6 | #include "private/autogen/config.h" 7 | #include "hwloc.h" 8 | #include "hwloc/windows.h" 9 | 10 | #include 11 | 12 | int main(void) 13 | { 14 | hwloc_topology_t topology; 15 | hwloc_bitmap_t set; 16 | int nr, i, err; 17 | char *s; 18 | 19 | hwloc_topology_init(&topology); 20 | hwloc_topology_load(topology); 21 | 22 | set = hwloc_bitmap_alloc(); 23 | assert(set); 24 | 25 | /* check invalid flag */ 26 | nr = hwloc_windows_get_nr_processor_groups(topology, 1); 27 | assert(nr < 0); 28 | assert(errno == EINVAL); 29 | 30 | nr = hwloc_windows_get_nr_processor_groups(topology, 0); 31 | assert(nr >= 1); 32 | printf("found %d groups\n", nr); 33 | 34 | /* check invalid flag */ 35 | err = hwloc_windows_get_processor_group_cpuset(topology, 0, set, 1); 36 | assert(err < 0); 37 | assert(errno == EINVAL); 38 | /* check invalid index */ 39 | err = hwloc_windows_get_processor_group_cpuset(topology, nr, set, 0); 40 | assert(err < 0); 41 | assert(errno == ENOENT); 42 | 43 | for(i=0; i= 0); 50 | printf("processor group #%d has cpuset %s\n", i, s); 51 | free(s); 52 | } 53 | 54 | hwloc_bitmap_free(set); 55 | hwloc_topology_destroy(topology); 56 | return 0; 57 | } 58 | -------------------------------------------------------------------------------- /tests/hwloc/wrapper.sh.in: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | #-*-sh-*- 3 | 4 | # 5 | # Copyright © 2012-2021 Inria. All rights reserved. 6 | # See COPYING in top-level directory. 7 | # 8 | 9 | HWLOC_top_builddir="@HWLOC_top_builddir@" 10 | HWLOC_top_srcdir="@HWLOC_top_srcdir@" 11 | xmlbuffer=xmlbuffer@EXEEXT@ 12 | 13 | HWLOC_TOP_SRCDIR=${HWLOC_top_srcdir} 14 | export HWLOC_TOP_SRCDIR 15 | 16 | HWLOC_PLUGINS_PATH=${HWLOC_top_builddir}/hwloc/.libs 17 | export HWLOC_PLUGINS_PATH 18 | 19 | HWLOC_DEBUG_CHECK=1 20 | export HWLOC_DEBUG_CHECK 21 | 22 | HWLOC_LIBXML_CLEANUP=1 23 | export HWLOC_LIBXML_CLEANUP 24 | 25 | if test "`basename $1`" = "$xmlbuffer"; then 26 | "$@" 1 1 27 | "$@" 0 1 28 | "$@" 1 0 29 | "$@" 0 0 30 | else 31 | "$@" 32 | fi 33 | -------------------------------------------------------------------------------- /tests/hwloc/x86+linux/5intel64-hybrid-lakefield.tar.bz2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/open-mpi/hwloc/7776a02c250324aa020d1d030c8927c0db408d82/tests/hwloc/x86+linux/5intel64-hybrid-lakefield.tar.bz2 -------------------------------------------------------------------------------- /tests/hwloc/x86+linux/5intel64-hybrid-lakefield.test: -------------------------------------------------------------------------------- 1 | # Intel Hybrid Lakefield, with Linux discovery first then annotations about cpukinds from x86 2 | source: 5intel64-hybrid-lakefield.tar.bz2 3 | target: 5intel64-hybrid-lakefield.console 4 | options: -v 5 | env: HWLOC_COMPONENTS=linux,x86,stop 6 | env: export HWLOC_COMPONENTS 7 | -------------------------------------------------------------------------------- /tests/hwloc/x86+linux/64amd64-4p2n4ca2co+topoextnuma.test: -------------------------------------------------------------------------------- 1 | # AMD CPUID TopoExt NUMA, annotated by Linux for size/pages 2 | # Fortunately the output is identical when Linux performs the entire NUMA discovery. 3 | source: 64amd64-4p2n4ca2co.tar.bz2 4 | target: 64amd64-4p2n4ca2co.xml 5 | env: HWLOC_X86_TOPOEXT_NUMANODES=1 6 | env: export HWLOC_X86_TOPOEXT_NUMANODES 7 | -------------------------------------------------------------------------------- /tests/hwloc/x86+linux/64amd64-4p2n4ca2co.tar.bz2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/open-mpi/hwloc/7776a02c250324aa020d1d030c8927c0db408d82/tests/hwloc/x86+linux/64amd64-4p2n4ca2co.tar.bz2 -------------------------------------------------------------------------------- /tests/hwloc/x86+linux/64amd64-4p2n4ca2co.test: -------------------------------------------------------------------------------- 1 | # AMD CPUID discovery before Linux adds NUMA nodes 2 | source: 64amd64-4p2n4ca2co.tar.bz2 3 | target: 64amd64-4p2n4ca2co.xml 4 | -------------------------------------------------------------------------------- /tests/hwloc/x86+linux/Makefile.am: -------------------------------------------------------------------------------- 1 | # Copyright © 2019-2023 Inria. All rights reserved. 2 | # See COPYING in top-level directory. 3 | 4 | AM_CFLAGS = $(HWLOC_CFLAGS) 5 | AM_CPPFLAGS = $(HWLOC_CPPFLAGS) 6 | AM_LDFLAGS = $(HWLOC_LDFLAGS) 7 | 8 | # Add your tests here. 9 | cpuid_sysfs_tests = \ 10 | 64amd64-4p2n4ca2co.test \ 11 | 64amd64-4p2n4ca2co+topoextnuma.test \ 12 | 5intel64-hybrid-lakefield.test 13 | 14 | # Add your expected outputs here. 15 | cpuid_sysfs_outputs = \ 16 | 64amd64-4p2n4ca2co.xml \ 17 | 5intel64-hybrid-lakefield.console 18 | 19 | # Each output `xyz.output' must have a corresponding tarball `xyz.tar.bz2' 20 | # or a corresponding `xyz.source' specifying which tarball to use 21 | cpuid_sysfs_tarballs = \ 22 | 64amd64-4p2n4ca2co.tar.bz2 \ 23 | 5intel64-hybrid-lakefield.tar.bz2 24 | 25 | if HWLOC_HAVE_OPENAT 26 | if HWLOC_HAVE_BUNZIPP 27 | TESTS = $(cpuid_sysfs_tests) 28 | endif HWLOC_HAVE_BUNZIPP 29 | endif HWLOC_HAVE_OPENAT 30 | 31 | EXTRA_DIST = $(cpuid_sysfs_tests) $(cpuid_sysfs_outputs) $(cpuid_sysfs_tarballs) 32 | 33 | # .test is in TEXT_EXTENSIONS by default, hence it uses its own test configuration 34 | # variables prefixed with TEST_ 35 | TEST_LOG_COMPILER = $(abs_builddir)/test-topology.sh 36 | 37 | check-local: 38 | if test -x extra/extra-tests.sh; then extra/extra-tests.sh "$(TEST_LOG_COMPILER)"; fi 39 | -------------------------------------------------------------------------------- /tests/hwloc/x86/AMD-15h-Bulldozer-4xOpteron-6272.tar.bz2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/open-mpi/hwloc/7776a02c250324aa020d1d030c8927c0db408d82/tests/hwloc/x86/AMD-15h-Bulldozer-4xOpteron-6272.tar.bz2 -------------------------------------------------------------------------------- /tests/hwloc/x86/AMD-15h-Bulldozer-4xOpteron-6272.test: -------------------------------------------------------------------------------- 1 | source: AMD-15h-Bulldozer-4xOpteron-6272.tar.bz2 2 | target: AMD-15h-Bulldozer-4xOpteron-6272.xml 3 | -------------------------------------------------------------------------------- /tests/hwloc/x86/AMD-15h-Piledriver-4xOpteron-6348.tar.bz2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/open-mpi/hwloc/7776a02c250324aa020d1d030c8927c0db408d82/tests/hwloc/x86/AMD-15h-Piledriver-4xOpteron-6348.tar.bz2 -------------------------------------------------------------------------------- /tests/hwloc/x86/AMD-15h-Piledriver-4xOpteron-6348.test: -------------------------------------------------------------------------------- 1 | source: AMD-15h-Piledriver-4xOpteron-6348.tar.bz2 2 | target: AMD-15h-Piledriver-4xOpteron-6348.xml 3 | -------------------------------------------------------------------------------- /tests/hwloc/x86/AMD-17h-Zen-2xEpyc-7451.tar.bz2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/open-mpi/hwloc/7776a02c250324aa020d1d030c8927c0db408d82/tests/hwloc/x86/AMD-17h-Zen-2xEpyc-7451.tar.bz2 -------------------------------------------------------------------------------- /tests/hwloc/x86/AMD-17h-Zen-2xEpyc-7451.test: -------------------------------------------------------------------------------- 1 | source: AMD-17h-Zen-2xEpyc-7451.tar.bz2 2 | target: AMD-17h-Zen-2xEpyc-7451.xml 3 | -------------------------------------------------------------------------------- /tests/hwloc/x86/AMD-19h-Zen3-2xEpyc-7763.tar.bz2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/open-mpi/hwloc/7776a02c250324aa020d1d030c8927c0db408d82/tests/hwloc/x86/AMD-19h-Zen3-2xEpyc-7763.tar.bz2 -------------------------------------------------------------------------------- /tests/hwloc/x86/AMD-19h-Zen3-2xEpyc-7763.test: -------------------------------------------------------------------------------- 1 | source: AMD-19h-Zen3-2xEpyc-7763.tar.bz2 2 | target: AMD-19h-Zen3-2xEpyc-7763.xml 3 | -------------------------------------------------------------------------------- /tests/hwloc/x86/AMD-19h-Zen4-2xEpyc-9654.tar.bz2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/open-mpi/hwloc/7776a02c250324aa020d1d030c8927c0db408d82/tests/hwloc/x86/AMD-19h-Zen4-2xEpyc-9654.tar.bz2 -------------------------------------------------------------------------------- /tests/hwloc/x86/AMD-19h-Zen4-2xEpyc-9654.test: -------------------------------------------------------------------------------- 1 | source: AMD-19h-Zen4-2xEpyc-9654.tar.bz2 2 | target: AMD-19h-Zen4-2xEpyc-9654.xml 3 | -------------------------------------------------------------------------------- /tests/hwloc/x86/AMD-K10-Istanbul-8xOpteron-8439SE.tar.bz2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/open-mpi/hwloc/7776a02c250324aa020d1d030c8927c0db408d82/tests/hwloc/x86/AMD-K10-Istanbul-8xOpteron-8439SE.tar.bz2 -------------------------------------------------------------------------------- /tests/hwloc/x86/AMD-K10-Istanbul-8xOpteron-8439SE.test: -------------------------------------------------------------------------------- 1 | source: AMD-K10-Istanbul-8xOpteron-8439SE.tar.bz2 2 | target: AMD-K10-Istanbul-8xOpteron-8439SE.xml 3 | -------------------------------------------------------------------------------- /tests/hwloc/x86/AMD-K10-MagnyCours-2xOpteron-6164HE.tar.bz2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/open-mpi/hwloc/7776a02c250324aa020d1d030c8927c0db408d82/tests/hwloc/x86/AMD-K10-MagnyCours-2xOpteron-6164HE.tar.bz2 -------------------------------------------------------------------------------- /tests/hwloc/x86/AMD-K10-MagnyCours-2xOpteron-6164HE.test: -------------------------------------------------------------------------------- 1 | source: AMD-K10-MagnyCours-2xOpteron-6164HE.tar.bz2 2 | target: AMD-K10-MagnyCours-2xOpteron-6164HE.xml 3 | -------------------------------------------------------------------------------- /tests/hwloc/x86/AMD-K8-SantaRosa-2xOpteron-2218.tar.bz2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/open-mpi/hwloc/7776a02c250324aa020d1d030c8927c0db408d82/tests/hwloc/x86/AMD-K8-SantaRosa-2xOpteron-2218.tar.bz2 -------------------------------------------------------------------------------- /tests/hwloc/x86/AMD-K8-SantaRosa-2xOpteron-2218.test: -------------------------------------------------------------------------------- 1 | source: AMD-K8-SantaRosa-2xOpteron-2218.tar.bz2 2 | target: AMD-K8-SantaRosa-2xOpteron-2218.xml 3 | -------------------------------------------------------------------------------- /tests/hwloc/x86/AMD-K8-SledgeHammer-2xOpteron-250.tar.bz2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/open-mpi/hwloc/7776a02c250324aa020d1d030c8927c0db408d82/tests/hwloc/x86/AMD-K8-SledgeHammer-2xOpteron-250.tar.bz2 -------------------------------------------------------------------------------- /tests/hwloc/x86/AMD-K8-SledgeHammer-2xOpteron-250.test: -------------------------------------------------------------------------------- 1 | source: AMD-K8-SledgeHammer-2xOpteron-250.tar.bz2 2 | target: AMD-K8-SledgeHammer-2xOpteron-250.xml 3 | -------------------------------------------------------------------------------- /tests/hwloc/x86/Hygon-Dhyana-32cores.tar.bz2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/open-mpi/hwloc/7776a02c250324aa020d1d030c8927c0db408d82/tests/hwloc/x86/Hygon-Dhyana-32cores.tar.bz2 -------------------------------------------------------------------------------- /tests/hwloc/x86/Hygon-Dhyana-32cores.test: -------------------------------------------------------------------------------- 1 | source: Hygon-Dhyana-32cores.tar.bz2 2 | target: Hygon-Dhyana-32cores.xml 3 | -------------------------------------------------------------------------------- /tests/hwloc/x86/Intel-Broadwell-2xXeon-E5-2650Lv4.tar.bz2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/open-mpi/hwloc/7776a02c250324aa020d1d030c8927c0db408d82/tests/hwloc/x86/Intel-Broadwell-2xXeon-E5-2650Lv4.tar.bz2 -------------------------------------------------------------------------------- /tests/hwloc/x86/Intel-Broadwell-2xXeon-E5-2650Lv4.test: -------------------------------------------------------------------------------- 1 | source: Intel-Broadwell-2xXeon-E5-2650Lv4.tar.bz2 2 | target: Intel-Broadwell-2xXeon-E5-2650Lv4.xml 3 | -------------------------------------------------------------------------------- /tests/hwloc/x86/Intel-CPUID.1A-1p2co2t.env: -------------------------------------------------------------------------------- 1 | HWLOC_CPUKINDS_RANKING=coretype 2 | export HWLOC_CPUKINDS_RANKING 3 | -------------------------------------------------------------------------------- /tests/hwloc/x86/Intel-CPUID.1A-1p2co2t.tar.bz2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/open-mpi/hwloc/7776a02c250324aa020d1d030c8927c0db408d82/tests/hwloc/x86/Intel-CPUID.1A-1p2co2t.tar.bz2 -------------------------------------------------------------------------------- /tests/hwloc/x86/Intel-CPUID.1A-1p2co2t.test: -------------------------------------------------------------------------------- 1 | source: Intel-CPUID.1A-1p2co2t.tar.bz2 2 | target: Intel-CPUID.1A-1p2co2t.xml 3 | -------------------------------------------------------------------------------- /tests/hwloc/x86/Intel-CPUID.1F-Qemu-2p3d3c2t.tar.bz2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/open-mpi/hwloc/7776a02c250324aa020d1d030c8927c0db408d82/tests/hwloc/x86/Intel-CPUID.1F-Qemu-2p3d3c2t.tar.bz2 -------------------------------------------------------------------------------- /tests/hwloc/x86/Intel-CPUID.1F-Qemu-2p3d3c2t.test: -------------------------------------------------------------------------------- 1 | source: Intel-CPUID.1F-Qemu-2p3d3c2t.tar.bz2 2 | target: Intel-CPUID.1F-Qemu-2p3d3c2t.xml 3 | -------------------------------------------------------------------------------- /tests/hwloc/x86/Intel-CascadeLake-2xXeon6230.tar.bz2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/open-mpi/hwloc/7776a02c250324aa020d1d030c8927c0db408d82/tests/hwloc/x86/Intel-CascadeLake-2xXeon6230.tar.bz2 -------------------------------------------------------------------------------- /tests/hwloc/x86/Intel-CascadeLake-2xXeon6230.test: -------------------------------------------------------------------------------- 1 | source: Intel-CascadeLake-2xXeon6230.tar.bz2 2 | target: Intel-CascadeLake-2xXeon6230.xml 3 | -------------------------------------------------------------------------------- /tests/hwloc/x86/Intel-Core-2xXeon-E5345.tar.bz2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/open-mpi/hwloc/7776a02c250324aa020d1d030c8927c0db408d82/tests/hwloc/x86/Intel-Core-2xXeon-E5345.tar.bz2 -------------------------------------------------------------------------------- /tests/hwloc/x86/Intel-Core-2xXeon-E5345.test: -------------------------------------------------------------------------------- 1 | source: Intel-Core-2xXeon-E5345.tar.bz2 2 | target: Intel-Core-2xXeon-E5345.xml 3 | -------------------------------------------------------------------------------- /tests/hwloc/x86/Intel-Haswell-2xXeon-E5-2680v3.tar.bz2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/open-mpi/hwloc/7776a02c250324aa020d1d030c8927c0db408d82/tests/hwloc/x86/Intel-Haswell-2xXeon-E5-2680v3.tar.bz2 -------------------------------------------------------------------------------- /tests/hwloc/x86/Intel-Haswell-2xXeon-E5-2680v3.test: -------------------------------------------------------------------------------- 1 | source: Intel-Haswell-2xXeon-E5-2680v3.tar.bz2 2 | target: Intel-Haswell-2xXeon-E5-2680v3.xml 3 | -------------------------------------------------------------------------------- /tests/hwloc/x86/Intel-IvyBridge-12xXeon-E5-4620v2.tar.bz2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/open-mpi/hwloc/7776a02c250324aa020d1d030c8927c0db408d82/tests/hwloc/x86/Intel-IvyBridge-12xXeon-E5-4620v2.tar.bz2 -------------------------------------------------------------------------------- /tests/hwloc/x86/Intel-IvyBridge-12xXeon-E5-4620v2.test: -------------------------------------------------------------------------------- 1 | source: Intel-IvyBridge-12xXeon-E5-4620v2.tar.bz2 2 | target: Intel-IvyBridge-12xXeon-E5-4620v2.xml 3 | -------------------------------------------------------------------------------- /tests/hwloc/x86/Intel-KnightsCorner-XeonPhi-SE10P.tar.bz2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/open-mpi/hwloc/7776a02c250324aa020d1d030c8927c0db408d82/tests/hwloc/x86/Intel-KnightsCorner-XeonPhi-SE10P.tar.bz2 -------------------------------------------------------------------------------- /tests/hwloc/x86/Intel-KnightsCorner-XeonPhi-SE10P.test: -------------------------------------------------------------------------------- 1 | source: Intel-KnightsCorner-XeonPhi-SE10P.tar.bz2 2 | target: Intel-KnightsCorner-XeonPhi-SE10P.xml 3 | -------------------------------------------------------------------------------- /tests/hwloc/x86/Intel-KnightsLanding-XeonPhi-7210.tar.bz2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/open-mpi/hwloc/7776a02c250324aa020d1d030c8927c0db408d82/tests/hwloc/x86/Intel-KnightsLanding-XeonPhi-7210.tar.bz2 -------------------------------------------------------------------------------- /tests/hwloc/x86/Intel-KnightsLanding-XeonPhi-7210.test: -------------------------------------------------------------------------------- 1 | source: Intel-KnightsLanding-XeonPhi-7210.tar.bz2 2 | target: Intel-KnightsLanding-XeonPhi-7210.xml 3 | -------------------------------------------------------------------------------- /tests/hwloc/x86/Intel-Nehalem-2xXeon-X5550.tar.bz2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/open-mpi/hwloc/7776a02c250324aa020d1d030c8927c0db408d82/tests/hwloc/x86/Intel-Nehalem-2xXeon-X5550.tar.bz2 -------------------------------------------------------------------------------- /tests/hwloc/x86/Intel-Nehalem-2xXeon-X5550.test: -------------------------------------------------------------------------------- 1 | source: Intel-Nehalem-2xXeon-X5550.tar.bz2 2 | target: Intel-Nehalem-2xXeon-X5550.xml 3 | -------------------------------------------------------------------------------- /tests/hwloc/x86/Intel-Penryn-4xXeon-X7460.tar.bz2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/open-mpi/hwloc/7776a02c250324aa020d1d030c8927c0db408d82/tests/hwloc/x86/Intel-Penryn-4xXeon-X7460.tar.bz2 -------------------------------------------------------------------------------- /tests/hwloc/x86/Intel-Penryn-4xXeon-X7460.test: -------------------------------------------------------------------------------- 1 | source: Intel-Penryn-4xXeon-X7460.tar.bz2 2 | target: Intel-Penryn-4xXeon-X7460.xml 3 | -------------------------------------------------------------------------------- /tests/hwloc/x86/Intel-RaptorLake-Corei7-1370P.tar.bz2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/open-mpi/hwloc/7776a02c250324aa020d1d030c8927c0db408d82/tests/hwloc/x86/Intel-RaptorLake-Corei7-1370P.tar.bz2 -------------------------------------------------------------------------------- /tests/hwloc/x86/Intel-RaptorLake-Corei7-1370P.test: -------------------------------------------------------------------------------- 1 | source: Intel-RaptorLake-Corei7-1370P.tar.bz2 2 | target: Intel-RaptorLake-Corei7-1370P.xml 3 | -------------------------------------------------------------------------------- /tests/hwloc/x86/Intel-SandyBridge-2xXeon-E5-2650.tar.bz2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/open-mpi/hwloc/7776a02c250324aa020d1d030c8927c0db408d82/tests/hwloc/x86/Intel-SandyBridge-2xXeon-E5-2650.tar.bz2 -------------------------------------------------------------------------------- /tests/hwloc/x86/Intel-SandyBridge-2xXeon-E5-2650.test: -------------------------------------------------------------------------------- 1 | source: Intel-SandyBridge-2xXeon-E5-2650.tar.bz2 2 | target: Intel-SandyBridge-2xXeon-E5-2650.xml 3 | -------------------------------------------------------------------------------- /tests/hwloc/x86/Intel-SapphireRapids-2xXeonMax9460.tar.bz2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/open-mpi/hwloc/7776a02c250324aa020d1d030c8927c0db408d82/tests/hwloc/x86/Intel-SapphireRapids-2xXeonMax9460.tar.bz2 -------------------------------------------------------------------------------- /tests/hwloc/x86/Intel-SapphireRapids-2xXeonMax9460.test: -------------------------------------------------------------------------------- 1 | source: Intel-SapphireRapids-2xXeonMax9460.tar.bz2 2 | target: Intel-SapphireRapids-2xXeonMax9460.xml 3 | -------------------------------------------------------------------------------- /tests/hwloc/x86/Intel-Skylake-2xXeon6140.tar.bz2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/open-mpi/hwloc/7776a02c250324aa020d1d030c8927c0db408d82/tests/hwloc/x86/Intel-Skylake-2xXeon6140.tar.bz2 -------------------------------------------------------------------------------- /tests/hwloc/x86/Intel-Skylake-2xXeon6140.test: -------------------------------------------------------------------------------- 1 | # Also used in test-lstopo 2 | source: Intel-Skylake-2xXeon6140.tar.bz2 3 | target: Intel-Skylake-2xXeon6140.xml 4 | -------------------------------------------------------------------------------- /tests/hwloc/x86/Intel-Westmere-2xXeon-X5650.tar.bz2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/open-mpi/hwloc/7776a02c250324aa020d1d030c8927c0db408d82/tests/hwloc/x86/Intel-Westmere-2xXeon-X5650.tar.bz2 -------------------------------------------------------------------------------- /tests/hwloc/x86/Intel-Westmere-2xXeon-X5650.test: -------------------------------------------------------------------------------- 1 | source: Intel-Westmere-2xXeon-X5650.tar.bz2 2 | target: Intel-Westmere-2xXeon-X5650.xml 3 | -------------------------------------------------------------------------------- /tests/hwloc/x86/Zhaoxin-2xCentaurHauls-KaiSheng-KH-40000.tar.bz2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/open-mpi/hwloc/7776a02c250324aa020d1d030c8927c0db408d82/tests/hwloc/x86/Zhaoxin-2xCentaurHauls-KaiSheng-KH-40000.tar.bz2 -------------------------------------------------------------------------------- /tests/hwloc/x86/Zhaoxin-2xCentaurHauls-KaiSheng-KH-40000.test: -------------------------------------------------------------------------------- 1 | source: Zhaoxin-2xCentaurHauls-KaiSheng-KH-40000.tar.bz2 2 | target: Zhaoxin-2xCentaurHauls-KaiSheng-KH-40000.xml 3 | -------------------------------------------------------------------------------- /tests/hwloc/x86/Zhaoxin-CentaurHauls-ZXD-4600.tar.bz2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/open-mpi/hwloc/7776a02c250324aa020d1d030c8927c0db408d82/tests/hwloc/x86/Zhaoxin-CentaurHauls-ZXD-4600.tar.bz2 -------------------------------------------------------------------------------- /tests/hwloc/x86/Zhaoxin-CentaurHauls-ZXD-4600.test: -------------------------------------------------------------------------------- 1 | source: Zhaoxin-CentaurHauls-ZXD-4600.tar.bz2 2 | target: Zhaoxin-CentaurHauls-ZXD-4600.xml 3 | -------------------------------------------------------------------------------- /tests/hwloc/x86/Zhaoxin-Shanghai-KaiSheng-ZXC+-FC1081.tar.bz2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/open-mpi/hwloc/7776a02c250324aa020d1d030c8927c0db408d82/tests/hwloc/x86/Zhaoxin-Shanghai-KaiSheng-ZXC+-FC1081.tar.bz2 -------------------------------------------------------------------------------- /tests/hwloc/x86/Zhaoxin-Shanghai-KaiSheng-ZXC+-FC1081.test: -------------------------------------------------------------------------------- 1 | source: Zhaoxin-Shanghai-KaiSheng-ZXC+-FC1081.tar.bz2 2 | target: Zhaoxin-Shanghai-KaiSheng-ZXC+-FC1081.xml 3 | -------------------------------------------------------------------------------- /tests/hwloc/xml/16-2gr2gr2n2c+misc.console.test: -------------------------------------------------------------------------------- 1 | # Group subtypes and Misc names 2 | source: 16-2gr2gr2n2c+misc.xml 3 | target: 16-2gr2gr2n2c+misc.console 4 | options: -v 5 | -------------------------------------------------------------------------------- /tests/hwloc/xml/16-2gr2gr2n2c+misc.test: -------------------------------------------------------------------------------- 1 | # Group subtypes and Misc names 2 | source: 16-2gr2gr2n2c+misc.xml 3 | target: 16-2gr2gr2n2c+misc.xml 4 | -------------------------------------------------------------------------------- /tests/hwloc/xml/16amd64-4distances.console.test: -------------------------------------------------------------------------------- 1 | # Multiple distances matrices 2 | source: 16amd64-4distances.xml 3 | target: 16amd64-4distances.console 4 | options: -v 5 | -------------------------------------------------------------------------------- /tests/hwloc/xml/16amd64-4distances.test: -------------------------------------------------------------------------------- 1 | # Multiple distances matrices 2 | source: 16amd64-4distances.xml 3 | target: 16amd64-4distances.xml 4 | -------------------------------------------------------------------------------- /tests/hwloc/xml/16amd64-8n2c-cpusets.test: -------------------------------------------------------------------------------- 1 | # Disallowed CPUs already removed from input, exposing asymmetric topology 2 | source: 16amd64-8n2c-cpusets.xml 3 | target: 16amd64-8n2c-cpusets.xml 4 | -------------------------------------------------------------------------------- /tests/hwloc/xml/16em64t-4s2c2t-offlines.test: -------------------------------------------------------------------------------- 1 | # Some offline CPUs 2 | source: 16em64t-4s2c2t-offlines.xml 3 | target: 16em64t-4s2c2t-offlines.xml 4 | -------------------------------------------------------------------------------- /tests/hwloc/xml/16em64t-4s2c2t.console: -------------------------------------------------------------------------------- 1 | Machine 2 | NUMANode L#0 (P#0) 3 | Package L#0 + L3 L#0 (4096KiB) 4 | L2 L#0 (1024KiB) + L1d L#0 (16KiB) + Core L#0 5 | PU L#0 (P#0) 6 | PU L#1 (P#8) 7 | L2 L#1 (1024KiB) + L1d L#1 (16KiB) + Core L#1 8 | PU L#2 (P#4) 9 | PU L#3 (P#12) 10 | Package L#1 + L3 L#1 (4096KiB) 11 | L2 L#2 (1024KiB) + L1d L#2 (16KiB) + Core L#2 12 | PU L#4 (P#1) 13 | PU L#5 (P#9) 14 | L2 L#3 (1024KiB) + L1d L#3 (16KiB) + Core L#3 15 | PU L#6 (P#5) 16 | PU L#7 (P#13) 17 | Package L#2 + L3 L#2 (4096KiB) 18 | L2 L#4 (1024KiB) + L1d L#4 (16KiB) + Core L#4 19 | PU L#8 (P#2) 20 | PU L#9 (P#10) 21 | L2 L#5 (1024KiB) + L1d L#5 (16KiB) + Core L#5 22 | PU L#10 (P#6) 23 | PU L#11 (P#14) 24 | Package L#3 + L3 L#3 (4096KiB) 25 | L2 L#6 (1024KiB) + L1d L#6 (16KiB) + Core L#6 26 | PU L#12 (P#3) 27 | PU L#13 (P#11) 28 | L2 L#7 (1024KiB) + L1d L#7 (16KiB) + Core L#7 29 | PU L#14 (P#7) 30 | PU L#15 (P#15) 31 | -------------------------------------------------------------------------------- /tests/hwloc/xml/16em64t-4s2c2t.console.test: -------------------------------------------------------------------------------- 1 | # Nothing special 2 | source: 16em64t-4s2c2t.xml 3 | target: 16em64t-4s2c2t.console 4 | -------------------------------------------------------------------------------- /tests/hwloc/xml/16em64t-4s2c2t.test: -------------------------------------------------------------------------------- 1 | # Nothing special 2 | source: 16em64t-4s2c2t.xml 3 | target: 16em64t-4s2c2t.xml 4 | -------------------------------------------------------------------------------- /tests/hwloc/xml/16intel64-manyVFs.console.test: -------------------------------------------------------------------------------- 1 | # Many Virtual Functions, collapsed 2 | source: 16intel64-manyVFs.xml 3 | target: 16intel64-manyVFs.console 4 | options: -v 5 | -------------------------------------------------------------------------------- /tests/hwloc/xml/16intel64-manyVFs.nocollapse.console.test: -------------------------------------------------------------------------------- 1 | # Many Virtual Functions, not collapsed 2 | source: 16intel64-manyVFs.xml 3 | target: 16intel64-manyVFs.nocollapse.console 4 | options: -v --no-collapse 5 | 6 | -------------------------------------------------------------------------------- /tests/hwloc/xml/16intel64-manyVFs.test: -------------------------------------------------------------------------------- 1 | # Many Virtual Functions, collapsed 2 | source: 16intel64-manyVFs.xml 3 | target: 16intel64-manyVFs.xml 4 | -------------------------------------------------------------------------------- /tests/hwloc/xml/192em64t-12gr2n8c2t.test: -------------------------------------------------------------------------------- 1 | # SGI Altix UV with distance groups 2 | source: 192em64t-12gr2n8c2t.xml 3 | target: 192em64t-12gr2n8c2t.xml 4 | -------------------------------------------------------------------------------- /tests/hwloc/xml/192em64t-24n8c2t.test: -------------------------------------------------------------------------------- 1 | # SGI Altix without distance groups 2 | source: 192em64t-24n8c2t.xml 3 | target: 192em64t-24n8c2t.xml 4 | -------------------------------------------------------------------------------- /tests/hwloc/xml/24em64t-2n6c2t-pci.test: -------------------------------------------------------------------------------- 1 | # PCI with link speeds 2 | source: 24em64t-2n6c2t-pci.xml 3 | target: 24em64t-2n6c2t-pci.xml 4 | -------------------------------------------------------------------------------- /tests/hwloc/xml/32em64t-2n8c2t-pci-noio.test: -------------------------------------------------------------------------------- 1 | # Remove all existing I/Os 2 | source: 32em64t-2n8c2t-pci-wholeio.xml 3 | target: 32em64t-2n8c2t-pci-noio.xml 4 | options: --no-io 5 | -------------------------------------------------------------------------------- /tests/hwloc/xml/32em64t-2n8c2t-pci-normalio.test: -------------------------------------------------------------------------------- 1 | # Only keep important I/O 2 | source: 32em64t-2n8c2t-pci-wholeio.xml 3 | target: 32em64t-2n8c2t-pci-normalio.xml 4 | -------------------------------------------------------------------------------- /tests/hwloc/xml/32em64t-2n8c2t-pci-wholeio.test: -------------------------------------------------------------------------------- 1 | # Keep all I/O 2 | source: 32em64t-2n8c2t-pci-wholeio.xml 3 | target: 32em64t-2n8c2t-pci-wholeio.xml 4 | options: --whole-io 5 | -------------------------------------------------------------------------------- /tests/hwloc/xml/64intel64-fakeKNL-SNC4-hybrid.test: -------------------------------------------------------------------------------- 1 | # Like KNL in SNC4 Flat, but with less cores 2 | source: 64intel64-fakeKNL-SNC4-hybrid.xml 3 | target: 64intel64-fakeKNL-SNC4-hybrid.xml 4 | -------------------------------------------------------------------------------- /tests/hwloc/xml/8intel64-4n2t-memattrs.test: -------------------------------------------------------------------------------- 1 | # Many custom memattrs and values 2 | source: 8intel64-4n2t-memattrs.xml 3 | target: 8intel64-4n2t-memattrs.xml 4 | -------------------------------------------------------------------------------- /tests/hwloc/xml/96em64t-4n4d3ca2co-pci.test: -------------------------------------------------------------------------------- 1 | # Old IBM x3950M2 assembling 4 nodes into a custom NUMA arch 2 | # Also used in test-hwloc-calc 3 | source: 96em64t-4n4d3ca2co-pci.xml 4 | target: 96em64t-4n4d3ca2co-pci.xml 5 | -------------------------------------------------------------------------------- /tests/hwloc/xml/cxlmem+dax.v2tov3.test: -------------------------------------------------------------------------------- 1 | # Import CXL and DAX attributes from v2 to v3 2 | source: cxlmem+dax.v2.xml 3 | target: cxlmem+dax.v3.xml 4 | -------------------------------------------------------------------------------- /tests/hwloc/xml/cxlmem+dax.v3tov2.test: -------------------------------------------------------------------------------- 1 | # Import CXL and DAX attributes from v3 to v2 2 | source: cxlmem+dax.v3.xml 3 | target: cxlmem+dax.v2.xml 4 | options: --export-xml-flags 2 --of xml 5 | -------------------------------------------------------------------------------- /tests/hwloc/xml/fakecpukinds.test: -------------------------------------------------------------------------------- 1 | # Fake cpukinds info 2 | source: fakecpukinds.xml 3 | target: fakecpukinds.xml 4 | -------------------------------------------------------------------------------- /tests/hwloc/xml/fakeheterodistances.test: -------------------------------------------------------------------------------- 1 | # Fake heterogeneous distances structures 2 | source: fakeheterodistances.xml 3 | target: fakeheterodistances.xml 4 | -------------------------------------------------------------------------------- /tests/hwloc/xml/irregulargroups-disallowed.console.test: -------------------------------------------------------------------------------- 1 | # Irregular topologies with disallowed cores and NUMA kept 2 | source: irregulargroups-disallowed.xml 3 | target: irregulargroups-disallowed.console 4 | options: --disallowed -v 5 | -------------------------------------------------------------------------------- /tests/hwloc/xml/irregulargroups-disallowed.test: -------------------------------------------------------------------------------- 1 | # Irregular topologies with disallowed cores and NUMA kept 2 | source: irregulargroups-disallowed.xml 3 | target: irregulargroups-disallowed.xml 4 | options: --disallowed 5 | -------------------------------------------------------------------------------- /tests/hwloc/xml/memorysidecaches.test: -------------------------------------------------------------------------------- 1 | # dual CascadeLake with DDR as Cache in front of Optane (2LM), SNC2 2 | # L1i and L1d ignored 3 | # 80intel64-2p2n20c2t 4 | source: memorysidecaches.xml 5 | target: memorysidecaches.xml 6 | -------------------------------------------------------------------------------- /tests/hwloc/xml/nvidiaDGX2.test: -------------------------------------------------------------------------------- 1 | # NVIDIA DGX-2 with NVLink and NVSwitch 2 | source: nvidiaDGX2.xml 3 | target: nvidiaDGX2.xml 4 | -------------------------------------------------------------------------------- /tests/hwloc/xml/power8gpudistances.test: -------------------------------------------------------------------------------- 1 | # POWER8 with GPUs and NVLink/CAPI bandwidths 2 | source: power8gpudistances.xml 3 | target: power8gpudistances.xml 4 | -------------------------------------------------------------------------------- /utils/Makefile.am: -------------------------------------------------------------------------------- 1 | # Copyright © 2014 Cisco Systems, Inc. All rights reserved. 2 | # 3 | # Copyright © 2016-2017 Inria. All rights reserved. 4 | # See COPYING in top-level directory. 5 | 6 | SUBDIRS = hwloc lstopo 7 | -------------------------------------------------------------------------------- /utils/hwloc/common-ps.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright © 2009-2023 Inria. All rights reserved. 3 | * Copyright © 2009-2012 Université Bordeaux 4 | * Copyright © 2009-2011 Cisco Systems, Inc. All rights reserved. 5 | * See COPYING in top-level directory. 6 | */ 7 | 8 | #ifndef UTILS_HWLOC_PS_H 9 | #define UTILS_HWLOC_PS_H 10 | 11 | #include "private/autogen/config.h" 12 | #include "hwloc.h" 13 | 14 | #define HWLOC_PS_TIDNAME_MAX 16 /* specified in pthread_setname_np.3 */ 15 | 16 | struct hwloc_ps_process { 17 | long pid; 18 | char name[64]; 19 | char string[1024]; /* optional string, used by hwloc-ps --pid-cmd */ 20 | hwloc_bitmap_t cpuset; 21 | #define HWLOC_PS_ALL_UIDS ((long)-1) 22 | long uid; 23 | int bound; 24 | unsigned nthreads; 25 | unsigned nboundthreads; 26 | struct hwloc_ps_thread { 27 | long tid; 28 | hwloc_bitmap_t cpuset; 29 | int bound; 30 | char name[HWLOC_PS_TIDNAME_MAX]; 31 | } *threads; 32 | }; 33 | 34 | #define HWLOC_PS_FLAG_THREADS (1UL<<0) 35 | #define HWLOC_PS_FLAG_LASTCPULOCATION (1UL<<1) 36 | #define HWLOC_PS_FLAG_SHORTNAME (1UL<<2) 37 | #define HWLOC_PS_FLAG_UID (1UL<<3) 38 | 39 | int hwloc_ps_read_process(hwloc_topology_t topology, hwloc_const_bitmap_t topocpuset, 40 | struct hwloc_ps_process *proc, 41 | unsigned long flags); 42 | 43 | int hwloc_ps_foreach_process(hwloc_topology_t topology, hwloc_const_bitmap_t topocpuset, 44 | void (*callback)(hwloc_topology_t topology, struct hwloc_ps_process *proc, void *cbdata), 45 | void *cbdata, 46 | unsigned long flags, const char *only_name, long only_uid); 47 | 48 | int hwloc_ps_foreach_child(hwloc_topology_t topology, hwloc_const_bitmap_t topocpuset, 49 | long pid, 50 | void (*callback)(hwloc_topology_t topology, struct hwloc_ps_process *proc, void *cbdata), 51 | void *cbdata, 52 | unsigned long flags, const char *only_name, long only_uid); 53 | 54 | void hwloc_ps_pidcmd(struct hwloc_ps_process *proc, const char *pidcmd); 55 | 56 | void hwloc_ps_free_process(struct hwloc_ps_process *proc); 57 | 58 | #endif /* UTILS_HWLOC_PS_H */ 59 | -------------------------------------------------------------------------------- /utils/hwloc/test-fake-plugin.sh.in: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | #-*-sh-*- 3 | 4 | # 5 | # Copyright © 2009-2019 Inria. All rights reserved. 6 | # Copyright © 2009, 2011 Université Bordeaux 7 | # Copyright © 2014 Cisco Systems, Inc. All rights reserved. 8 | # See COPYING in top-level directory. 9 | # 10 | 11 | HWLOC_top_builddir="@HWLOC_top_builddir@" 12 | builddir="$HWLOC_top_builddir" 13 | lstopo="$builddir/utils/lstopo/lstopo-no-graphics" 14 | hcalc="$builddir/utils/hwloc/hwloc-calc" 15 | 16 | HWLOC_PLUGINS_PATH=${HWLOC_top_builddir}/hwloc/.libs 17 | export HWLOC_PLUGINS_PATH 18 | 19 | HWLOC_DEBUG_CHECK=1 20 | export HWLOC_DEBUG_CHECK 21 | 22 | : ${TMPDIR=/tmp} 23 | { 24 | tmp=` 25 | (umask 077 && mktemp -d "$TMPDIR/fooXXXXXX") 2>/dev/null 26 | ` && 27 | test -n "$tmp" && test -d "$tmp" 28 | } || { 29 | tmp=$TMPDIR/foo$$-$RANDOM 30 | (umask 077 && mkdir "$tmp") 31 | } || exit $? 32 | file="$tmp/test-fake-plugin.output" 33 | 34 | set -e 35 | 36 | echo "Checking that the tweak phase restricts to a single PU and single NUMA" 37 | HWLOC_DEBUG_FAKE_COMPONENT_TWEAK=1 38 | export HWLOC_DEBUG_FAKE_COMPONENT_TWEAK 39 | 40 | test `$hcalc -N pu root` = 1 41 | test `$hcalc -N numa root` = 1 42 | 43 | echo "Checking that the init/instantiate/finalize callbacks are invoked" 44 | HWLOC_DEBUG_FAKE_COMPONENT=1 45 | export HWLOC_DEBUG_FAKE_COMPONENT 46 | 47 | $lstopo > $file 48 | 49 | grep "fake component initialized" $file || false 50 | grep "fake component instantiated" $file || false 51 | grep "fake component finalized" $file || false 52 | 53 | rm -rf "$tmp" 54 | -------------------------------------------------------------------------------- /utils/hwloc/test-hwloc-compress-dir.input.tar.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/open-mpi/hwloc/7776a02c250324aa020d1d030c8927c0db408d82/utils/hwloc/test-hwloc-compress-dir.input.tar.gz -------------------------------------------------------------------------------- /utils/hwloc/test-hwloc-compress-dir.output.tar.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/open-mpi/hwloc/7776a02c250324aa020d1d030c8927c0db408d82/utils/hwloc/test-hwloc-compress-dir.output.tar.gz -------------------------------------------------------------------------------- /utils/hwloc/test-hwloc-compress-dir.sh.in: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | #-*-sh-*- 3 | 4 | # 5 | # Copyright © 2013-2020 Inria. All rights reserved. 6 | # Copyright © 2014 Cisco Systems, Inc. All rights reserved. 7 | # See COPYING in top-level directory. 8 | # 9 | 10 | HWLOC_top_srcdir="@HWLOC_top_srcdir@" 11 | HWLOC_top_builddir="@HWLOC_top_builddir@" 12 | srcdir="$HWLOC_top_srcdir/utils/hwloc" 13 | builddir="$HWLOC_top_builddir/utils/hwloc" 14 | compress="$builddir/hwloc-compress-dir" 15 | 16 | HWLOC_PLUGINS_PATH=${HWLOC_top_builddir}/hwloc/.libs 17 | export HWLOC_PLUGINS_PATH 18 | 19 | HWLOC_DEBUG_CHECK=1 20 | export HWLOC_DEBUG_CHECK 21 | 22 | HWLOC_XML_EXPORT_SUPPORT=0 23 | export HWLOC_XML_EXPORT_SUPPORT 24 | 25 | if test x@HWLOC_XML_LOCALIZED@ = x1; then 26 | # make sure we use default numeric formats 27 | LANG=C 28 | LC_ALL=C 29 | export LANG LC_ALL 30 | fi 31 | 32 | : ${TMPDIR=/tmp} 33 | { 34 | tmp=` 35 | (umask 077 && mktemp -d "$TMPDIR/fooXXXXXX") 2>/dev/null 36 | ` && 37 | test -n "$tmp" && test -d "$tmp" 38 | } || { 39 | tmp=$TMPDIR/foo$$-$RANDOM 40 | (umask 077 && mkdir "$tmp") 41 | } || exit $? 42 | 43 | set -e 44 | 45 | (cd "$tmp" && gunzip -c $srcdir/test-hwloc-compress-dir.input.tar.gz | tar xf -) 46 | (cd "$tmp" && gunzip -c $srcdir/test-hwloc-compress-dir.output.tar.gz | tar xf -) 47 | (cd "$tmp" && mkdir test-hwloc-compress-dir.newoutput) 48 | (cd "$tmp" && mkdir test-hwloc-compress-dir.newoutput2) 49 | 50 | $compress "$tmp/test-hwloc-compress-dir.input" "$tmp/test-hwloc-compress-dir.newoutput" 51 | 52 | @DIFF@ @HWLOC_DIFF_U@ @HWLOC_DIFF_W@ -r "$tmp/test-hwloc-compress-dir.output" "$tmp/test-hwloc-compress-dir.newoutput" 53 | 54 | $compress -R "$tmp/test-hwloc-compress-dir.newoutput" "$tmp/test-hwloc-compress-dir.newoutput2" 55 | 56 | @DIFF@ @HWLOC_DIFF_U@ @HWLOC_DIFF_W@ -r "$tmp/test-hwloc-compress-dir.input" "$tmp/test-hwloc-compress-dir.newoutput2" 57 | 58 | rm -rf "$tmp" 59 | -------------------------------------------------------------------------------- /utils/hwloc/test-hwloc-diffpatch.sh.in: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | #-*-sh-*- 3 | 4 | # 5 | # Copyright © 2009-2020 Inria. All rights reserved. 6 | # Copyright © 2014 Cisco Systems, Inc. All rights reserved. 7 | # See COPYING in top-level directory. 8 | # 9 | 10 | HWLOC_top_srcdir="@HWLOC_top_srcdir@" 11 | HWLOC_top_builddir="@HWLOC_top_builddir@" 12 | srcdir="$HWLOC_top_srcdir/utils/hwloc" 13 | builddir="$HWLOC_top_builddir/utils/hwloc" 14 | diff="$builddir/hwloc-diff" 15 | patch="$builddir/hwloc-patch" 16 | 17 | HWLOC_PLUGINS_PATH=${HWLOC_top_builddir}/hwloc/.libs 18 | export HWLOC_PLUGINS_PATH 19 | 20 | HWLOC_DEBUG_CHECK=1 21 | export HWLOC_DEBUG_CHECK 22 | 23 | HWLOC_XML_EXPORT_SUPPORT=0 24 | export HWLOC_XML_EXPORT_SUPPORT 25 | 26 | if test x@HWLOC_XML_LOCALIZED@ = x1; then 27 | # make sure we use default numeric formats 28 | LANG=C 29 | LC_ALL=C 30 | export LANG LC_ALL 31 | fi 32 | 33 | : ${TMPDIR=/tmp} 34 | { 35 | tmp=` 36 | (umask 077 && mktemp -d "$TMPDIR/fooXXXXXX") 2>/dev/null 37 | ` && 38 | test -n "$tmp" && test -d "$tmp" 39 | } || { 40 | tmp=$TMPDIR/foo$$-$RANDOM 41 | (umask 077 && mkdir "$tmp") 42 | } || exit $? 43 | 44 | cd "$tmp" 45 | diffoutput="test-hwloc-diffpatch.diff.xml" 46 | output1="test-hwloc-diffpatch.output1" 47 | output2="test-hwloc-diffpatch.output2" 48 | 49 | set -e 50 | 51 | $diff $srcdir/test-hwloc-diffpatch.input1 \ 52 | $srcdir/test-hwloc-diffpatch.input2 > $diffoutput 53 | cp $srcdir/test-hwloc-diffpatch.input1 . 54 | #cat $diffoutput | $patch $srcdir/test-hwloc-diffpatch.input1 - $output1 55 | cat $diffoutput | $patch refname - $output1 56 | $patch -R $srcdir/test-hwloc-diffpatch.input2 $diffoutput $output2 57 | 58 | @DIFF@ @HWLOC_DIFF_U@ @HWLOC_DIFF_W@ $srcdir/test-hwloc-diffpatch.input1 "$output2" 59 | @DIFF@ @HWLOC_DIFF_U@ @HWLOC_DIFF_W@ $srcdir/test-hwloc-diffpatch.input2 "$output1" 60 | 61 | cd .. 62 | rm -rf "$tmp" 63 | -------------------------------------------------------------------------------- /utils/hwloc/test-hwloc-dump-hwdata/Makefile.am: -------------------------------------------------------------------------------- 1 | # Copyright © 2016 Inria. All rights reserved. 2 | # See COPYING in top-level directory. 3 | 4 | AM_CFLAGS = $(HWLOC_CFLAGS) 5 | AM_CPPFLAGS = $(HWLOC_CPPFLAGS) 6 | AM_LDFLAGS = $(HWLOC_LDFLAGS) 7 | 8 | dumps = \ 9 | knl-snc4h50.tar.bz2 10 | 11 | if HWLOC_HAVE_BUNZIPP 12 | TESTS = $(dumps) 13 | endif HWLOC_HAVE_BUNZIPP 14 | 15 | EXTRA_DIST = $(dumps) 16 | 17 | LOG_COMPILER = $(builddir)/test-hwloc-dump-hwdata.sh 18 | -------------------------------------------------------------------------------- /utils/hwloc/test-hwloc-dump-hwdata/knl-snc4h50.tar.bz2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/open-mpi/hwloc/7776a02c250324aa020d1d030c8927c0db408d82/utils/hwloc/test-hwloc-dump-hwdata/knl-snc4h50.tar.bz2 -------------------------------------------------------------------------------- /utils/hwloc/test-hwloc-dump-hwdata/test-hwloc-dump-hwdata.sh.in: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | #-*-sh-*- 3 | 4 | # 5 | # Copyright © 2015-2018 Inria. All rights reserved. 6 | # See COPYING in top-level directory. 7 | # 8 | 9 | HWLOC_top_srcdir="@HWLOC_top_srcdir@" 10 | HWLOC_top_builddir="@HWLOC_top_builddir@" 11 | srcdir="$HWLOC_top_srcdir/utils/hwloc" 12 | builddir="$HWLOC_top_builddir/utils/hwloc" 13 | hdhd="$builddir/hwloc-dump-hwdata" 14 | 15 | : ${TMPDIR=/tmp} 16 | { 17 | tmp=` 18 | (umask 077 && mktemp -d "$TMPDIR/fooXXXXXX") 2>/dev/null 19 | ` && 20 | test -n "$tmp" && test -d "$tmp" 21 | } || { 22 | tmp=$TMPDIR/foo$$-$RANDOM 23 | (umask 077 && mkdir "$tmp") 24 | } || exit $? 25 | 26 | set -e 27 | 28 | tarball="$srcdir/test-hwloc-dump-hwdata/"`basename $1` 29 | (cd "$tmp" && tar xfj $tarball) 30 | 31 | HWLOC_FSROOT="`echo "$tmp"/*`" 32 | export HWLOC_FSROOT 33 | 34 | $hdhd -o $tmp/output 35 | 36 | @DIFF@ @HWLOC_DIFF_U@ -r "$HWLOC_FSROOT/expected_output" "$tmp/output" 37 | 38 | rm -rf "$tmp" 39 | -------------------------------------------------------------------------------- /utils/hwloc/test-parsing-flags.sh.in: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | #-*-sh-*- 3 | 4 | # 5 | # Copyright © 2009-2022 Inria. All rights reserved. 6 | # See COPYING in top-level directory. 7 | # 8 | 9 | HWLOC_top_srcdir="@HWLOC_top_srcdir@" 10 | include="$HWLOC_top_srcdir/include" 11 | misch="$HWLOC_top_srcdir/utils/hwloc/misc.h" 12 | 13 | flags_def=`grep -h _FLAG_ ${include}/hwloc.h ${include}/hwloc/*.h | grep '<<' | grep -v HWLOC_DISTRIB_FLAG \ 14 | | grep -v HWLOC_DISC_STATUS_FLAG | grep -v HWLOC_TOPOLOGY_COMPONENTS_FLAG | cut -d= -f1` 15 | 16 | IFS=' ' flags=${flags_def} 17 | for flag in $flags 18 | do 19 | if ! grep -q "HWLOC_UTILS_PARSING_FLAG($flag)" "$misch"; then 20 | echo "Could not find any implementation for $flag." 21 | exit 1 22 | fi 23 | done 24 | exit 0 25 | -------------------------------------------------------------------------------- /utils/lstopo/lstopo-xml.c: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright © 2009 CNRS 3 | * Copyright © 2009-2017 Inria. All rights reserved. 4 | * Copyright © 2009 Université Bordeaux 5 | * Copyright © 2009-2011 Cisco Systems, Inc. All rights reserved. 6 | * See COPYING in top-level directory. 7 | */ 8 | 9 | #include "private/autogen/config.h" 10 | #include "hwloc.h" 11 | 12 | #include 13 | #include 14 | 15 | #include "lstopo.h" 16 | 17 | int 18 | output_xml(struct lstopo_output *loutput, const char *filename) 19 | { 20 | struct stat st; 21 | 22 | if (!filename || !strcasecmp(filename, "-.xml")) 23 | filename = "-"; 24 | /* hwloc_topology_export_xml() writes to stdout if "-" is given */ 25 | 26 | if (strcmp(filename, "-") && !stat(filename, &st) && !loutput->overwrite) { 27 | fprintf(stderr, "Failed to export XML to %s (%s)\n", filename, strerror(EEXIST)); 28 | return -1; 29 | } 30 | 31 | if (hwloc_topology_export_xml(loutput->topology, filename, loutput->export_xml_flags) < 0) { 32 | fprintf(stderr, "Failed to export XML to %s (%s)\n", filename, strerror(errno)); 33 | return -1; 34 | } 35 | 36 | return 0; 37 | } 38 | -------------------------------------------------------------------------------- /utils/lstopo/lstopo.desktop: -------------------------------------------------------------------------------- 1 | # should only be used when lstopo is built with Cairo/X11 support 2 | # so that no terminal is required 3 | [Desktop Entry] 4 | Name=Hardware Locality lstopo 5 | Comment=Show hardware topology 6 | Exec=lstopo 7 | Terminal=false 8 | Type=Application 9 | Categories=System; 10 | Keywords=System;Utility; 11 | Icon=hwloc 12 | -------------------------------------------------------------------------------- /utils/lstopo/test-lstopo-shmem.sh.in: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | #-*-sh-*- 3 | 4 | # Copyright © 2009-2020 Inria. All rights reserved. 5 | # See COPYING in top-level directory. 6 | # 7 | 8 | HWLOC_top_builddir="@HWLOC_top_builddir@" 9 | builddir="$HWLOC_top_builddir/utils/lstopo" 10 | ls="$builddir/lstopo-no-graphics" 11 | 12 | HWLOC_PLUGINS_PATH=${HWLOC_top_builddir}/hwloc/.libs 13 | export HWLOC_PLUGINS_PATH 14 | 15 | HWLOC_DEBUG_CHECK=1 16 | export HWLOC_DEBUG_CHECK 17 | 18 | : ${TMPDIR=/tmp} 19 | { 20 | tmp=` 21 | (umask 077 && mktemp -d "$TMPDIR/fooXXXXXX") 2>/dev/null 22 | ` && 23 | test -n "$tmp" && test -d "$tmp" 24 | } || { 25 | tmp=$TMPDIR/foo$$-$RANDOM 26 | (umask 077 && mkdir "$tmp") 27 | } || exit $? 28 | echo "Outputs will be sent to $tmp" 29 | 30 | unset DISPLAY 31 | 32 | echo "Exporting to $tmp/test.shmem ..." 33 | $ls $tmp/test.shmem > $tmp/test.shmem.out 2> $tmp/test.shmem.err 34 | return=$? 35 | cat $tmp/test.shmem.out $tmp/test.shmem.err 36 | if test $return != 0; then 37 | if grep "shmem topology not supported" $tmp/test.shmem.err >/dev/null \ 38 | || grep "Failed to find a shmem topology mmap address" $tmp/test.shmem.err >/dev/null \ 39 | || grep "Failed to export shmem topology, memory range is busy" $tmp/test.shmem.err >/dev/null; then 40 | echo "Expected error during export, skipping this test" 41 | exit 77 42 | fi 43 | echo "Failed" 44 | exit 1 45 | fi 46 | 47 | echo "Importing from $tmp/test.shmem ..." 48 | $ls -i $tmp/test.shmem - > $tmp/test.shmem.out2 2> $tmp/test.shmem.err2 49 | return=$? 50 | cat $tmp/test.shmem.out2 $tmp/test.shmem.err2 51 | if test $return != 0; then 52 | if grep "Failed to adopt shmem topology, memory range is busy" $tmp/test.shmem.err2 >/dev/null; then 53 | echo "Expected error during import, skipping this test" 54 | exit 77 55 | fi 56 | echo "Failed" 57 | exit 1 58 | fi 59 | 60 | rm -rf "$tmp" 61 | --------------------------------------------------------------------------------