# hlist_add_behind
#
AC_DEFUN([LIBCFS_HLIST_ADD_AFTER],[
-LB_CHECK_COMPILE([does function hlist_add_after exist'],
+LB_CHECK_COMPILE([does function 'hlist_add_after' exist],
hlist_add_after, [
#include <linux/list.h>
],[
]) # LIBCFS_HLIST_ADD_AFTER
#
+# Kernel version 4.2 changed topology_thread_cpumask
+# to topology_sibling_cpumask
+#
+AC_DEFUN([LIBCFS_HAVE_TOPOLOGY_SIBLING_CPUMASK],[
+LB_CHECK_COMPILE([does function 'topology_sibling_cpumask' exist],
+topology_sibling_cpumask, [
+ #include <linux/topology.h>
+],[
+ const struct cpumask *mask;
+
+ mask = topology_sibling_cpumask(0);
+],[
+ AC_DEFINE(HAVE_TOPOLOGY_SIBLING_CPUMASK, 1,
+ [topology_sibling_cpumask is available])
+])
+]) # LIBCFS_HAVE_TOPOLOGY_SIBLING_CPUMASK
+
+#
# LIBCFS_PROG_LINUX
#
# LibCFS linux kernel checks
LIBCFS_SHRINKER_COUNT
# 3.17
LIBCFS_HLIST_ADD_AFTER
+# 4.2
+LIBCFS_HAVE_TOPOLOGY_SIBLING_CPUMASK
]) # LIBCFS_PROG_LINUX
#
int cfs_cpu_ht_nsiblings(int cpu);
#endif /* CONFIG_SMP */
+
+#ifndef HAVE_TOPOLOGY_SIBLING_CPUMASK
+# define topology_sibling_cpumask(cpu) topology_thread_cpumask(cpu)
+#endif /* HAVE_TOPOLOGY_SIBLING_CPUMASK */
+
#endif /* __LIBCFS_LINUX_CPU_H__ */
void
cfs_cpu_ht_siblings(int cpu, cpumask_t *mask)
{
- cpumask_copy(mask, topology_thread_cpumask(cpu));
+ cpumask_copy(mask, topology_sibling_cpumask(cpu));
}
/* return number of HTs in the same core of \a cpu */
{
int num;
- num = cpumask_weight(topology_thread_cpumask(cpu));
+ num = cpumask_weight(topology_sibling_cpumask(cpu));
return num;
}