------- Comment From balb...@au1.ibm.com 2016-07-06 20:56 EDT-------
>From what I can see the following is the root cause of the issue

cgroup_threadgroup_rwsem almost serializes accesses on the system

1. stress-ng-brk has cgroup_threadgroup_rwsem held in read mode via
copy_process() and does a schedule_timeout() from
__alloc_pages_nodemask() which never seems to return from
schedule_timeout()

00003fff96ceeab0     0  2799   2701 0x00040002
[ 4401.831972] Call Trace:
[ 4401.831973] [c000000ee71433c0] [c000000ee7143400] 0xc000000ee7143400 
(unreliable)
[ 4401.831975] [c000000ee7143590] [c000000000017c64] __switch_to+0x204/0x360
[ 4401.831977] [c000000ee71435e0] [c000000000bb917c] __schedule+0x40c/0xe70
[ 4401.831979] [c000000ee71436a0] [c000000000bb9c34] schedule+0x54/0xd0
[ 4401.831981] [c000000ee71436d0] [c000000000bc0524] 
schedule_timeout+0x384/0x4f0
[ 4401.831983] [c000000ee7143800] [c00000000027de1c] 
__alloc_pages_nodemask+0xd0c/0xf40
[ 4401.831985] [c000000ee7143a10] [c0000000002e8d40] 
alloc_pages_current+0xc0/0x240
[ 4401.831988] [c000000ee7143a70] [c000000000056b6c] page_table_alloc+0xcc/0x1e0
[ 4401.831989] [c000000ee7143ac0] [c0000000002b5824] __pte_alloc+0x54/0x1e0
[ 4401.831991] [c000000ee7143b10] [c0000000002b8584] copy_page_range+0x754/0x8f0
[ 4401.831993] [c000000ee7143c40] [c0000000000bcee4] 
copy_process.isra.6+0x1834/0x1ab0
[ 4401.831995] [c000000ee7143d60] [c0000000000bd33c] _do_fork+0xac/0x980
[ 4401.831997] [c000000ee7143e30] [c00000000000946c] ppc_clone+0x8/0xc

[ 4401.861569] cfs_rq[23]:/user.slice
[ 4401.861570]   .exec_clock                    : 1725230.642232
[ 4401.861571]   .MIN_vruntime                  : 0.000001
[ 4401.861572]   .min_vruntime                  : 1154678.434341
[ 4401.861573]   .max_vruntime                  : 0.000001
[ 4401.861573]   .spread                        : 0.000000
[ 4401.861574]   .spread0                       : -97866589.605918
[ 4401.861575]   .nr_spread_over                : 11
[ 4401.861575]   .nr_running                    : 0

[ 4401.862187]    stress-ng-brk  2799   1154678.007061    854611   120
688670.967816   1148995.803148   2318289.407734 0 0 /user.slice

2. Since cgroup_threadgroup_rwsem is grabbed, we are unable to make any
processes exit

[ 4177.396262] Showing all locks held in the system:
[ 4177.396263] 4 locks held by systemd/1:
[ 4177.396268]  #0:  (sb_writers#9){.+.+.+}, at: [<c000000000328810>] 
__sb_start_write+0x100/0x130
[ 4177.396272]  #1:  (&of->mutex){+.+.+.}, at: [<c0000000003e76ec>] 
kernfs_fop_write+0x7c/0x1f0
[ 4177.396275]  #2:  (cgroup_mutex){+.+.+.}, at: [<c0000000001b0b8c>] 
cgroup_kn_lock_live+0x14c/0x280
[ 4177.396278]  #3:  (&cgroup_threadgroup_rwsem){++++++}, at: 
[<c00000000013aa10>] percpu_down_write+0x50/0x180

I think at #3, we are waiting for all readers to exit
cgroup_threadgroup_rwsem, this further blocks exiting threads

[ 4177.396548]  #0:  (&cgroup_threadgroup_rwsem){++++++}, at: 
[<c0000000000d9b00>] exit_signals+0x50/0x1a0
[ 4177.396548] 1 lock held by kworker/dying/1348:
[ 4177.396551]  #0:  (&cgroup_threadgroup_rwsem){++++++}, at: 
[<c0000000000d9b00>] exit_signals+0x50/0x1a0
[ 4177.396552] 1 lock held by kworker/dying/1919:
[ 4177.396555]  #0:  (&cgroup_threadgroup_rwsem){++++++}, at: 
[<c0000000000d9b00>] exit_signals+0x50/0x1a0
[ 4177.396555] 1 lock held by kworker/19:2/1930:

A similar deadlock was seen and solved in 4.5 (see
https://lkml.org/lkml/2016/4/17/56)

More debugging in progress

------- Comment From balb...@au1.ibm.com 2016-07-07 09:52 EDT-------
After debugging, the following seems to work fine for me

Apply the fixes mentioned at https://lkml.org/lkml/2016/4/17/56 and
disable block-cgroup controller.

The block cgroup controller has no specific changes to fix any deadlocks
that I am aware of, so it needs more testing and root cause analysis. I
expected the can_attach callback to potentially cause this, but it does
not seem to be the case.

-- 
You received this bug notification because you are a member of Kernel
Packages, which is subscribed to linux in Ubuntu.
https://bugs.launchpad.net/bugs/1573062

Title:
  memory_stress_ng failing for IBM Power S812LC(TN71-BP012) for 16.04

Status in linux package in Ubuntu:
  In Progress
Status in linux source package in Wily:
  In Progress
Status in linux source package in Xenial:
  In Progress
Status in linux source package in Yakkety:
  In Progress

Bug description:
  memory_stress_ng, as part of server certification is failing for IBM
  Power S812LC(TN71-BP012) in bare metal mode. Failing in this case is
  defined by the test locking up the server in an unrecoverable state
  which only a reboot will fix.

  I will be attaching screen and kern logs for the failures and a
  successful run on 14.04 on the same server.

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1573062/+subscriptions

-- 
Mailing list: https://launchpad.net/~kernel-packages
Post to     : kernel-packages@lists.launchpad.net
Unsubscribe : https://launchpad.net/~kernel-packages
More help   : https://help.launchpad.net/ListHelp

Reply via email to