* [PATCH 0/6] Cleanup cpumask.h inclusion in core headers
@ 2024-05-28 0:56 Yury Norov
2024-05-28 0:56 ` [PATCH 1/6] MAINTAINERS: add linux/nodemask_types.h to BITMAP API Yury Norov
` (5 more replies)
0 siblings, 6 replies; 7+ messages in thread
From: Yury Norov @ 2024-05-28 0:56 UTC (permalink / raw)
To: linux-kernel, cgroups, linux-mm, rcu, linux-trace-kernel
Cc: Yury Norov, Paul E. McKenney, Rafael J. Wysocki,
Amit Daniel Kachhap, Andrew Morton, Anna-Maria Behnsen,
Christoph Lameter, Daniel Lezcano, Dennis Zhou,
Frederic Weisbecker, Johannes Weiner, Juri Lelli, Kees Cook,
Mathieu Desnoyers, Peter Zijlstra, Rasmus Villemoes, Tejun Heo,
Thomas Gleixner, Ulf Hansson, Vincent Guittot, Viresh Kumar,
Zefan Li
Many core headers include linux/cpumask.h for nothing, and some others
include it just for types. We already have nodemask_types.h, and this
series adds cpumask_types.h to optimize core headers inclusion paths.
Interestingly, it doesn't improve on build time for me, but the headers
cleanup work should keep going.
Yury Norov (6):
MAINTAINERS: add linux/nodemask_types.h to BITMAP API
sched: pre-caculate ilog2(TASK_REPORT_MAX)
cpumask: split out include/linux/cpumask_types.h
sched: drop dependency on cpumask.h
cpumask: cleanup core headers inclusion
cpumask: make core headers including cpumask_types.h where possible
Yury Norov (6):
MAINTAINERS: add linux/nodemask_types.h to BITMAP API
sched: pre-caculate ilog2(TASK_REPORT_MAX)
cpumask: split out include/linux/cpumask_types.h
sched: drop dependency on cpumask.h
cpumask: cleanup core headers inclusion
cpumask: make core headers including cpumask_types.h where possible
MAINTAINERS | 2 +
include/linux/cacheinfo.h | 2 +-
include/linux/cgroup.h | 1 -
include/linux/clockchips.h | 2 +-
include/linux/cpu.h | 1 -
include/linux/cpu_cooling.h | 1 -
include/linux/cpu_rmap.h | 2 +-
include/linux/cpumask.h | 56 +----------------
include/linux/cpumask_types.h | 66 ++++++++++++++++++++
include/linux/interrupt.h | 2 +-
include/linux/irqchip/irq-partition-percpu.h | 2 +-
include/linux/kernel_stat.h | 1 -
include/linux/msi.h | 2 +-
include/linux/node.h | 1 -
include/linux/percpu.h | 1 -
include/linux/pm_domain.h | 2 +-
include/linux/profile.h | 1 -
include/linux/rcupdate.h | 1 -
include/linux/sched.h | 7 ++-
include/linux/seq_file.h | 1 -
include/linux/stop_machine.h | 2 +-
include/linux/torture.h | 2 +-
include/linux/tracepoint.h | 1 -
include/linux/workqueue.h | 2 +-
24 files changed, 83 insertions(+), 78 deletions(-)
create mode 100644 include/linux/cpumask_types.h
--
2.40.1
^ permalink raw reply [flat|nested] 7+ messages in thread
* [PATCH 1/6] MAINTAINERS: add linux/nodemask_types.h to BITMAP API
2024-05-28 0:56 [PATCH 0/6] Cleanup cpumask.h inclusion in core headers Yury Norov
@ 2024-05-28 0:56 ` Yury Norov
2024-05-28 0:56 ` [PATCH 2/6] sched: avoid using ilog2() in sched.h Yury Norov
` (4 subsequent siblings)
5 siblings, 0 replies; 7+ messages in thread
From: Yury Norov @ 2024-05-28 0:56 UTC (permalink / raw)
To: linux-kernel, cgroups, linux-mm, rcu, linux-trace-kernel
Cc: Yury Norov, Paul E. McKenney, Rafael J. Wysocki,
Amit Daniel Kachhap, Andrew Morton, Anna-Maria Behnsen,
Christoph Lameter, Daniel Lezcano, Dennis Zhou,
Frederic Weisbecker, Johannes Weiner, Juri Lelli, Kees Cook,
Mathieu Desnoyers, Peter Zijlstra, Rasmus Villemoes, Tejun Heo,
Thomas Gleixner, Ulf Hansson, Vincent Guittot, Viresh Kumar,
Zefan Li
Commit bea32141764b ("nodemask: Split out include/linux/nodemask_types.h")
added the nodemask_types.h but didn't cover it with corresponding record in
the MAINTAINERS file.
Signed-off-by: Yury Norov <yury.norov@gmail.com>
---
MAINTAINERS | 1 +
1 file changed, 1 insertion(+)
diff --git a/MAINTAINERS b/MAINTAINERS
index d6c90161c7bf..6ae73aaee305 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -3733,6 +3733,7 @@ F: include/linux/bits.h
F: include/linux/cpumask.h
F: include/linux/find.h
F: include/linux/nodemask.h
+F: include/linux/nodemask_types.h
F: include/vdso/bits.h
F: lib/bitmap-str.c
F: lib/bitmap.c
--
2.40.1
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [PATCH 2/6] sched: avoid using ilog2() in sched.h
2024-05-28 0:56 [PATCH 0/6] Cleanup cpumask.h inclusion in core headers Yury Norov
2024-05-28 0:56 ` [PATCH 1/6] MAINTAINERS: add linux/nodemask_types.h to BITMAP API Yury Norov
@ 2024-05-28 0:56 ` Yury Norov
2024-05-28 0:56 ` [PATCH 3/6] cpumask: split out include/linux/cpumask_types.h Yury Norov
` (3 subsequent siblings)
5 siblings, 0 replies; 7+ messages in thread
From: Yury Norov @ 2024-05-28 0:56 UTC (permalink / raw)
To: linux-kernel, cgroups, linux-mm, rcu, linux-trace-kernel
Cc: Yury Norov, Paul E. McKenney, Rafael J. Wysocki,
Amit Daniel Kachhap, Andrew Morton, Anna-Maria Behnsen,
Christoph Lameter, Daniel Lezcano, Dennis Zhou,
Frederic Weisbecker, Johannes Weiner, Juri Lelli, Kees Cook,
Mathieu Desnoyers, Peter Zijlstra, Rasmus Villemoes, Tejun Heo,
Thomas Gleixner, Ulf Hansson, Vincent Guittot, Viresh Kumar,
Zefan Li
<linux/sched.h> indirectly via cpumask.h path includes the ilog2.h header
to calculate ilog2(TASK_REPORT_MAX). The following patches drops sched.h
dependency on cpumask.h, and to have a successful build, the header has
to be included explicitly.
sched.h is a frequently included header, and it's better to keep the
dependency list as small as possible. So, instead of including ilog2.h
for a single BUILD_BUG_ON() check, the same check may be implemented by
taking exponent of the other part of equation.
Signed-off-by: Yury Norov <yury.norov@gmail.com>
---
include/linux/sched.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/include/linux/sched.h b/include/linux/sched.h
index 61591ac6eab6..98abb07de149 100644
--- a/include/linux/sched.h
+++ b/include/linux/sched.h
@@ -1604,7 +1604,7 @@ static inline char task_index_to_char(unsigned int state)
{
static const char state_char[] = "RSDTtXZPI";
- BUILD_BUG_ON(1 + ilog2(TASK_REPORT_MAX) != sizeof(state_char) - 1);
+ BUILD_BUG_ON(TASK_REPORT_MAX * 2 != 1 << (sizeof(state_char) - 1));
return state_char[state];
}
--
2.40.1
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [PATCH 3/6] cpumask: split out include/linux/cpumask_types.h
2024-05-28 0:56 [PATCH 0/6] Cleanup cpumask.h inclusion in core headers Yury Norov
2024-05-28 0:56 ` [PATCH 1/6] MAINTAINERS: add linux/nodemask_types.h to BITMAP API Yury Norov
2024-05-28 0:56 ` [PATCH 2/6] sched: avoid using ilog2() in sched.h Yury Norov
@ 2024-05-28 0:56 ` Yury Norov
2024-05-28 0:56 ` [PATCH 4/6] sched: drop sched.h dependency on cpumask Yury Norov
` (2 subsequent siblings)
5 siblings, 0 replies; 7+ messages in thread
From: Yury Norov @ 2024-05-28 0:56 UTC (permalink / raw)
To: linux-kernel, cgroups, linux-mm, rcu, linux-trace-kernel
Cc: Yury Norov, Paul E. McKenney, Rafael J. Wysocki,
Amit Daniel Kachhap, Andrew Morton, Anna-Maria Behnsen,
Christoph Lameter, Daniel Lezcano, Dennis Zhou,
Frederic Weisbecker, Johannes Weiner, Juri Lelli, Kees Cook,
Mathieu Desnoyers, Peter Zijlstra, Rasmus Villemoes, Tejun Heo,
Thomas Gleixner, Ulf Hansson, Vincent Guittot, Viresh Kumar,
Zefan Li, Yury Norov
From: Yury Norov <yury.norov@nvidia.com>
Many core headers, like sched.h, include cpumask.h mostly for struct cpumask
and cpumask_var_t. Those are frequently used headers and shouldn't pull more
than the bare minimum.
Signed-off-by: Yury Norov <yury.norov@gmail.com>
---
MAINTAINERS | 1 +
include/linux/cpumask.h | 56 +----------------------------
include/linux/cpumask_types.h | 66 +++++++++++++++++++++++++++++++++++
3 files changed, 68 insertions(+), 55 deletions(-)
create mode 100644 include/linux/cpumask_types.h
diff --git a/MAINTAINERS b/MAINTAINERS
index 6ae73aaee305..c4fa8f264156 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -3731,6 +3731,7 @@ F: include/linux/bitmap-str.h
F: include/linux/bitmap.h
F: include/linux/bits.h
F: include/linux/cpumask.h
+F: include/linux/cpumask_types.h
F: include/linux/find.h
F: include/linux/nodemask.h
F: include/linux/nodemask_types.h
diff --git a/include/linux/cpumask.h b/include/linux/cpumask.h
index 18410acdbc9e..79262a9ef03b 100644
--- a/include/linux/cpumask.h
+++ b/include/linux/cpumask.h
@@ -9,25 +9,13 @@
*/
#include <linux/cleanup.h>
#include <linux/kernel.h>
-#include <linux/threads.h>
#include <linux/bitmap.h>
+#include <linux/cpumask_types.h>
#include <linux/atomic.h>
#include <linux/bug.h>
#include <linux/gfp_types.h>
#include <linux/numa.h>
-/* Don't assign or return these: may not be this big! */
-typedef struct cpumask { DECLARE_BITMAP(bits, NR_CPUS); } cpumask_t;
-
-/**
- * cpumask_bits - get the bits in a cpumask
- * @maskp: the struct cpumask *
- *
- * You should only assume nr_cpu_ids bits of this mask are valid. This is
- * a macro so it's const-correct.
- */
-#define cpumask_bits(maskp) ((maskp)->bits)
-
/**
* cpumask_pr_args - printf args to output a cpumask
* @maskp: cpumask to be printed
@@ -922,48 +910,7 @@ static inline unsigned int cpumask_size(void)
return bitmap_size(large_cpumask_bits);
}
-/*
- * cpumask_var_t: struct cpumask for stack usage.
- *
- * Oh, the wicked games we play! In order to make kernel coding a
- * little more difficult, we typedef cpumask_var_t to an array or a
- * pointer: doing &mask on an array is a noop, so it still works.
- *
- * i.e.
- * cpumask_var_t tmpmask;
- * if (!alloc_cpumask_var(&tmpmask, GFP_KERNEL))
- * return -ENOMEM;
- *
- * ... use 'tmpmask' like a normal struct cpumask * ...
- *
- * free_cpumask_var(tmpmask);
- *
- *
- * However, one notable exception is there. alloc_cpumask_var() allocates
- * only nr_cpumask_bits bits (in the other hand, real cpumask_t always has
- * NR_CPUS bits). Therefore you don't have to dereference cpumask_var_t.
- *
- * cpumask_var_t tmpmask;
- * if (!alloc_cpumask_var(&tmpmask, GFP_KERNEL))
- * return -ENOMEM;
- *
- * var = *tmpmask;
- *
- * This code makes NR_CPUS length memcopy and brings to a memory corruption.
- * cpumask_copy() provide safe copy functionality.
- *
- * Note that there is another evil here: If you define a cpumask_var_t
- * as a percpu variable then the way to obtain the address of the cpumask
- * structure differently influences what this_cpu_* operation needs to be
- * used. Please use this_cpu_cpumask_var_t in those cases. The direct use
- * of this_cpu_ptr() or this_cpu_read() will lead to failures when the
- * other type of cpumask_var_t implementation is configured.
- *
- * Please also note that __cpumask_var_read_mostly can be used to declare
- * a cpumask_var_t variable itself (not its content) as read mostly.
- */
#ifdef CONFIG_CPUMASK_OFFSTACK
-typedef struct cpumask *cpumask_var_t;
#define this_cpu_cpumask_var_ptr(x) this_cpu_read(x)
#define __cpumask_var_read_mostly __read_mostly
@@ -1010,7 +957,6 @@ static inline bool cpumask_available(cpumask_var_t mask)
}
#else
-typedef struct cpumask cpumask_var_t[1];
#define this_cpu_cpumask_var_ptr(x) this_cpu_ptr(x)
#define __cpumask_var_read_mostly
diff --git a/include/linux/cpumask_types.h b/include/linux/cpumask_types.h
new file mode 100644
index 000000000000..461ed1b6bcdb
--- /dev/null
+++ b/include/linux/cpumask_types.h
@@ -0,0 +1,66 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+#ifndef __LINUX_CPUMASK_TYPES_H
+#define __LINUX_CPUMASK_TYPES_H
+
+#include <linux/bitops.h>
+#include <linux/threads.h>
+
+/* Don't assign or return these: may not be this big! */
+typedef struct cpumask { DECLARE_BITMAP(bits, NR_CPUS); } cpumask_t;
+
+/**
+ * cpumask_bits - get the bits in a cpumask
+ * @maskp: the struct cpumask *
+ *
+ * You should only assume nr_cpu_ids bits of this mask are valid. This is
+ * a macro so it's const-correct.
+ */
+#define cpumask_bits(maskp) ((maskp)->bits)
+
+/*
+ * cpumask_var_t: struct cpumask for stack usage.
+ *
+ * Oh, the wicked games we play! In order to make kernel coding a
+ * little more difficult, we typedef cpumask_var_t to an array or a
+ * pointer: doing &mask on an array is a noop, so it still works.
+ *
+ * i.e.
+ * cpumask_var_t tmpmask;
+ * if (!alloc_cpumask_var(&tmpmask, GFP_KERNEL))
+ * return -ENOMEM;
+ *
+ * ... use 'tmpmask' like a normal struct cpumask * ...
+ *
+ * free_cpumask_var(tmpmask);
+ *
+ *
+ * However, one notable exception is there. alloc_cpumask_var() allocates
+ * only nr_cpumask_bits bits (in the other hand, real cpumask_t always has
+ * NR_CPUS bits). Therefore you don't have to dereference cpumask_var_t.
+ *
+ * cpumask_var_t tmpmask;
+ * if (!alloc_cpumask_var(&tmpmask, GFP_KERNEL))
+ * return -ENOMEM;
+ *
+ * var = *tmpmask;
+ *
+ * This code makes NR_CPUS length memcopy and brings to a memory corruption.
+ * cpumask_copy() provide safe copy functionality.
+ *
+ * Note that there is another evil here: If you define a cpumask_var_t
+ * as a percpu variable then the way to obtain the address of the cpumask
+ * structure differently influences what this_cpu_* operation needs to be
+ * used. Please use this_cpu_cpumask_var_t in those cases. The direct use
+ * of this_cpu_ptr() or this_cpu_read() will lead to failures when the
+ * other type of cpumask_var_t implementation is configured.
+ *
+ * Please also note that __cpumask_var_read_mostly can be used to declare
+ * a cpumask_var_t variable itself (not its content) as read mostly.
+ */
+#ifdef CONFIG_CPUMASK_OFFSTACK
+typedef struct cpumask *cpumask_var_t;
+#else
+typedef struct cpumask cpumask_var_t[1];
+#endif /* CONFIG_CPUMASK_OFFSTACK */
+
+#endif /* __LINUX_CPUMASK_TYPES_H */
--
2.40.1
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [PATCH 4/6] sched: drop sched.h dependency on cpumask
2024-05-28 0:56 [PATCH 0/6] Cleanup cpumask.h inclusion in core headers Yury Norov
` (2 preceding siblings ...)
2024-05-28 0:56 ` [PATCH 3/6] cpumask: split out include/linux/cpumask_types.h Yury Norov
@ 2024-05-28 0:56 ` Yury Norov
2024-05-28 0:56 ` [PATCH 5/6] cpumask: cleanup core headers inclusion Yury Norov
2024-05-28 0:56 ` [PATCH 6/6] cpumask: make core headers including cpumask_types.h where possible Yury Norov
5 siblings, 0 replies; 7+ messages in thread
From: Yury Norov @ 2024-05-28 0:56 UTC (permalink / raw)
To: linux-kernel, cgroups, linux-mm, rcu, linux-trace-kernel
Cc: Yury Norov, Paul E. McKenney, Rafael J. Wysocki,
Amit Daniel Kachhap, Andrew Morton, Anna-Maria Behnsen,
Christoph Lameter, Daniel Lezcano, Dennis Zhou,
Frederic Weisbecker, Johannes Weiner, Juri Lelli, Kees Cook,
Mathieu Desnoyers, Peter Zijlstra, Rasmus Villemoes, Tejun Heo,
Thomas Gleixner, Ulf Hansson, Vincent Guittot, Viresh Kumar,
Zefan Li
sched.h needs cpumask.h mostly for types declaration. Now that we have
cpumask_types.h, which is a significantly smaller header, we can rely on
it.
The only exception is UP stub for set_cpus_allowed_ptr(). The function
needs to test bit #0 in a @new_mask, which can be trivially opencoded.
Signed-off-by: Yury Norov <yury.norov@gmail.com>
---
include/linux/sched.h | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/include/linux/sched.h b/include/linux/sched.h
index 98abb07de149..f2f907ef1389 100644
--- a/include/linux/sched.h
+++ b/include/linux/sched.h
@@ -13,7 +13,7 @@
#include <asm/processor.h>
#include <linux/thread_info.h>
#include <linux/preempt.h>
-#include <linux/cpumask.h>
+#include <linux/cpumask_types.h>
#include <linux/cache.h>
#include <linux/irqflags_types.h>
@@ -1778,7 +1778,8 @@ static inline void do_set_cpus_allowed(struct task_struct *p, const struct cpuma
}
static inline int set_cpus_allowed_ptr(struct task_struct *p, const struct cpumask *new_mask)
{
- if (!cpumask_test_cpu(0, new_mask))
+ /* Opencoded cpumask_test_cpu(0, new_mask) to avoid dependency on cpumask.h */
+ if ((*cpumask_bits(new_mask) & 1) == 0)
return -EINVAL;
return 0;
}
--
2.40.1
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [PATCH 5/6] cpumask: cleanup core headers inclusion
2024-05-28 0:56 [PATCH 0/6] Cleanup cpumask.h inclusion in core headers Yury Norov
` (3 preceding siblings ...)
2024-05-28 0:56 ` [PATCH 4/6] sched: drop sched.h dependency on cpumask Yury Norov
@ 2024-05-28 0:56 ` Yury Norov
2024-05-28 0:56 ` [PATCH 6/6] cpumask: make core headers including cpumask_types.h where possible Yury Norov
5 siblings, 0 replies; 7+ messages in thread
From: Yury Norov @ 2024-05-28 0:56 UTC (permalink / raw)
To: linux-kernel, cgroups, linux-mm, rcu, linux-trace-kernel
Cc: Yury Norov, Paul E. McKenney, Rafael J. Wysocki,
Amit Daniel Kachhap, Andrew Morton, Anna-Maria Behnsen,
Christoph Lameter, Daniel Lezcano, Dennis Zhou,
Frederic Weisbecker, Johannes Weiner, Juri Lelli, Kees Cook,
Mathieu Desnoyers, Peter Zijlstra, Rasmus Villemoes, Tejun Heo,
Thomas Gleixner, Ulf Hansson, Vincent Guittot, Viresh Kumar,
Zefan Li
Many core headers include cpumask.h for nothing. Drop it.
Signed-off-by: Yury Norov <yury.norov@gmail.com>
---
include/linux/cgroup.h | 1 -
include/linux/cpu.h | 1 -
include/linux/cpu_cooling.h | 1 -
include/linux/kernel_stat.h | 1 -
include/linux/node.h | 1 -
include/linux/percpu.h | 1 -
include/linux/profile.h | 1 -
include/linux/rcupdate.h | 1 -
include/linux/seq_file.h | 1 -
include/linux/tracepoint.h | 1 -
10 files changed, 10 deletions(-)
diff --git a/include/linux/cgroup.h b/include/linux/cgroup.h
index 2150ca60394b..c60ba0ab1462 100644
--- a/include/linux/cgroup.h
+++ b/include/linux/cgroup.h
@@ -10,7 +10,6 @@
*/
#include <linux/sched.h>
-#include <linux/cpumask.h>
#include <linux/nodemask.h>
#include <linux/rculist.h>
#include <linux/cgroupstats.h>
diff --git a/include/linux/cpu.h b/include/linux/cpu.h
index 861c3bfc5f17..ea6ac8f98e4a 100644
--- a/include/linux/cpu.h
+++ b/include/linux/cpu.h
@@ -16,7 +16,6 @@
#include <linux/node.h>
#include <linux/compiler.h>
-#include <linux/cpumask.h>
#include <linux/cpuhotplug.h>
#include <linux/cpu_smt.h>
diff --git a/include/linux/cpu_cooling.h b/include/linux/cpu_cooling.h
index a3bdc8a98f2c..2c774fb3c091 100644
--- a/include/linux/cpu_cooling.h
+++ b/include/linux/cpu_cooling.h
@@ -15,7 +15,6 @@
#include <linux/of.h>
#include <linux/thermal.h>
-#include <linux/cpumask.h>
struct cpufreq_policy;
diff --git a/include/linux/kernel_stat.h b/include/linux/kernel_stat.h
index 9c042c6384bb..b97ce2df376f 100644
--- a/include/linux/kernel_stat.h
+++ b/include/linux/kernel_stat.h
@@ -5,7 +5,6 @@
#include <linux/smp.h>
#include <linux/threads.h>
#include <linux/percpu.h>
-#include <linux/cpumask.h>
#include <linux/interrupt.h>
#include <linux/sched.h>
#include <linux/vtime.h>
diff --git a/include/linux/node.h b/include/linux/node.h
index dfc004e4bee7..9a881c2208b3 100644
--- a/include/linux/node.h
+++ b/include/linux/node.h
@@ -16,7 +16,6 @@
#define _LINUX_NODE_H_
#include <linux/device.h>
-#include <linux/cpumask.h>
#include <linux/list.h>
/**
diff --git a/include/linux/percpu.h b/include/linux/percpu.h
index 03053de557cf..4b2047b78b67 100644
--- a/include/linux/percpu.h
+++ b/include/linux/percpu.h
@@ -6,7 +6,6 @@
#include <linux/mmdebug.h>
#include <linux/preempt.h>
#include <linux/smp.h>
-#include <linux/cpumask.h>
#include <linux/pfn.h>
#include <linux/init.h>
#include <linux/cleanup.h>
diff --git a/include/linux/profile.h b/include/linux/profile.h
index 04ae5ebcb637..2fb487f61d12 100644
--- a/include/linux/profile.h
+++ b/include/linux/profile.h
@@ -4,7 +4,6 @@
#include <linux/kernel.h>
#include <linux/init.h>
-#include <linux/cpumask.h>
#include <linux/cache.h>
#include <asm/errno.h>
diff --git a/include/linux/rcupdate.h b/include/linux/rcupdate.h
index dfd2399f2cde..fb8ab4618d63 100644
--- a/include/linux/rcupdate.h
+++ b/include/linux/rcupdate.h
@@ -29,7 +29,6 @@
#include <linux/lockdep.h>
#include <linux/cleanup.h>
#include <asm/processor.h>
-#include <linux/cpumask.h>
#include <linux/context_tracking_irq.h>
#define ULONG_CMP_GE(a, b) (ULONG_MAX / 2 >= (a) - (b))
diff --git a/include/linux/seq_file.h b/include/linux/seq_file.h
index 8bd4fda6e027..2fb266ea69fa 100644
--- a/include/linux/seq_file.h
+++ b/include/linux/seq_file.h
@@ -7,7 +7,6 @@
#include <linux/string_helpers.h>
#include <linux/bug.h>
#include <linux/mutex.h>
-#include <linux/cpumask.h>
#include <linux/nodemask.h>
#include <linux/fs.h>
#include <linux/cred.h>
diff --git a/include/linux/tracepoint.h b/include/linux/tracepoint.h
index 689b6d71590e..6be396bb4297 100644
--- a/include/linux/tracepoint.h
+++ b/include/linux/tracepoint.h
@@ -16,7 +16,6 @@
#include <linux/srcu.h>
#include <linux/errno.h>
#include <linux/types.h>
-#include <linux/cpumask.h>
#include <linux/rcupdate.h>
#include <linux/tracepoint-defs.h>
#include <linux/static_call.h>
--
2.40.1
^ permalink raw reply related [flat|nested] 7+ messages in thread
* [PATCH 6/6] cpumask: make core headers including cpumask_types.h where possible
2024-05-28 0:56 [PATCH 0/6] Cleanup cpumask.h inclusion in core headers Yury Norov
` (4 preceding siblings ...)
2024-05-28 0:56 ` [PATCH 5/6] cpumask: cleanup core headers inclusion Yury Norov
@ 2024-05-28 0:56 ` Yury Norov
5 siblings, 0 replies; 7+ messages in thread
From: Yury Norov @ 2024-05-28 0:56 UTC (permalink / raw)
To: linux-kernel, cgroups, linux-mm, rcu, linux-trace-kernel
Cc: Yury Norov, Paul E. McKenney, Rafael J. Wysocki,
Amit Daniel Kachhap, Andrew Morton, Anna-Maria Behnsen,
Christoph Lameter, Daniel Lezcano, Dennis Zhou,
Frederic Weisbecker, Johannes Weiner, Juri Lelli, Kees Cook,
Mathieu Desnoyers, Peter Zijlstra, Rasmus Villemoes, Tejun Heo,
Thomas Gleixner, Ulf Hansson, Vincent Guittot, Viresh Kumar,
Zefan Li
Now that cpumask types are split out to a separate smaller header, many
frequently included core headers may switch to using it.
Signed-off-by: Yury Norov <yury.norov@gmail.com>
---
include/linux/cacheinfo.h | 2 +-
include/linux/clockchips.h | 2 +-
include/linux/cpu_rmap.h | 2 +-
include/linux/interrupt.h | 2 +-
include/linux/irqchip/irq-partition-percpu.h | 2 +-
include/linux/msi.h | 2 +-
include/linux/pm_domain.h | 2 +-
include/linux/stop_machine.h | 2 +-
include/linux/torture.h | 2 +-
include/linux/workqueue.h | 2 +-
10 files changed, 10 insertions(+), 10 deletions(-)
diff --git a/include/linux/cacheinfo.h b/include/linux/cacheinfo.h
index 2cb15fe4fe12..286db104e054 100644
--- a/include/linux/cacheinfo.h
+++ b/include/linux/cacheinfo.h
@@ -3,7 +3,7 @@
#define _LINUX_CACHEINFO_H
#include <linux/bitops.h>
-#include <linux/cpumask.h>
+#include <linux/cpumask_types.h>
#include <linux/smp.h>
struct device_node;
diff --git a/include/linux/clockchips.h b/include/linux/clockchips.h
index 9aac31d856f3..b0df28ddd394 100644
--- a/include/linux/clockchips.h
+++ b/include/linux/clockchips.h
@@ -12,7 +12,7 @@
#ifdef CONFIG_GENERIC_CLOCKEVENTS
# include <linux/clocksource.h>
-# include <linux/cpumask.h>
+# include <linux/cpumask_types.h>
# include <linux/ktime.h>
# include <linux/notifier.h>
diff --git a/include/linux/cpu_rmap.h b/include/linux/cpu_rmap.h
index cae324d10965..20b5729903d7 100644
--- a/include/linux/cpu_rmap.h
+++ b/include/linux/cpu_rmap.h
@@ -7,7 +7,7 @@
* Copyright 2011 Solarflare Communications Inc.
*/
-#include <linux/cpumask.h>
+#include <linux/cpumask_types.h>
#include <linux/gfp.h>
#include <linux/slab.h>
#include <linux/kref.h>
diff --git a/include/linux/interrupt.h b/include/linux/interrupt.h
index 5c9bdd3ffccc..da88261f4748 100644
--- a/include/linux/interrupt.h
+++ b/include/linux/interrupt.h
@@ -5,7 +5,7 @@
#include <linux/kernel.h>
#include <linux/bitops.h>
-#include <linux/cpumask.h>
+#include <linux/cpumask_types.h>
#include <linux/irqreturn.h>
#include <linux/irqnr.h>
#include <linux/hardirq.h>
diff --git a/include/linux/irqchip/irq-partition-percpu.h b/include/linux/irqchip/irq-partition-percpu.h
index 2f6ae7551748..b35ee22c278f 100644
--- a/include/linux/irqchip/irq-partition-percpu.h
+++ b/include/linux/irqchip/irq-partition-percpu.h
@@ -8,7 +8,7 @@
#define __LINUX_IRQCHIP_IRQ_PARTITION_PERCPU_H
#include <linux/fwnode.h>
-#include <linux/cpumask.h>
+#include <linux/cpumask_types.h>
#include <linux/irqdomain.h>
struct partition_affinity {
diff --git a/include/linux/msi.h b/include/linux/msi.h
index dc27cf3903d5..26588da88bdd 100644
--- a/include/linux/msi.h
+++ b/include/linux/msi.h
@@ -19,7 +19,7 @@
*/
#include <linux/irqdomain_defs.h>
-#include <linux/cpumask.h>
+#include <linux/cpumask_types.h>
#include <linux/msi_api.h>
#include <linux/xarray.h>
#include <linux/mutex.h>
diff --git a/include/linux/pm_domain.h b/include/linux/pm_domain.h
index f24546a3d3db..71e4f0fb8867 100644
--- a/include/linux/pm_domain.h
+++ b/include/linux/pm_domain.h
@@ -16,7 +16,7 @@
#include <linux/of.h>
#include <linux/notifier.h>
#include <linux/spinlock.h>
-#include <linux/cpumask.h>
+#include <linux/cpumask_types.h>
#include <linux/time64.h>
/*
diff --git a/include/linux/stop_machine.h b/include/linux/stop_machine.h
index ea7a74ea7389..3132262a404d 100644
--- a/include/linux/stop_machine.h
+++ b/include/linux/stop_machine.h
@@ -3,7 +3,7 @@
#define _LINUX_STOP_MACHINE
#include <linux/cpu.h>
-#include <linux/cpumask.h>
+#include <linux/cpumask_types.h>
#include <linux/smp.h>
#include <linux/list.h>
diff --git a/include/linux/torture.h b/include/linux/torture.h
index 1541454da03e..c2e979f82f8d 100644
--- a/include/linux/torture.h
+++ b/include/linux/torture.h
@@ -14,7 +14,7 @@
#include <linux/cache.h>
#include <linux/spinlock.h>
#include <linux/threads.h>
-#include <linux/cpumask.h>
+#include <linux/cpumask_types.h>
#include <linux/seqlock.h>
#include <linux/lockdep.h>
#include <linux/completion.h>
diff --git a/include/linux/workqueue.h b/include/linux/workqueue.h
index fb3993894536..52496f07fba5 100644
--- a/include/linux/workqueue.h
+++ b/include/linux/workqueue.h
@@ -12,7 +12,7 @@
#include <linux/lockdep.h>
#include <linux/threads.h>
#include <linux/atomic.h>
-#include <linux/cpumask.h>
+#include <linux/cpumask_types.h>
#include <linux/rcupdate.h>
#include <linux/workqueue_types.h>
--
2.40.1
^ permalink raw reply related [flat|nested] 7+ messages in thread
end of thread, other threads:[~2024-05-28 0:56 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-05-28 0:56 [PATCH 0/6] Cleanup cpumask.h inclusion in core headers Yury Norov
2024-05-28 0:56 ` [PATCH 1/6] MAINTAINERS: add linux/nodemask_types.h to BITMAP API Yury Norov
2024-05-28 0:56 ` [PATCH 2/6] sched: avoid using ilog2() in sched.h Yury Norov
2024-05-28 0:56 ` [PATCH 3/6] cpumask: split out include/linux/cpumask_types.h Yury Norov
2024-05-28 0:56 ` [PATCH 4/6] sched: drop sched.h dependency on cpumask Yury Norov
2024-05-28 0:56 ` [PATCH 5/6] cpumask: cleanup core headers inclusion Yury Norov
2024-05-28 0:56 ` [PATCH 6/6] cpumask: make core headers including cpumask_types.h where possible Yury Norov
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).