v4.19-rc2: ext4 direct I/O recursive locking complaint

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hello,

If I run blktests against kernel v4.18 all tests pass but if I run blktests
against kernel v4.19-rc2 then recursive locking complaint shown below
appears. So it looks like this is a regression. What I'm not sure about is
whether this complaint is triggered by a change in the ext4 code or by
another change?

Thanks,

Bart.

+AD0APQA9AD0APQA9AD0APQA9AD0APQA9AD0APQA9AD0APQA9AD0APQA9AD0APQA9AD0APQA9AD0APQA9AD0APQA9AD0APQA9AD0APQA9AD0APQA9AD0APQA9AD0APQA9AD0APQA9AD0APQA9
WARNING: possible circular locking dependency detected
4.19.0-rc2-dbg+- +ACM-1 Not tainted
------------------------------------------------------
kworker/1:2/189 is trying to acquire lock:
00000000fcf597b9 (+ACY-sb-+AD4-s+AF8-type-+AD4-i+AF8-mutex+AF8-key+ACM-16)+AHsAKw.+-.+AH0, at:
+AF8AXw-generic+AF8-file+AF8-fsync+-0x6a/0xf0

but task is already holding lock:
000000008a4b0074 ((work+AF8-completion)(+ACY-dio-+AD4-complete+AF8-work))+AHsAKw.+-.+AH0, at:
process+AF8-one+AF8-work+-0x3f6/0xa70

which lock already depends on the new lock.


the existing dependency chain (in reverse order) is:

-+AD4 +ACM-2 ((work+AF8-completion)(+ACY-dio-+AD4-complete+AF8-work))+AHsAKw.+-.+AH0:
       worker+AF8-thread+-0x65/0x5a0
       kthread+-0x1c5/0x1f0
       ret+AF8-from+AF8-fork+-0x24/0x30

-+AD4 +ACM-1 ((wq+AF8-completion)+ACI-dio/+ACU-s+ACI-sb-+AD4-s+AF8-id)+AHsAKw.+-.+AH0:
       drain+AF8-workqueue+-0xe5/0x210
       destroy+AF8-workqueue+-0x1c/0x320
       sb+AF8-init+AF8-dio+AF8-done+AF8-wq+-0x65/0x80
       do+AF8-blockdev+AF8-direct+AF8-IO+-0x3b8/0x3d00
       ext4+AF8-direct+AF8-IO+-0x5d9/0xbd0
       generic+AF8-file+AF8-direct+AF8-write+-0x10f/0x210
       +AF8AXw-generic+AF8-file+AF8-write+AF8-iter+-0x117/0x2a0
       ext4+AF8-file+AF8-write+AF8-iter+-0x394/0x670
       aio+AF8-write+-0x235/0x330
       io+AF8-submit+AF8-one+-0x510/0xeb0
       +AF8AXw-x64+AF8-sys+AF8-io+AF8-submit+-0x122/0x340
       do+AF8-syscall+AF8-64+-0x6c/0x210
       entry+AF8-SYSCALL+AF8-64+AF8-after+AF8-hwframe+-0x49/0xbe

-+AD4 +ACM-0 (+ACY-sb-+AD4-s+AF8-type-+AD4-i+AF8-mutex+AF8-key+ACM-16)+AHsAKw.+-.+AH0:
       down+AF8-write+-0x39/0x70
       +AF8AXw-generic+AF8-file+AF8-fsync+-0x6a/0xf0
       ext4+AF8-sync+AF8-file+-0x3c4/0x770
       dio+AF8-complete+-0x2f6/0x360
       process+AF8-one+AF8-work+-0x4bc/0xa70
       worker+AF8-thread+-0x65/0x5a0
       kthread+-0x1c5/0x1f0
       ret+AF8-from+AF8-fork+-0x24/0x30

other info that might help us debug this:

Chain exists of:
  +ACY-sb-+AD4-s+AF8-type-+AD4-i+AF8-mutex+AF8-key+ACM-16 --+AD4 (wq+AF8-completion)+ACI-dio/+ACU-s+ACI-sb-+AD4-s+AF8-id --+AD4
(work+AF8-completion)(+ACY-dio-+AD4-complete+AF8-work)

 Possible unsafe locking scenario:

       CPU0                    CPU1
       ----                    ----
  lock((work+AF8-completion)(+ACY-dio-+AD4-complete+AF8-work))+ADs
                               lock((wq+AF8-completion)+ACI-dio/+ACU-s+ACI-sb-+AD4-s+AF8-id)+ADs
                               lock((work+AF8-completion)(+ACY-dio-+AD4-complete+AF8-work))+ADs
  lock(+ACY-sb-+AD4-s+AF8-type-+AD4-i+AF8-mutex+AF8-key+ACM-16)+ADs

 +ACoAKgAq DEADLOCK +ACoAKgAq

2 locks held by kworker/1:2/189:
 +ACM-0: 00000000ae279ea2 ((wq+AF8-completion)+ACI-dio/+ACU-s+ACI-sb-+AD4-s+AF8-id)+AHsAKw.+-.+AH0, at:
process+AF8-one+AF8-work+-0x3f6/0xa70
 +ACM-1: 000000008a4b0074 ((work+AF8-completion)(+ACY-dio-+AD4-complete+AF8-work))+AHsAKw.+-.+AH0, at:
process+AF8-one+AF8-work+-0x3f6/0xa70

stack backtrace:
CPU: 1 PID: 189 Comm: kworker/1:2 Not tainted 4.19.0-rc2-dbg+- +ACM-1
Hardware name: QEMU Standard PC (i440FX +- PIIX, 1996), BIOS 1.10.2-1
04/01/2014
Workqueue: dio/dm-0 dio+AF8-aio+AF8-complete+AF8-work
Call Trace:
 dump+AF8-stack+-0x7c/0xbb
 print+AF8-circular+AF8-bug.isra.32+-0x1fc/0x209
 +AF8AXw-lock+AF8-acquire+-0x1a54/0x1b20
 lock+AF8-acquire+-0xbd/0x200
 down+AF8-write+-0x39/0x70
 +AF8AXw-generic+AF8-file+AF8-fsync+-0x6a/0xf0
 ext4+AF8-sync+AF8-file+-0x3c4/0x770
 dio+AF8-complete+-0x2f6/0x360
 process+AF8-one+AF8-work+-0x4bc/0xa70
 worker+AF8-thread+-0x65/0x5a0
 kthread+-0x1c5/0x1f0
 ret+AF8-from+AF8-fork+-0x24/0x30



[Index of Archives]     [Reiser Filesystem Development]     [Ceph FS]     [Kernel Newbies]     [Security]     [Netfilter]     [Bugtraq]     [Linux FS]     [Yosemite National Park]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Samba]     [Device Mapper]     [Linux Media]

  Powered by Linux