[LU-1156] improve flock deadlock detection: per-export instead of 1 common list Created: 01/Mar/12  Updated: 21/Nov/12  Resolved: 06/Apr/12

Status: Resolved
Project: Lustre
Component/s: None
Affects Version/s: None
Fix Version/s: Lustre 2.3.0

Type: Improvement Priority: Minor
Reporter: Vitaly Fertman Assignee: WC Triage
Resolution: Fixed Votes: 0
Labels: None

Rank (Obsolete): 4655

 Comments   
Comment by Andreas Dilger [ 01/Mar/12 ]

Vitaly, can you please provide some more information. This sounds like an efficiency improvement - do you have any kind of numbers to indicate how much improvement this provides?

Comment by Vitaly Fertman [ 01/Mar/12 ]

http://review.whamcloud.com/2239

Comment by Vitaly Fertman [ 01/Mar/12 ]

the test:
3000 threads takes by 1 non-conflicnting locks, after that these 3000 threads takes the lock its right neighbour thread has taken, so 3000-th lock gets deadlocked on the 1st one. to check it is dead locked, we need to search the list 3000 times on the last enqueue. this enqueue is done 2000 times. 2000 enqueues (only the deadlocked one is accounted) + 2000*3000 deadlock detections takes for following, in seconds:
===vanilla===
exports: 1 deadlocks: 2000 locks: 3000 time: 148
exports: 2 deadlocks: 2000 locks: 3000 time: 148
exports: 4 deadlocks: 2000 locks: 3000 time: 148
exports: 8 deadlocks: 2000 locks: 3000 time: 148
===per-export locking & list===
exports: 1 deadlocks: 2000 locks: 3000 time: 148
exports: 2 deadlocks: 2000 locks: 3000 time: 85
exports: 4 deadlocks: 2000 locks: 3000 time: 49
exports: 8 deadlocks: 2000 locks: 3000 time: 27

Comment by Build Master (Inactive) [ 06/Apr/12 ]

Integrated in lustre-master » x86_64,client,sles11,inkernel #478
LU-1156 ldlm: per-export waiting flock lists for deadlock detection (Revision 2179aa60137557a8a289ee3b105a5efa7db90ac8)

Result = SUCCESS
Oleg Drokin : 2179aa60137557a8a289ee3b105a5efa7db90ac8
Files :

  • lustre/obdclass/genops.c
  • lustre/ldlm/ldlm_flock.c
  • lustre/include/lustre_export.h
Comment by Build Master (Inactive) [ 06/Apr/12 ]

Integrated in lustre-master » x86_64,server,el5,ofa #478
LU-1156 ldlm: per-export waiting flock lists for deadlock detection (Revision 2179aa60137557a8a289ee3b105a5efa7db90ac8)

Result = SUCCESS
Oleg Drokin : 2179aa60137557a8a289ee3b105a5efa7db90ac8
Files :

  • lustre/obdclass/genops.c
  • lustre/include/lustre_export.h
  • lustre/ldlm/ldlm_flock.c
Comment by Build Master (Inactive) [ 06/Apr/12 ]

Integrated in lustre-master » i686,server,el5,ofa #478
LU-1156 ldlm: per-export waiting flock lists for deadlock detection (Revision 2179aa60137557a8a289ee3b105a5efa7db90ac8)

Result = SUCCESS
Oleg Drokin : 2179aa60137557a8a289ee3b105a5efa7db90ac8
Files :

  • lustre/obdclass/genops.c
  • lustre/include/lustre_export.h
  • lustre/ldlm/ldlm_flock.c
Comment by Build Master (Inactive) [ 06/Apr/12 ]

Integrated in lustre-master » x86_64,server,el6,ofa #478
LU-1156 ldlm: per-export waiting flock lists for deadlock detection (Revision 2179aa60137557a8a289ee3b105a5efa7db90ac8)

Result = SUCCESS
Oleg Drokin : 2179aa60137557a8a289ee3b105a5efa7db90ac8
Files :

  • lustre/ldlm/ldlm_flock.c
  • lustre/include/lustre_export.h
  • lustre/obdclass/genops.c
Comment by Build Master (Inactive) [ 06/Apr/12 ]

Integrated in lustre-master » i686,server,el6,inkernel #478
LU-1156 ldlm: per-export waiting flock lists for deadlock detection (Revision 2179aa60137557a8a289ee3b105a5efa7db90ac8)

Result = SUCCESS
Oleg Drokin : 2179aa60137557a8a289ee3b105a5efa7db90ac8
Files :

  • lustre/include/lustre_export.h
  • lustre/ldlm/ldlm_flock.c
  • lustre/obdclass/genops.c
Comment by Build Master (Inactive) [ 06/Apr/12 ]

Integrated in lustre-master » x86_64,client,el5,ofa #478
LU-1156 ldlm: per-export waiting flock lists for deadlock detection (Revision 2179aa60137557a8a289ee3b105a5efa7db90ac8)

Result = SUCCESS
Oleg Drokin : 2179aa60137557a8a289ee3b105a5efa7db90ac8
Files :

  • lustre/include/lustre_export.h
  • lustre/ldlm/ldlm_flock.c
  • lustre/obdclass/genops.c
Comment by Build Master (Inactive) [ 06/Apr/12 ]

Integrated in lustre-master » i686,client,el5,inkernel #478
LU-1156 ldlm: per-export waiting flock lists for deadlock detection (Revision 2179aa60137557a8a289ee3b105a5efa7db90ac8)

Result = SUCCESS
Oleg Drokin : 2179aa60137557a8a289ee3b105a5efa7db90ac8
Files :

  • lustre/ldlm/ldlm_flock.c
  • lustre/include/lustre_export.h
  • lustre/obdclass/genops.c
Comment by Build Master (Inactive) [ 06/Apr/12 ]

Integrated in lustre-master » x86_64,client,el6,ofa #478
LU-1156 ldlm: per-export waiting flock lists for deadlock detection (Revision 2179aa60137557a8a289ee3b105a5efa7db90ac8)

Result = SUCCESS
Oleg Drokin : 2179aa60137557a8a289ee3b105a5efa7db90ac8
Files :

  • lustre/obdclass/genops.c
  • lustre/ldlm/ldlm_flock.c
  • lustre/include/lustre_export.h
Comment by Build Master (Inactive) [ 06/Apr/12 ]

Integrated in lustre-master » i686,server,el6,ofa #478
LU-1156 ldlm: per-export waiting flock lists for deadlock detection (Revision 2179aa60137557a8a289ee3b105a5efa7db90ac8)

Result = SUCCESS
Oleg Drokin : 2179aa60137557a8a289ee3b105a5efa7db90ac8
Files :

  • lustre/include/lustre_export.h
  • lustre/obdclass/genops.c
  • lustre/ldlm/ldlm_flock.c
Comment by Build Master (Inactive) [ 06/Apr/12 ]

Integrated in lustre-master » x86_64,client,el6,inkernel #478
LU-1156 ldlm: per-export waiting flock lists for deadlock detection (Revision 2179aa60137557a8a289ee3b105a5efa7db90ac8)

Result = SUCCESS
Oleg Drokin : 2179aa60137557a8a289ee3b105a5efa7db90ac8
Files :

  • lustre/include/lustre_export.h
  • lustre/obdclass/genops.c
  • lustre/ldlm/ldlm_flock.c
Comment by Build Master (Inactive) [ 06/Apr/12 ]

Integrated in lustre-master » x86_64,server,el5,inkernel #478
LU-1156 ldlm: per-export waiting flock lists for deadlock detection (Revision 2179aa60137557a8a289ee3b105a5efa7db90ac8)

Result = SUCCESS
Oleg Drokin : 2179aa60137557a8a289ee3b105a5efa7db90ac8
Files :

  • lustre/include/lustre_export.h
  • lustre/ldlm/ldlm_flock.c
  • lustre/obdclass/genops.c
Comment by Build Master (Inactive) [ 06/Apr/12 ]

Integrated in lustre-master » i686,client,el5,ofa #478
LU-1156 ldlm: per-export waiting flock lists for deadlock detection (Revision 2179aa60137557a8a289ee3b105a5efa7db90ac8)

Result = SUCCESS
Oleg Drokin : 2179aa60137557a8a289ee3b105a5efa7db90ac8
Files :

  • lustre/ldlm/ldlm_flock.c
  • lustre/obdclass/genops.c
  • lustre/include/lustre_export.h
Comment by Build Master (Inactive) [ 06/Apr/12 ]

Integrated in lustre-master » i686,client,el6,ofa #478
LU-1156 ldlm: per-export waiting flock lists for deadlock detection (Revision 2179aa60137557a8a289ee3b105a5efa7db90ac8)

Result = SUCCESS
Oleg Drokin : 2179aa60137557a8a289ee3b105a5efa7db90ac8
Files :

  • lustre/ldlm/ldlm_flock.c
  • lustre/obdclass/genops.c
  • lustre/include/lustre_export.h
Comment by Build Master (Inactive) [ 06/Apr/12 ]

Integrated in lustre-master » x86_64,client,el5,inkernel #478
LU-1156 ldlm: per-export waiting flock lists for deadlock detection (Revision 2179aa60137557a8a289ee3b105a5efa7db90ac8)

Result = SUCCESS
Oleg Drokin : 2179aa60137557a8a289ee3b105a5efa7db90ac8
Files :

  • lustre/ldlm/ldlm_flock.c
  • lustre/include/lustre_export.h
  • lustre/obdclass/genops.c
Comment by Build Master (Inactive) [ 06/Apr/12 ]

Integrated in lustre-master » x86_64,server,el6,inkernel #478
LU-1156 ldlm: per-export waiting flock lists for deadlock detection (Revision 2179aa60137557a8a289ee3b105a5efa7db90ac8)

Result = SUCCESS
Oleg Drokin : 2179aa60137557a8a289ee3b105a5efa7db90ac8
Files :

  • lustre/obdclass/genops.c
  • lustre/include/lustre_export.h
  • lustre/ldlm/ldlm_flock.c
Comment by Build Master (Inactive) [ 06/Apr/12 ]

Integrated in lustre-master » i686,server,el5,inkernel #478
LU-1156 ldlm: per-export waiting flock lists for deadlock detection (Revision 2179aa60137557a8a289ee3b105a5efa7db90ac8)

Result = SUCCESS
Oleg Drokin : 2179aa60137557a8a289ee3b105a5efa7db90ac8
Files :

  • lustre/ldlm/ldlm_flock.c
  • lustre/include/lustre_export.h
  • lustre/obdclass/genops.c
Comment by Build Master (Inactive) [ 06/Apr/12 ]

Integrated in lustre-master » i686,client,el6,inkernel #478
LU-1156 ldlm: per-export waiting flock lists for deadlock detection (Revision 2179aa60137557a8a289ee3b105a5efa7db90ac8)

Result = SUCCESS
Oleg Drokin : 2179aa60137557a8a289ee3b105a5efa7db90ac8
Files :

  • lustre/ldlm/ldlm_flock.c
  • lustre/obdclass/genops.c
  • lustre/include/lustre_export.h
Comment by Peter Jones [ 06/Apr/12 ]

Landed for 2.3

Comment by Build Master (Inactive) [ 02/May/12 ]

Integrated in lustre-dev » x86_64,client,el5,inkernel #340
LU-1156 ldlm: per-export waiting flock lists for deadlock detection (Revision 2179aa60137557a8a289ee3b105a5efa7db90ac8)

Result = SUCCESS
Oleg Drokin : 2179aa60137557a8a289ee3b105a5efa7db90ac8
Files :

  • lustre/ldlm/ldlm_flock.c
  • lustre/include/lustre_export.h
  • lustre/obdclass/genops.c
Comment by Build Master (Inactive) [ 02/May/12 ]

Integrated in lustre-dev » i686,client,el6,inkernel #340
LU-1156 ldlm: per-export waiting flock lists for deadlock detection (Revision 2179aa60137557a8a289ee3b105a5efa7db90ac8)

Result = SUCCESS
Oleg Drokin : 2179aa60137557a8a289ee3b105a5efa7db90ac8
Files :

  • lustre/include/lustre_export.h
  • lustre/ldlm/ldlm_flock.c
  • lustre/obdclass/genops.c
Comment by Build Master (Inactive) [ 02/May/12 ]

Integrated in lustre-dev » i686,server,el5,inkernel #340
LU-1156 ldlm: per-export waiting flock lists for deadlock detection (Revision 2179aa60137557a8a289ee3b105a5efa7db90ac8)

Result = SUCCESS
Oleg Drokin : 2179aa60137557a8a289ee3b105a5efa7db90ac8
Files :

  • lustre/obdclass/genops.c
  • lustre/ldlm/ldlm_flock.c
  • lustre/include/lustre_export.h
Comment by Build Master (Inactive) [ 02/May/12 ]

Integrated in lustre-dev » x86_64,server,el6,inkernel #340
LU-1156 ldlm: per-export waiting flock lists for deadlock detection (Revision 2179aa60137557a8a289ee3b105a5efa7db90ac8)

Result = SUCCESS
Oleg Drokin : 2179aa60137557a8a289ee3b105a5efa7db90ac8
Files :

  • lustre/obdclass/genops.c
  • lustre/include/lustre_export.h
  • lustre/ldlm/ldlm_flock.c
Comment by Build Master (Inactive) [ 02/May/12 ]

Integrated in lustre-dev » i686,client,el5,inkernel #340
LU-1156 ldlm: per-export waiting flock lists for deadlock detection (Revision 2179aa60137557a8a289ee3b105a5efa7db90ac8)

Result = SUCCESS
Oleg Drokin : 2179aa60137557a8a289ee3b105a5efa7db90ac8
Files :

  • lustre/ldlm/ldlm_flock.c
  • lustre/include/lustre_export.h
  • lustre/obdclass/genops.c
Comment by Build Master (Inactive) [ 02/May/12 ]

Integrated in lustre-dev » x86_64,server,el5,inkernel #340
LU-1156 ldlm: per-export waiting flock lists for deadlock detection (Revision 2179aa60137557a8a289ee3b105a5efa7db90ac8)

Result = SUCCESS
Oleg Drokin : 2179aa60137557a8a289ee3b105a5efa7db90ac8
Files :

  • lustre/obdclass/genops.c
  • lustre/ldlm/ldlm_flock.c
  • lustre/include/lustre_export.h
Comment by Build Master (Inactive) [ 02/May/12 ]

Integrated in lustre-dev » x86_64,client,el6,inkernel #340
LU-1156 ldlm: per-export waiting flock lists for deadlock detection (Revision 2179aa60137557a8a289ee3b105a5efa7db90ac8)

Result = SUCCESS
Oleg Drokin : 2179aa60137557a8a289ee3b105a5efa7db90ac8
Files :

  • lustre/obdclass/genops.c
  • lustre/include/lustre_export.h
  • lustre/ldlm/ldlm_flock.c
Comment by Nathan Rutman [ 21/Nov/12 ]

Xyratex-bug-id: MRP-382

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