Re: [PATCH 10/12] net/mlx4: replace <linux/radix-tree.h> with <linux/radix-tree-root.h>

From: Masahiro Yamada
Date: Mon Oct 09 2017 - 01:57:07 EST


2017-10-09 2:32 GMT+09:00 Joe Perches <joe@xxxxxxxxxxx>:
> On Mon, 2017-10-09 at 02:29 +0900, Masahiro Yamada wrote:
>> The idea is simple; include necessary headers explicitly.
>
> Try that for kernel.h
>
> There's a reason aggregation of #includes is useful.
>


We should use a common sense for the balance between
- aggregation of #includes
- reduce the number of parsed headers


As I had already said, if you do not like this change, you can just
throw it away.

That's fine because the impact is very limited.
Honestly, I am not so interested in this driver.
I changed sh, net/mlx4, net/mlx5, drm/i915 for bonus while I am here.


I assume your objection is addressed to this driver change,
not the whole series.


I am more interested in the global headers like
include/linux/{irqdomain.h, fs.h} etc.


radix-tree-root.h vs radix-tree.h
has a big difference in terms of parsed headers (17 vs 128).

For example, the following is the analysis on arm64.



<linux/radix-tree-root.h> include the following 17 headers:

include/linux/radix-tree-root.h \
include/linux/types.h \
include/uapi/linux/types.h \
arch/arm64/include/generated/uapi/asm/types.h \
include/uapi/asm-generic/types.h \
include/asm-generic/int-ll64.h \
include/uapi/asm-generic/int-ll64.h \
arch/arm64/include/uapi/asm/bitsperlong.h \
include/asm-generic/bitsperlong.h \
include/uapi/asm-generic/bitsperlong.h \
include/uapi/linux/posix_types.h \
include/linux/stddef.h \
include/uapi/linux/stddef.h \
include/linux/compiler.h \
include/linux/compiler-gcc.h \
arch/arm64/include/uapi/asm/posix_types.h \
include/uapi/asm-generic/posix_types.h \




<linux/radix-tree.h> include the following 128 headers:

include/linux/radix-tree.h \
include/linux/bitops.h \
arch/arm64/include/generated/uapi/asm/types.h \
include/uapi/asm-generic/types.h \
include/asm-generic/int-ll64.h \
include/uapi/asm-generic/int-ll64.h \
arch/arm64/include/uapi/asm/bitsperlong.h \
include/asm-generic/bitsperlong.h \
include/uapi/asm-generic/bitsperlong.h \
arch/arm64/include/asm/bitops.h \
include/linux/compiler.h \
include/linux/compiler-gcc.h \
include/uapi/linux/types.h \
include/uapi/linux/posix_types.h \
include/linux/stddef.h \
include/uapi/linux/stddef.h \
arch/arm64/include/uapi/asm/posix_types.h \
include/uapi/asm-generic/posix_types.h \
arch/arm64/include/asm/barrier.h \
include/asm-generic/barrier.h \
include/asm-generic/bitops/builtin-__ffs.h \
include/asm-generic/bitops/builtin-ffs.h \
include/asm-generic/bitops/builtin-__fls.h \
include/asm-generic/bitops/builtin-fls.h \
include/asm-generic/bitops/ffz.h \
include/asm-generic/bitops/fls64.h \
include/asm-generic/bitops/find.h \
include/asm-generic/bitops/sched.h \
include/asm-generic/bitops/hweight.h \
include/asm-generic/bitops/arch_hweight.h \
include/asm-generic/bitops/const_hweight.h \
include/asm-generic/bitops/lock.h \
include/asm-generic/bitops/non-atomic.h \
include/asm-generic/bitops/le.h \
arch/arm64/include/uapi/asm/byteorder.h \
include/linux/byteorder/big_endian.h \
include/uapi/linux/byteorder/big_endian.h \
include/linux/types.h \
include/linux/swab.h \
include/uapi/linux/swab.h \
arch/arm64/include/generated/uapi/asm/swab.h \
include/uapi/asm-generic/swab.h \
include/linux/byteorder/generic.h \
include/linux/bug.h \
arch/arm64/include/asm/bug.h \
include/linux/stringify.h \
arch/arm64/include/asm/asm-bug.h \
arch/arm64/include/asm/brk-imm.h \
include/asm-generic/bug.h \
include/linux/kernel.h \
/home/masahiro/toolchains/aarch64-linaro-4.9/gcc-linaro-4.9-2016.02-x86_64_aarch64-linux-gnu/lib/gcc/aarch64-linux-gnu/4.9.4/include/stdarg.h
\
include/linux/linkage.h \
include/linux/export.h \
arch/arm64/include/asm/linkage.h \
include/linux/log2.h \
include/linux/typecheck.h \
include/linux/printk.h \
include/linux/init.h \
include/linux/kern_levels.h \
include/linux/cache.h \
include/uapi/linux/kernel.h \
include/uapi/linux/sysinfo.h \
arch/arm64/include/asm/cache.h \
arch/arm64/include/asm/cputype.h \
arch/arm64/include/asm/sysreg.h \
include/linux/dynamic_debug.h \
include/linux/jump_label.h \
arch/arm64/include/asm/jump_label.h \
arch/arm64/include/asm/insn.h \
include/linux/build_bug.h \
include/linux/list.h \
include/linux/poison.h \
include/uapi/linux/const.h \
include/linux/preempt.h \
arch/arm64/include/generated/asm/preempt.h \
include/asm-generic/preempt.h \
include/linux/thread_info.h \
include/linux/restart_block.h \
arch/arm64/include/asm/current.h \
arch/arm64/include/asm/thread_info.h \
arch/arm64/include/asm/memory.h \
arch/arm64/include/asm/page-def.h \
arch/arm64/include/generated/asm/sizes.h \
include/asm-generic/sizes.h \
include/linux/sizes.h \
include/linux/mmdebug.h \
include/asm-generic/memory_model.h \
include/linux/pfn.h \
arch/arm64/include/asm/stack_pointer.h \
include/linux/radix-tree-root.h \
include/linux/rcupdate.h \
include/linux/atomic.h \
arch/arm64/include/asm/atomic.h \
arch/arm64/include/asm/lse.h \
arch/arm64/include/asm/atomic_ll_sc.h \
arch/arm64/include/asm/cmpxchg.h \
include/asm-generic/atomic-long.h \
include/linux/irqflags.h \
arch/arm64/include/asm/irqflags.h \
arch/arm64/include/asm/ptrace.h \
arch/arm64/include/uapi/asm/ptrace.h \
arch/arm64/include/asm/hwcap.h \
arch/arm64/include/uapi/asm/hwcap.h \
include/asm-generic/ptrace.h \
include/linux/bottom_half.h \
include/linux/lockdep.h \
include/linux/debug_locks.h \
include/linux/stacktrace.h \
arch/arm64/include/asm/processor.h \
include/linux/string.h \
include/uapi/linux/string.h \
arch/arm64/include/asm/string.h \
arch/arm64/include/asm/alternative.h \
arch/arm64/include/asm/cpucaps.h \
arch/arm64/include/asm/fpsimd.h \
arch/arm64/include/asm/hw_breakpoint.h \
arch/arm64/include/asm/cpufeature.h \
arch/arm64/include/asm/virt.h \
arch/arm64/include/asm/sections.h \
include/asm-generic/sections.h \
arch/arm64/include/asm/pgtable-hwdef.h \
include/linux/cpumask.h \
include/linux/threads.h \
include/linux/bitmap.h \
include/linux/rcutree.h \
include/linux/spinlock_types.h \
arch/arm64/include/asm/spinlock_types.h \
include/linux/rwlock_types.h \





--
Best Regards
Masahiro Yamada