treewide: make "nr_cpu_ids" unsigned
First, number of CPUs can't be negative number. Second, different signnnedness leads to suboptimal code in the following cases: 1) kmalloc(nr_cpu_ids * sizeof(X)); "int" has to be sign extended to size_t. 2) while (loff_t *pos < nr_cpu_ids) MOVSXD is 1 byte longed than the same MOV. Other cases exist as well. Basically compiler is told that nr_cpu_ids can't be negative which can't be deduced if it is "int". Code savings on allyesconfig kernel: -3KB add/remove: 0/0 grow/shrink: 25/264 up/down: 261/-3631 (-3370) function old new delta coretemp_cpu_online 450 512 +62 rcu_init_one 1234 1272 +38 pci_device_probe 374 399 +25 ... pgdat_reclaimable_pages 628 556 -72 select_fallback_rq 446 369 -77 task_numa_find_cpu 1923 1807 -116 Link: http://lkml.kernel.org/r/20170819114959.GA30580@avx2 Signed-off-by:Alexey Dobriyan <adobriyan@gmail.com> Signed-off-by:
Andrew Morton <akpm@linux-foundation.org> Signed-off-by:
Linus Torvalds <torvalds@linux-foundation.org>
Showing
- arch/arm64/kernel/smp.c 1 addition, 1 deletionarch/arm64/kernel/smp.c
- arch/powerpc/kernel/paca.c 1 addition, 1 deletionarch/powerpc/kernel/paca.c
- arch/powerpc/kernel/setup-common.c 1 addition, 1 deletionarch/powerpc/kernel/setup-common.c
- arch/powerpc/sysdev/xive/native.c 2 additions, 2 deletionsarch/powerpc/sysdev/xive/native.c
- arch/tile/kernel/setup.c 1 addition, 1 deletionarch/tile/kernel/setup.c
- arch/x86/kernel/apic/apic.c 1 addition, 1 deletionarch/x86/kernel/apic/apic.c
- arch/x86/kernel/setup_percpu.c 1 addition, 1 deletionarch/x86/kernel/setup_percpu.c
- arch/x86/kernel/smpboot.c 1 addition, 1 deletionarch/x86/kernel/smpboot.c
- drivers/base/cpu.c 2 additions, 2 deletionsdrivers/base/cpu.c
- drivers/scsi/scsi_debug.c 1 addition, 1 deletiondrivers/scsi/scsi_debug.c
- include/linux/cpumask.h 3 additions, 3 deletionsinclude/linux/cpumask.h
- kernel/rcu/tree.c 1 addition, 1 deletionkernel/rcu/tree.c
- kernel/rcu/tree_plugin.h 1 addition, 1 deletionkernel/rcu/tree_plugin.h
- kernel/sched/topology.c 1 addition, 1 deletionkernel/sched/topology.c
- kernel/smp.c 1 addition, 1 deletionkernel/smp.c
- kernel/trace/trace_functions_graph.c 1 addition, 1 deletionkernel/trace/trace_functions_graph.c
- mm/slub.c 1 addition, 1 deletionmm/slub.c
Loading
Please register or sign in to comment