[0/6] locking/rwsem: Rework writer wakeup and handoff

Message ID 20230223122642.491637862@infradead.org
Headers
Series locking/rwsem: Rework writer wakeup and handoff |

Message

Peter Zijlstra Feb. 23, 2023, 12:26 p.m. UTC
  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(-)
  

Comments

Waiman Long Feb. 24, 2023, 1:19 a.m. UTC | #1
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
  
Jiri Wiesner Feb. 24, 2023, 11:55 a.m. UTC | #2
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>