[LU-11435] add contention check and accounting for IBITS locks Created: 26/Sep/18  Updated: 16/Jan/22  Resolved: 16/Jan/22

Status: Closed
Project: Lustre
Component/s: None
Affects Version/s: None
Fix Version/s: None

Type: Improvement Priority: Minor
Reporter: Mikhail Pershin Assignee: Mikhail Pershin
Resolution: Won't Do Votes: 0
Labels: None

Issue Links:
Blocker
is blocking LU-9133 Use only MDS-local time when determin... Open
Related
is related to LU-12079 lockless IO stucks if client has othe... Resolved
Rank (Obsolete): 9223372036854775807

 Description   

Contention check is needed for IBITS locks too mainly for DOM locks but it also can be used in other cases like LU-9133 describes



 Comments   
Comment by Mikhail Pershin [ 26/Sep/18 ]

this feature is also needed to properly switch client IO to lockless mode when needed.

Comment by Gerrit Updater [ 26/Sep/18 ]

Mike Pershin (mpershin@whamcloud.com) uploaded a new patch: https://review.whamcloud.com/33243
Subject: LU-11435 ldlm: add contention check for IBITS locks
Project: fs/lustre-release
Branch: master
Current Patch Set: 1
Commit: 5a3e446bec6714c1393ac88cfff42a70545d2c7e

Comment by Gerrit Updater [ 26/Sep/18 ]

Mike Pershin (mpershin@whamcloud.com) uploaded a new patch: https://review.whamcloud.com/33244
Subject: LU-11435 mdt: check lock contention for MDT IO locks
Project: fs/lustre-release
Branch: master
Current Patch Set: 1
Commit: 4325cbead61c1317f56b1dbc01e1dceb807244ea

Comment by Oleg Drokin [ 25/Feb/19 ]

This was observed once on Jan 15th on master-next:

[40346.537877] Lustre: DEBUG MARKER: == sanity-dom test fsx: Dual-mount fsx with DoM files ================================================ 16:43:16 (1547588596)
[40347.509286] LustreError: 11-0: lustre-MDT0000-mdc-ffff8802d13c5800: operation ldlm_enqueue to node 0@lo failed: rc = -87
[40347.533755] LustreError: 17033:0:(osc_cache.c:1147:osc_extent_make_ready()) ASSERTION( last->oap_page_off + last_oap_count <= ((1UL) << 12) ) failed: 
[40347.536029] LustreError: 17033:0:(osc_cache.c:1147:osc_extent_make_ready()) LBUG
[40347.538039] Pid: 17033, comm: fsx 3.10.0-7.6-debug #1 SMP Wed Nov 7 21:55:08 EST 2018
[40347.543706] Call Trace:
[40347.544629]  [<ffffffffa02177dc>] libcfs_call_trace+0x8c/0xc0 [libcfs]
[40347.546434]  [<ffffffffa021788c>] lbug_with_loc+0x4c/0xa0 [libcfs]
[40347.547963]  [<ffffffffa07f739e>] osc_extent_make_ready+0xc3e/0xe70 [osc]
[40347.549722]  [<ffffffffa07f9a0f>] osc_io_unplug0+0xd9f/0x1920 [osc]
[40347.550987]  [<ffffffffa07fe540>] osc_cache_writeback_range+0xc20/0x1260 [osc]
[40347.553316]  [<ffffffffa08c41b7>] mdc_lock_flush+0x2e7/0x3f0 [mdc]
[40347.555112]  [<ffffffffa08c42fd>] mdc_lock_lockless_cancel+0x3d/0xf0 [mdc]
[40347.556897]  [<ffffffffa0398e65>] cl_lock_cancel+0x75/0x160 [obdclass]
[40347.558872]  [<ffffffffa08ef659>] lov_lock_cancel+0x99/0x190 [lov]
[40347.560260]  [<ffffffffa0398e65>] cl_lock_cancel+0x75/0x160 [obdclass]
[40347.561984]  [<ffffffffa0399352>] cl_lock_release+0x52/0x140 [obdclass]
[40347.563531]  [<ffffffffa039cd51>] cl_io_unlock+0x131/0x280 [obdclass]
[40347.564861]  [<ffffffffa039d7a5>] cl_io_loop+0xe5/0x1c0 [obdclass]
[40347.566183]  [<ffffffffa14b4b7b>] ll_file_io_generic+0x63b/0xcb0 [lustre]
[40347.567974]  [<ffffffffa14b5761>] ll_file_aio_write+0x391/0x840 [lustre]
[40347.569329]  [<ffffffffa14b5cb4>] ll_file_write+0xa4/0x170 [lustre]
[40347.570629]  [<ffffffff812362bd>] vfs_write+0xbd/0x1e0
[40347.572556]  [<ffffffff812370bf>] SyS_write+0x7f/0xf0
[40347.585137]  [<ffffffff817c4e15>] system_call_fastpath+0x1c/0x21
[40347.587908]  [<ffffffffffffffff>] 0xffffffffffffffff
Comment by Mikhail Pershin [ 16/Jan/22 ]

Lockless code is outdated, see LU-14838

Generated at Sat Feb 10 02:43:51 UTC 2024 using Jira 9.4.14#940014-sha1:734e6822bbf0d45eff9af51f82432957f73aa32c.