[<prev] [next>] [day] [month] [year] [list]
Message-ID: <20180328040024.wnotng3j5fctndof@shao2-debian>
Date: Wed, 28 Mar 2018 12:00:24 +0800
From: kernel test robot <fengguang.wu@...el.com>
To: "Eric W. Biederman" <ebiederm@...ssion.com>
Cc: Nagarathnam Muthusamy <nagarathnam.muthusamy@...cle.com>,
linux-kernel@...r.kernel.org, LKP <lkp@...org>
Subject: [lkp-robot] [bisect done] 98f929b1bd [ 22.331302] Oops: 0000 [#1]
DEBUG_PAGEALLOC
Greetings,
0day kernel testing robot got the below dmesg and the first bad commit is
https://git.kernel.org/pub/scm/linux/kernel/git/ebiederm/user-namespace.git for-next
commit 98f929b1bd4d0b7c7a77d0d9776d1b924db2e454
Author: Eric W. Biederman <ebiederm@...ssion.com>
AuthorDate: Fri Mar 23 00:29:57 2018 -0500
Commit: Eric W. Biederman <ebiederm@...ssion.com>
CommitDate: Tue Mar 27 15:53:09 2018 -0500
ipc/shm: Fix shmctl(..., IPC_STAT, ...) between pid namespaces.
Today shm_cpid and shm_lpid are remembered in the pid namespace of the
creator and the processes that last touched a sysvipc shared memory
segment. If you have processes in multiple pid namespaces that
is just wrong, and I don't know how this has been over-looked for
so long.
As only creation and shared memory attach and shared memory detach
update the pids I do not expect there to be a repeat of the issues
when struct pid was attached to each af_unix skb, which in some
notable cases cut the performance in half. The problem was threads of
the same process updating same struct pid from different cpus causing
the cache line to be highly contended and bounce between cpus.
As creation, attach, and detach are expected to be rare operations for
sysvipc shared memory segments I do not expect that kind of cache line
ping pong to cause probems. In addition because the pid is at a fixed
location in the structure instead of being dynamic on a skb, the
reference count of the pid does not need to be updated on each
operation if the pid is the same. This ability to simply skip the pid
reference count changes if the pid is unchanging further reduces the
likelihood of the a cache line holding a pid reference count
ping-ponging between cpus.
Fixes: b488893a390e ("pid namespaces: changes to show virtual ids to user")
Reviewed-by: Nagarathnam Muthusamy <nagarathnam.muthusamy@...cle.com>
Signed-off-by: "Eric W. Biederman" <ebiederm@...ssion.com>
03f1fc0918 ipc/util: Helpers for making the sysvipc operations pid namespace aware
98f929b1bd ipc/shm: Fix shmctl(..., IPC_STAT, ...) between pid namespaces.
0d79cbf83b ipc/smack: Tidy up from the change in type of the ipc security hooks
+------------------------------------------+------------+------------+------------+
| | 03f1fc0918 | 98f929b1bd | 0d79cbf83b |
+------------------------------------------+------------+------------+------------+
| boot_successes | 27 | 4 | 6 |
| boot_failures | 2 | 11 | 13 |
| Mem-Info | 2 | 1 | |
| Oops:#[##] | 0 | 10 | 11 |
| EIP:put_pid | 0 | 10 | 11 |
| Kernel_panic-not_syncing:Fatal_exception | 0 | 10 | 11 |
| BUG:unable_to_handle_kernel | 0 | 5 | 4 |
| BUG:kernel_in_stage | 0 | 0 | 2 |
+------------------------------------------+------------+------------+------------+
[ 15.281438] VFS: Warning: trinity-c1 using old stat() call. Recompile your binary.
[ 15.329050] trinity-c0 (914) used greatest stack depth: 5732 bytes left
[ 16.269183] warning: process `trinity-c3' used the deprecated sysctl system call with
[ 22.330477] IP: put_pid+0x7/0x30
[ 22.330775] *pdpt = 000000000d7d6001 *pde = 0000000000000000
[ 22.331302] Oops: 0000 [#1] DEBUG_PAGEALLOC
[ 22.331699] Modules linked in:
[ 22.331989] CPU: 0 PID: 504 Comm: trinity Not tainted 4.16.0-rc2-00010-g98f929b #1
[ 22.332771] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.10.2-1 04/01/2014
[ 22.333596] EIP: put_pid+0x7/0x30
[ 22.333925] EFLAGS: 00010202 CPU: 0
[ 22.334253] EAX: 00000025 EBX: ccfb5488 ECX: 00000000 EDX: cd8f7ee3
[ 22.334836] ESI: ffffffea EDI: c1b87360 EBP: cd8f7eb8 ESP: cd8f7eb8
[ 22.335407] DS: 007b ES: 007b FS: 0000 GS: 00e0 SS: 0068
[ 22.335911] CR0: 80050033 CR2: 00000029 CR3: 0d7a00e0 CR4: 000006f0
[ 22.336557] Call Trace:
[ 22.336792] newseg+0xe7/0x2e0
[ 22.337072] ipcget+0x135/0x2a0
[ 22.337358] SyS_shmget+0x3c/0x40
[ 22.337731] SyS_ipc+0x249/0x2b0
[ 22.338062] do_int80_syscall_32+0x74/0x140
[ 22.338438] entry_INT80_32+0x2e/0x2e
[ 22.338796] EIP: 0x809af42
[ 22.339055] EFLAGS: 00000246 CPU: 0
[ 22.339385] EAX: ffffffda EBX: 00000017 ECX: 00000000 EDX: 00001000
[ 22.339974] ESI: 54000fb0 EDI: 00000000 EBP: 08a813a0 ESP: bf98604c
[ 22.340641] DS: 007b ES: 007b FS: 0000 GS: 0033 SS: 007b
[ 22.341380] Code: 13 8b 50 04 5d 8b 44 d0 20 c3 8d 76 00 8d bc 27 00 00 00 00 31 c0 5d c3 8d b6 00 00 00 00 8d bf 00 00 00 00 55 85 c0 89 e5 74 10 <8b> 50 04 8b 4c d0 20 8b 10 4a 74 0d ff 08 74 09 5d c3 8d b4 26
[ 22.344042] EIP: put_pid+0x7/0x30 SS:ESP: 0068:cd8f7eb8
[ 22.344757] CR2: 0000000000000029
[ 22.345256] ---[ end trace 2c13dc12bffa3321 ]---
[ 22.345969] Kernel panic - not syncing: Fatal exception
# HH:MM RESULT GOOD BAD GOOD_BUT_DIRTY DIRTY_NOT_BAD
git bisect start dc21675827ebff48dc926f0b368a34f638139398 7928b2cbe55b2a410a0f5c1f154610059c57b1b2 --
git bisect good 3a746b90796cda41b642a57111ec180b820fe898 # 09:14 G 11 0 6 6 Merge 'anna-nfs/linux-next' into devel-catchup-201803280625
git bisect good b3ab4fefc09001f5d7aa3c72646c0f4a37ef20ec # 09:27 G 11 0 8 8 Merge 'hwmon/hwmon-next' into devel-catchup-201803280625
git bisect good 4bf897901cd4a894c23f3cb8062eb26f50c91e17 # 09:37 G 11 0 7 7 Merge 'linux-arm/fixes' into devel-catchup-201803280625
git bisect bad 3981fbba8c7ca81052bb4452c011688e6124f485 # 09:51 B 1 10 1 1 Merge 'userns/userns-next' into devel-catchup-201803280625
git bisect good 34b56df922b10ac2876f268c522951785bf333fd # 10:03 G 11 0 5 5 msg: Move struct msg_queue into ipc/msg.c
git bisect bad 39a4940eaa185910bb802ca9829c12268fd2c855 # 10:16 B 0 1 15 0 ipc/msg: Fix msgctl(..., IPC_STAT, ...) between pid namespaces
git bisect good 03f1fc09180b345582889a344b012d069b3a6dbe # 10:30 G 10 0 4 4 ipc/util: Helpers for making the sysvipc operations pid namespace aware
git bisect bad 98f929b1bd4d0b7c7a77d0d9776d1b924db2e454 # 10:45 B 0 1 15 0 ipc/shm: Fix shmctl(..., IPC_STAT, ...) between pid namespaces.
# first bad commit: [98f929b1bd4d0b7c7a77d0d9776d1b924db2e454] ipc/shm: Fix shmctl(..., IPC_STAT, ...) between pid namespaces.
git bisect good 03f1fc09180b345582889a344b012d069b3a6dbe # 10:53 G 31 0 9 13 ipc/util: Helpers for making the sysvipc operations pid namespace aware
# extra tests with debug options
git bisect bad 98f929b1bd4d0b7c7a77d0d9776d1b924db2e454 # 11:01 B 0 2 16 0 ipc/shm: Fix shmctl(..., IPC_STAT, ...) between pid namespaces.
# extra tests on HEAD of linux-devel/devel-catchup-201803280625
git bisect bad dc21675827ebff48dc926f0b368a34f638139398 # 11:07 B 0 12 33 4 0day head guard for 'devel-catchup-201803280625'
# extra tests on tree/branch userns/for-next
git bisect bad 0d79cbf83be07bb38a1224f47fd0e2b163310442 # 11:17 B 0 11 25 0 ipc/smack: Tidy up from the change in type of the ipc security hooks
# extra tests with first bad commit reverted
git bisect good 96c582dca4d93f55c7dbcb67e4dcaa28b00bc2b1 # 11:27 G 10 0 4 4 Revert "ipc/shm: Fix shmctl(..., IPC_STAT, ...) between pid namespaces."
---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/lkp Intel Corporation
Download attachment "dmesg-yocto-intel12-12:20180328104555:i386-randconfig-sb0-03280131:4.16.0-rc2-00010-g98f929b:1.gz" of type "application/gzip" (12331 bytes)
Download attachment "dmesg-yocto-intel12-10:20180328105230:i386-randconfig-sb0-03280131:4.16.0-rc2-00009-g03f1fc0:2.gz" of type "application/gzip" (33678 bytes)
View attachment "reproduce-yocto-intel12-12:20180328104555:i386-randconfig-sb0-03280131:4.16.0-rc2-00010-g98f929b:1" of type "text/plain" (920 bytes)
View attachment "config-4.16.0-rc2-00010-g98f929b" of type "text/plain" (114012 bytes)
Powered by blists - more mailing lists