2023-02-23 12:34:50

by Peter Zijlstra

[permalink] [raw]
Subject: [PATCH 0/6] locking/rwsem: Rework writer wakeup and handoff

Hi,

these here few patches boot but are otherwise very much untested. Please test.


---
kernel/locking/lock_events_list.h | 1 +
kernel/locking/rwsem.c | 430 +++++++++++++++++++-------------------
2 files changed, 213 insertions(+), 218 deletions(-)




2023-02-24 01:20:45

by Waiman Long

[permalink] [raw]
Subject: Re: [PATCH 0/6] locking/rwsem: Rework writer wakeup and handoff

On 2/23/23 07:26, Peter Zijlstra wrote:
> Hi,
>
> these here few patches boot but are otherwise very much untested. Please test.

I like the unification that you have done with this series.

However, I got the following task hanging message when doing a kernel build:

[ 2215.893058]  </TASK>
[ 2215.895252] INFO: task pahole:65220 blocked for more than 123 seconds.
[ 2215.901776]       Tainted: G S         OE      6.2.0-test+ #1
[ 2215.907520] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs"
disables this message.
[ 2215.915347] task:pahole          state:D stack:0     pid:65220
ppid:65065  flags:0x00000000
[ 2215.923690] Call Trace:
[ 2215.926146]  <TASK>
[ 2215.928250]  __schedule+0x367/0x950
[ 2215.931741]  schedule+0x50/0xc0
[ 2215.934888]  schedule_preempt_disabled+0x11/0x20
[ 2215.939507]  rwsem_down_read_slowpath+0x28c/0x520
[ 2215.944215]  down_read+0x98/0xc0
[ 2215.947446]  do_user_addr_fault+0x410/0x700
[ 2215.951633]  exc_page_fault+0x64/0x140
[ 2215.955385]  asm_exc_page_fault+0x22/0x30
[ 2215.959394] RIP: 0033:0x7f37f8808dd2
[ 2215.962974] RSP: 002b:00007ffe7bc89e80 EFLAGS: 00010246
[ 2215.968199] RAX: 00007f377d7fb000 RBX: 00007f377dffb700 RCX:
00007f37f8439a1b
[ 2215.975332] RDX: 0000000000000003 RSI: 0000000000800000 RDI:
00007f377d7fc000
[ 2215.982465] RBP: 00007ffe7bc89f50 R08: 00000000ffffffff R09:
0000000000000000
[ 2215.989594] R10: 0000000000000000 R11: 0000000000000206 R12:
0000000000001000
[ 2215.996728] R13: 00007ffe7bc89ee0 R14: 0000000000000000 R15:
0000000000801000
[ 2216.003862]  </TASK>

I am a bit tired now. I will look at the series again tomorrow to see if
there is something missing.

Cheers,
Longman


2023-02-24 11:55:17

by Jiri Wiesner

[permalink] [raw]
Subject: Re: [PATCH 0/6] locking/rwsem: Rework writer wakeup and handoff

On Thu, Feb 23, 2023 at 08:19:46PM -0500, Waiman Long wrote:
> On 2/23/23 07:26, Peter Zijlstra wrote:
> > Hi,
> >
> > these here few patches boot but are otherwise very much untested. Please test.
>
> However, I got the following task hanging message when doing a kernel build:
> [ 2215.895252] INFO: task pahole:65220 blocked for more than 123 seconds.

I was running locktorture and ran into the same problem as Waiman. It's unrelated to the locktorture workload, though:

[ 1482.886856] INFO: task btrfs-transacti:1073 blocked for more than 491 seconds.
[ 1482.895755] Tainted: G E 6.2.0-pz1 #1
[ 1482.912382] task:btrfs-transacti state:D stack:0 pid:1073 ppid:2 flags:0x00004000
[ 1482.922544] Call Trace:
[ 1482.926074] <TASK>
[ 1482.929211] __schedule+0x3c0/0x1360
[ 1482.954121] schedule+0x5c/0xc0
[ 1482.958428] schedule_preempt_disabled+0x11/0x20
[ 1482.964396] rwsem_down_write_slowpath+0x17c/0x580
[ 1482.975260] down_write+0x57/0x60
[ 1482.979763] __btrfs_tree_lock+0x17/0x90 [btrfs a6f0f85f39d8ec2ab376bf2ae3a09f935847037e]
[ 1482.989779] btrfs_lock_root_node+0x3b/0x90 [btrfs a6f0f85f39d8ec2ab376bf2ae3a09f935847037e]
[ 1483.000082] btrfs_search_slot+0x2b7/0xc70 [btrfs a6f0f85f39d8ec2ab376bf2ae3a09f935847037e]
[ 1483.010267] btrfs_lookup_file_extent+0x4a/0x70 [btrfs a6f0f85f39d8ec2ab376bf2ae3a09f935847037e]
[ 1483.020949] btrfs_drop_extents+0x12e/0xf20 [btrfs a6f0f85f39d8ec2ab376bf2ae3a09f935847037e]
[ 1483.031252] insert_reserved_file_extent+0xec/0x2e0 [btrfs a6f0f85f39d8ec2ab376bf2ae3a09f935847037e]
[ 1483.053705] insert_prealloc_file_extent+0xb9/0x1b0 [btrfs a6f0f85f39d8ec2ab376bf2ae3a09f935847037e]
[ 1483.064774] __btrfs_prealloc_file_range+0x12c/0x420 [btrfs a6f0f85f39d8ec2ab376bf2ae3a09f935847037e]
[ 1483.075941] cache_save_setup+0x26d/0x3d0 [btrfs a6f0f85f39d8ec2ab376bf2ae3a09f935847037e]
[ 1483.086052] btrfs_setup_space_cache+0x9c/0xc0 [btrfs a6f0f85f39d8ec2ab376bf2ae3a09f935847037e]
[ 1483.096648] commit_cowonly_roots+0xd9/0x279 [btrfs a6f0f85f39d8ec2ab376bf2ae3a09f935847037e]
[ 1483.107046] btrfs_commit_transaction+0x8e2/0xe70 [btrfs a6f0f85f39d8ec2ab376bf2ae3a09f935847037e]
[ 1483.128221] transaction_kthread+0x14e/0x1b0 [btrfs a6f0f85f39d8ec2ab376bf2ae3a09f935847037e]
[ 1483.149588] kthread+0xd7/0x100
[ 1483.158891] ret_from_fork+0x29/0x50
[ 1483.163689] </TASK>

--
Jiri Wiesner
SUSE Labs