diff -rup hwloc-1.11.2.bk/src/topology-linux.c hwloc-1.11.2/src/topology-linux.c --- hwloc-1.11.2.bk/src/topology-linux.c 2017-03-24 13:34:08.369114722 -0400 +++ hwloc-1.11.2/src/topology-linux.c 2017-03-24 13:34:34.530388408 -0400 @@ -4122,7 +4122,8 @@ hwloc_look_linuxfs(struct hwloc_backend } if (cpuvendor && !strcmp(cpuvendor, "GenuineIntel") && cpufamilynumber && !strcmp(cpufamilynumber, "6") - && cpumodelnumber && !strcmp(cpumodelnumber, "87")) + && cpumodelnumber && (!strcmp(cpumodelnumber, "87") + || !strcmp(cpumodelnumber, "133"))) data->is_knl = 1; } } Only in hwloc-1.11.2/src: topology-linux.c.orig diff -rup hwloc-1.11.2.bk/src/topology-x86.c hwloc-1.11.2/src/topology-x86.c --- hwloc-1.11.2.bk/src/topology-x86.c 2017-03-24 13:34:08.363114659 -0400 +++ hwloc-1.11.2/src/topology-x86.c 2017-03-24 13:34:34.530388408 -0400 @@ -174,8 +174,9 @@ static void look_proc(struct hwloc_backe } infos->cpustepping = eax & 0xf; - if (cpuid_type == intel && infos->cpufamilynumber == 0x6 && infos->cpumodelnumber == 0x57) - data->is_knl = 1; + if (cpuid_type == intel && infos->cpufamilynumber == 0x6 && + (infos->cpumodelnumber == 0x57 || infos->cpumodelnumber == 0x85)) + data->is_knl = 1; /* KNM is the same as KNL */ /* Get cpu vendor string from cpuid 0x00 */ memset(regs, 0, sizeof(regs)); Only in hwloc-1.11.2/src: topology-x86.c.orig