FYI, tiny-kernel fix for rcu_segcblist separate .c file

From: Paul E. McKenney
Date: Fri May 05 2017 - 12:14:11 EST


Hello, Ingo,

Just in case you get complaints about kernel size...

In response to Linus's feedback, I did commit 98059b98619d ("rcu:
Separately compile large rcu_segcblist functions"), which of course
has the side-effect of bloating Tiny SRCU, which 0day Test Robot
complains about.

So I have queued commit 7bf7fa5acc92 ("srcu: Apply trivial callback
lists to shrink Tiny SRCU"), which makes up for the bloating and then some.

I don't believe that this debloating is at all urgent because people
building kernels for small-memory devices have to do a lot of other
tweaking, so that applying this additional commit as a patch should
not be too much incremental pain.

So again, if you get complaints about 98059b98619d bloating tiny
kernel builds, 7bf7fa5acc92 is the fix.

Thanx, Paul

----- Forwarded message from kbuild test robot <fengguang.wu@xxxxxxxxx> -----

Date: Fri, 05 May 2017 20:57:16 +0800
From: kbuild test robot <fengguang.wu@xxxxxxxxx>
To: "Paul E. McKenney" <paulmck@xxxxxxxxxxxxxxxxxx>
Subject: [rcu:dev.2017.05.04c] BUILD INCOMPLETE
b015d142a08cdd2b69b9a59dd664a14a64e383bb

https://git.kernel.org/pub/scm/linux/kernel/git/paulmck/linux-rcu.git dev.2017.05.04c
b015d142a08cdd2b69b9a59dd664a14a64e383bb fixup! torture: Add --kconfig argument to kvm.sh

i386-tinyconfig vmlinux size:

+-------+----------------------------+---------------------------------------------------------------------+
| DELTA | SYMBOL | COMMIT |
+-------+----------------------------+---------------------------------------------------------------------+
| -407 | TOTAL | 96fd20cf3f16..b015d142a08c (ALL COMMITS) |
| +536 | TOTAL | 98059b98619d rcu: Separately compile large rcu_segcblist functions |
| +38 | TOTAL | 31a4bf8a8cc7 rcu: Make synchronize_rcu_mult() check for duplicates |
| -995 | TOTAL | 80360a9b1d95 srcu: Apply trivial callback lists to shrink Tiny SRCU |
| -308 | TEXT | 96fd20cf3f16..b015d142a08c (ALL COMMITS) |
| +544 | TEXT | 98059b98619d rcu: Separately compile large rcu_segcblist functions |
| +38 | TEXT | 31a4bf8a8cc7 rcu: Make synchronize_rcu_mult() check for duplicates |
| -915 | TEXT | 80360a9b1d95 srcu: Apply trivial callback lists to shrink Tiny SRCU |
| +84 | rcu_segcblist_accelerate() | 98059b98619d rcu: Separately compile large rcu_segcblist functions |
| -84 | rcu_segcblist_accelerate() | 80360a9b1d95 srcu: Apply trivial callback lists to shrink Tiny SRCU |
| +72 | rcu_segcblist_advance() | 98059b98619d rcu: Separately compile large rcu_segcblist functions |
| -72 | rcu_segcblist_advance() | 80360a9b1d95 srcu: Apply trivial callback lists to shrink Tiny SRCU |
| +71 | rcu_segcblist_entrain() | 98059b98619d rcu: Separately compile large rcu_segcblist functions |
| -71 | rcu_segcblist_entrain() | 80360a9b1d95 srcu: Apply trivial callback lists to shrink Tiny SRCU |
| +70 | rcu_segcblist_dequeue() | 98059b98619d rcu: Separately compile large rcu_segcblist functions |
| -70 | rcu_segcblist_dequeue() | 80360a9b1d95 srcu: Apply trivial callback lists to shrink Tiny SRCU |
| -116 | drivers/base/ | 96fd20cf3f16..b015d142a08c (ALL COMMITS) |
| -32 | drivers/base/ | 04e777c93128 srcu: Shrink Tiny SRCU a bit more |
| -56 | drivers/base/ | 80360a9b1d95 srcu: Apply trivial callback lists to shrink Tiny SRCU |
| -256 | drivers/hsi/ | 96fd20cf3f16..b015d142a08c (ALL COMMITS) |
| +256 | drivers/hsi/ | 98059b98619d rcu: Separately compile large rcu_segcblist functions |
| +256 | drivers/hsi/ | 933dfbd7c437 rcu: Open-code the rcu_cblist_n_lazy_cbs() function |
| -256 | drivers/hsi/ | 45753c5f3157 srcu: Debloat the <linux/rcu_segcblist.h> header |
| -256 | drivers/hsi/ | 8ef0f37efb78 rcu: Open-code the rcu_cblist_empty() function |
| -256 | drivers/hsi/ | 167934c9150c lockdep: Use consistent printing primitives |
| -329 | srcu_drive_gp() | 96fd20cf3f16..b015d142a08c (ALL COMMITS) |
| -71 | srcu_drive_gp() | 80360a9b1d95 srcu: Apply trivial callback lists to shrink Tiny SRCU |
| -263 | srcu_drive_gp() | 98059b98619d rcu: Separately compile large rcu_segcblist functions |
| -376 | kernel/rcu/ | 96fd20cf3f16..b015d142a08c (ALL COMMITS) |
| +1684 | kernel/rcu/ | 98059b98619d rcu: Separately compile large rcu_segcblist functions |
| +40 | kernel/rcu/ | 31a4bf8a8cc7 rcu: Make synchronize_rcu_mult() check for duplicates |
| -32 | kernel/rcu/ | 0cd4479ad0b2 srcu: Shrink Tiny SRCU a bit |
| -2068 | kernel/rcu/ | 80360a9b1d95 srcu: Apply trivial callback lists to shrink Tiny SRCU |
+-------+----------------------------+---------------------------------------------------------------------+

TIMEOUT after 608m


Sorry we cannot finish the testset for your branch within a reasonable time.
It's our fault -- either some build server is down or some build worker is busy
doing bisects for _other_ trees. The branch will get more complete coverage and
possible error reports when our build infrastructure is restored or catches up.
There will be no more build success notification for this branch head, but you
can expect reasonably good test coverage after waiting for 1 day.

configs timed out: 45

alpha allmodconfig
alpha allyesconfig
blackfin allmodconfig
blackfin allyesconfig
cris allmodconfig
cris allyesconfig
customconfig 0
customconfig 1
customconfig 2
customconfig 3
customconfig 4
customconfig 5
customconfig 6
customconfig 7
customconfig 8
customconfig 9
i386 randconfig-s0
i386 randconfig-s1
ia64 allmodconfig
ia64 allyesconfig
m68k allmodconfig
m68k allyesconfig
microblaze mmu_defconfig
microblaze nommu_defconfig
mips allmodconfig
mips allyesconfig
parisc allmodconfig
parisc allyesconfig
powerpc allmodconfig
powerpc allyesconfig
s390 allmodconfig
s390 allyesconfig
score spct6600_defconfig
sh allmodconfig
sh allyesconfig
sparc64 allmodconfig
sparc64 allyesconfig
sparc allmodconfig
sparc allyesconfig
tile allmodconfig
tile allyesconfig
x86_64 allyesconfig
x86_64 lkp
xtensa allmodconfig
xtensa allyesconfig

configs tested: 142

powerpc defconfig
s390 default_defconfig
powerpc ppc64_defconfig
powerpc allnoconfig
x86_64 acpi-redef
x86_64 allyesdebian
x86_64 nfsroot
cris etrax-100lx_v2_defconfig
blackfin TCM-BF537_defconfig
blackfin BF561-EZKIT-SMP_defconfig
blackfin BF533-EZKIT_defconfig
blackfin BF526-EZBRD_defconfig
parisc c3000_defconfig
parisc b180_defconfig
parisc defconfig
alpha defconfig
parisc allnoconfig
x86_64 randconfig-x015-201718
x86_64 randconfig-x012-201718
x86_64 randconfig-x010-201718
x86_64 randconfig-x017-201718
x86_64 randconfig-x011-201718
x86_64 randconfig-x018-201718
x86_64 randconfig-x013-201718
x86_64 randconfig-x014-201718
x86_64 randconfig-x016-201718
x86_64 randconfig-x019-201718
ia64 allnoconfig
ia64 defconfig
ia64 alldefconfig
x86_64 kexec
x86_64 rhel
x86_64 rhel-7.2
i386 randconfig-a0-05010503
mn10300 asb2364_defconfig
openrisc or1ksim_defconfig
um x86_64_defconfig
um i386_defconfig
avr32 atngw100_defconfig
frv defconfig
avr32 atstk1006_defconfig
tile tilegx_defconfig
arm omap2plus_defconfig
arm sa1100
arm allmodconfig
arm samsung
arm mvebu_v7_defconfig
arm ixp4xx_defconfig
arm imx_v6_v7_defconfig
arm64 allmodconfig
arm tegra_defconfig
arm arm5
arm64 alldefconfig
arm sh
arm arm67
m68k sun3_defconfig
m68k multi_defconfig
m68k m5475evb_defconfig
i386 tinyconfig
x86_64 randconfig-i0-201718
i386 randconfig-i0-201718
i386 randconfig-i1-201718
sparc defconfig
sparc64 allnoconfig
sparc64 defconfig
c6x evmc6678_defconfig
xtensa common_defconfig
m32r m32104ut_defconfig
xtensa iss_defconfig
m32r opsput_defconfig
m32r usrv_defconfig
m32r mappi3.smp_defconfig
nios2 10m50_defconfig
h8300 h8300h-sim_defconfig
i386 randconfig-x016-201718
i386 randconfig-x014-201718
i386 randconfig-x010-201718
i386 randconfig-x017-201718
i386 randconfig-x019-201718
i386 randconfig-x013-201718
i386 randconfig-x018-201718
i386 randconfig-x012-201718
i386 randconfig-x015-201718
i386 randconfig-x011-201718
i386 randconfig-n0-201718
i386 allmodconfig
sh titan_defconfig
sh rsk7269_defconfig
sh sh7785lcr_32bit_defconfig
sh allnoconfig
x86_64 allmodconfig
arm at91_dt_defconfig
arm allnoconfig
arm efm32_defconfig
arm64 defconfig
arm multi_v5_defconfig
arm sunxi_defconfig
arm64 allnoconfig
arm exynos_defconfig
arm shmobile_defconfig
arm multi_v7_defconfig
i386 randconfig-x072-05010711
i386 randconfig-x079-05010711
i386 randconfig-x071-05010711
i386 randconfig-x076-05010711
i386 randconfig-x074-05010711
i386 randconfig-x078-05010711
i386 randconfig-x077-05010711
i386 randconfig-x075-05010711
i386 randconfig-x070-05010711
i386 randconfig-x073-05010711
i386 allnoconfig
i386 defconfig
i386 alldefconfig
x86_64 randconfig-x003-201718
x86_64 randconfig-x004-201718
x86_64 randconfig-x009-201718
x86_64 randconfig-x002-201718
x86_64 randconfig-x008-201718
x86_64 randconfig-x000-201718
x86_64 randconfig-x007-201718
x86_64 randconfig-x005-201718
x86_64 randconfig-x006-201718
x86_64 randconfig-x001-201718
i386 randconfig-r0-201718
i386 randconfig-x005-201718
i386 randconfig-x002-201718
i386 randconfig-x006-201718
i386 randconfig-x008-201718
i386 randconfig-x001-201718
i386 randconfig-x003-201718
i386 randconfig-x007-201718
i386 randconfig-x000-201718
i386 randconfig-x009-201718
i386 randconfig-x004-201718
mips jz4740
mips malta_kvm_defconfig
mips 64r6el_defconfig
mips 32r2_defconfig
mips allnoconfig
mips fuloong2e_defconfig
mips txx9

Thanks,
Fengguang


----- End forwarded message -----