summerofcode2012:locking

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
summerofcode2012:locking [2012/05/23 22:30] – GregMillersummerofcode2012:locking [2012/05/23 22:45] (current) – GregMiller
Line 7: Line 7:
 One problematic area is the lack of lock names for the pthread locks. Default names will be automatically generated, and additional functions pthread_{mutex,rwlock,etc}attr_setname_np() and pthread_{mutex,rwlock,etc}attr_setname_np() will be added to allow for more user-friendly names to be selected. One problematic area is the lack of lock names for the pthread locks. Default names will be automatically generated, and additional functions pthread_{mutex,rwlock,etc}attr_setname_np() and pthread_{mutex,rwlock,etc}attr_setname_np() will be added to allow for more user-friendly names to be selected.
  
-Profiling statistics will be available via an external XML file and a pair of new functions, pthread_getprofiledata_np(). Lock order reversals will be logged to an external XML file as well.+Profiling statistics will be available via an external XML file and a pair of new functions, pthread_getprofiledata_np() and pthread_resetprofiledata_np(). Lock order reversals will be logged to an external XML file as well.
  
 ===== Approach to solving the problem ===== ===== Approach to solving the problem =====
  
-(Details as to how you intend to approach the problem, if applicable.  May include ideas as to how to break the problem down into smaller parts, or notes on research you need to do before settling on your final approach to solving the problem)+The profiling and lock order verification will be implemented separately. 
 + 
 +Profiling will be done via an instrumented version of the pthread library (libthr_profile), while lock order verification will be done with a wrapper library (libwitness). The use of a wrapper library should make the witness library more portable and easier to maintain, while the use of an instrumented library allows the lock profiling code to collect statistics that can only be obtained in an intrusive fashion.
  
 ===== Deliverables ===== ===== Deliverables =====
Line 36: Line 38:
 ===== Test Plan ===== ===== Test Plan =====
  
-(List of steps you plan to use to test your work, as discussed with your mentor)+A test suite will be provided with a number of small cases designed to trigger the monitored scenarios and verify that the values returned by the library API functions are correct. These will be developed concurrently with the data recording functionality. 
 + 
 +The data logging will be tested by reading back the statistics file can comparing the results to those returned by the debugging APIs. 
 + 
 +The data viewer will probably be tested manually, as automation of the testing process would likely prove to be difficult to do properly.
  
 ===== The Code ===== ===== The Code =====
  • summerofcode2012/locking.1337812211.txt.gz
  • Last modified: 2012/05/23 22:30
  • by GregMiller