Luis R. Rodriguez
2017-Jan-04 20:36 UTC
[klibc] [lkp-developer] [lib] 0c5a9920fb: WARNING:at_lib/test_linktables/test-linktables.c:#test_linktable_init
On Fri, Dec 30, 2016 at 01:34:15AM +0800, kernel test robot wrote:> > FYI, we noticed the following commit: > > commit: 0c5a9920fbb514bd4098e2fb6340d3274bf2bca7 ("lib: add linker tables test driver") > https://git.kernel.org/pub/scm/linux/kernel/git/mcgrof/linux-next.git 20161216-linker-tables-v5 > > in testcase: trinity > with following parameters: > > runtime: 300s > > test-description: Trinity is a linux system call fuzz tester. > test-url: http://codemonkey.org.uk/projects/trinity/ > > > on test machine: qemu-system-x86_64 -enable-kvm -smp 2 -m 320M > > caused below changes: > > > +-----------------------------------------------------------------------+------------+------------+ > | | d658aa6259 | 0c5a9920fb | > +-----------------------------------------------------------------------+------------+------------+ > | boot_successes | 2 | 0 | > | boot_failures | 6 | 8 | > | WARNING:at_arch/x86/mm/dump_pagetables.c:#note_page | 6 | 8 | > | invoked_oom-killer:gfp_mask=0x | 1 | 2 | > | Mem-Info | 1 | 2 | > | WARNING:at_lib/test_linktables/test-linktables.c:#test_linktable_init | 0 | 8 | > | inconsistent{SOFTIRQ-ON-W}->{IN-SOFTIRQ-W}usage | 0 | 3 | > +-----------------------------------------------------------------------+------------+------------+ > > > > [ 13.774713] Key type big_key registered > [ 13.775796] test_linktables: expected: 0 test > [ 13.776549] ------------[ cut here ]------------ > [ 13.777372] WARNING: CPU: 0 PID: 1 at lib/test_linktables/test-linktables.c:760 test_linktable_init+0x126/0x1a1 > [ 13.779332] Modules linked in: > [ 13.779907] CPU: 0 PID: 1 Comm: swapper Not tainted 4.9.0-next-20161216-00014-g0c5a992 #2 > [ 13.781330] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.9.3-20161025_171302-gandalf 04/01/2014 > [ 13.783135] Call Trace: > [ 13.783608] dump_stack+0x16/0x18 > [ 13.784188] __warn+0xa5/0xbc > [ 13.784694] ? test_linktable_init+0x126/0x1a1 > > > To reproduce: > > git clone git://git.kernel.org/pub/scm/linux/kernel/git/wfg/lkp-tests.git > cd lkp-tests > bin/lkp qemu -k <bzImage> job-script # job-script is attached in this emailThis seems to rely on klibc and klibc does not compile on the latest kernels. I tried to fix this but this needs more work. I changed your tests to use gcc but that also does not work. hpa, attached was my latest attempt to try to get klibc to compile on x86_64 with the latest kernel but no go yet. We need to resolve a bit more issues. So this test is not useful unless we change it to use gcc or fix klibc. The only reason I can think of this warning to trigger with trinity is *perhaps* a race with freeing __init and running the module's init call.... but I think that would have oops instead. So really not sure how trinity would cause this. I am motivated to figure out but I am stuck! diff --git a/scripts/Kbuild.klibc b/scripts/Kbuild.klibc index f500d5358ef6..b825daeb8277 100644 --- a/scripts/Kbuild.klibc +++ b/scripts/Kbuild.klibc @@ -77,7 +77,8 @@ KLIBCLDFLAGS : KLIBCCFLAGS : # Defaults for arch to override -KLIBCARCHINCFLAGS = -I$(KLIBCKERNELOBJ)/arch/$(KLIBCARCH)/include +KLIBCARCHINCFLAGS = -I$(KLIBCKERNELOBJ)/arch/$(KLIBCARCH)/include \ + -I$(KLIBCKERNELOBJ)/arch/$(KLIBCARCH)/include/uapi # Arch specific definitions for klibc include $(srctree)/$(KLIBCSRC)/arch/$(KLIBCARCHDIR)/MCONFIG @@ -114,6 +115,7 @@ KLIBCCPPFLAGS := -nostdinc -iwithprefix include \ KLIBCKERNELSRC ?= $(srctree) KLIBCKERNELOBJ ?= $(objtree) KLIBCCPPFLAGS += -I$(KLIBCKERNELSRC)/include \ + -I$(KLIBCKERNELSRC)/include/uapi \ $(if $(KBUILD_SRC),-I$(KLIBCKERNELOBJ)/include2 \ -I$(KLIBCKERNELOBJ)/include -I$(srctree)/include) \ $(KLIBCARCHINCFLAGS) diff --git a/usr/klibc/arch/x86_64/MCONFIG b/usr/klibc/arch/x86_64/MCONFIG index 4b1a33ad9f37..e45dfb029b31 100644 --- a/usr/klibc/arch/x86_64/MCONFIG +++ b/usr/klibc/arch/x86_64/MCONFIG @@ -36,4 +36,7 @@ KLIBCLDFLAGS = -m elf_x86_64 KLIBCSHAREDFLAGS = -Ttext 0x00200200 -z max-page-size=0x100000 # Asm includes for x86_64 are in the merged x86 tree -KLIBCARCHINCFLAGS = -I$(KLIBCKERNELOBJ)/arch/x86/include +KLIBCARCHINCFLAGS = -I$(KLIBCKERNELOBJ)/arch/x86/include \ + -I$(KLIBCKERNELOBJ)/arch/x86/include/uapi \ + -I$(KLIBCKERNELOBJ)/arch/x86/include/generated/ \ + -I$(KLIBCKERNELOBJ)/arch/x86/include/generated/uapi