Differences
This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision Next revision | Previous revision | ||
| summerofcode2012:locking [2012/05/23 22:09] – GregMiller | summerofcode2012:locking [2012/05/23 22:45] (current) – GregMiller | ||
|---|---|---|---|
| Line 3: | Line 3: | ||
| ===== Project description ===== | ===== Project description ===== | ||
| - | (Two or three paragraphs about your project, the problem you are trying | + | The goal of this project |
| + | |||
| + | One problematic area is the lack of lock names for the pthread locks. Default names will be automatically generated, and additional functions pthread_{mutex, | ||
| + | |||
| + | 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 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 | ||
| ===== Deliverables ===== | ===== Deliverables ===== | ||
| - | The project will be broken into the following distinct components: | + | The project will provide: |
| - | * Profiling | + | * Lock profiling |
| * Lock order reversal recording and access via library API | * Lock order reversal recording and access via library API | ||
| * Logging of statistics to a file | * Logging of statistics to a file | ||
| Line 32: | 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 |
| + | |||
| + | The data logging will be tested by reading back the statistics file can comparing the results | ||
| + | |||
| + | 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 ===== | ||