| From: Yury Norov <yury.norov@gmail.com> |
| Subject: sched: avoid using ilog2() in sched.h |
| Date: Mon, 27 May 2024 17:56:44 -0700 |
| |
| <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. |
| |
| Link: https://lkml.kernel.org/r/20240528005648.182376-3-yury.norov@gmail.com |
| Signed-off-by: Yury Norov <yury.norov@gmail.com> |
| Cc: Amit Daniel Kachhap <amit.kachhap@gmail.com> |
| Cc: Anna-Maria Behnsen <anna-maria@linutronix.de> |
| Cc: Christoph Lameter <cl@linux.com> |
| Cc: Daniel Lezcano <daniel.lezcano@linaro.org> |
| Cc: Dennis Zhou <dennis@kernel.org> |
| Cc: Frederic Weisbecker <frederic@kernel.org> |
| Cc: Johannes Weiner <hannes@cmpxchg.org> |
| Cc: Juri Lelli <juri.lelli@redhat.com> |
| Cc: Kees Cook <keescook@chromium.org> |
| Cc: Mathieu Desnoyers <mathieu.desnoyers@efficios.com> |
| Cc: Paul E. McKenney <paulmck@kernel.org> |
| Cc: Peter Zijlstra <peterz@infradead.org> |
| Cc: Rafael J. Wysocki <rafael@kernel.org> |
| Cc: Rasmus Villemoes <linux@rasmusvillemoes.dk> |
| Cc: Tejun Heo <tj@kernel.org> |
| Cc: Thomas Gleixner <tglx@linutronix.de> |
| Cc: Ulf Hansson <ulf.hansson@linaro.org> |
| Cc: Vincent Guittot <vincent.guittot@linaro.org> |
| Cc: Viresh Kumar <viresh.kumar@linaro.org> |
| Cc: Yury Norov <yury.norov@nvidia.com> |
| Signed-off-by: Andrew Morton <akpm@linux-foundation.org> |
| --- |
| |
| include/linux/sched.h | 2 +- |
| 1 file changed, 1 insertion(+), 1 deletion(-) |
| |
| --- a/include/linux/sched.h~sched-avoid-using-ilog2-in-schedh |
| +++ a/include/linux/sched.h |
| @@ -1604,7 +1604,7 @@ static inline char task_index_to_char(un |
| { |
| 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]; |
| } |
| _ |