Check out the new USENIX Web site. next up previous
Next: Conclusions and Future Plans Up: RCU Implementation of System Previous: Semaphore Performance


Semaphore Complexity

The RCU changes to the System V IPC implementations inflicted less than 5% expansion of code size, as shown in Table 6. This change increased the overall code size by only 151 lines. The RCU implememtation itself (which is also used by both module unloading and the IP route cache) adds only an additional 408 lines of code. This order-of-magnitude performance benefit is well worth the modest increase in complexity.


Table 6: Semaphore Change in Lines of Code
    Total Lines  
  Ins/Del/Delta New Old % Delta
msg.c 23 26 -3 885 888 -0.34%
sem.c 29 30 -1 1289 1290 -0.08%
shm.c 102 69 33 785 752 4.39%
util.c 178 13 165 581 416 39.66%
util.h 10 53 -43 64 107 -40.19%
Total 342 191 151 3604 3453 4.37%


Of course, the system-level performance increase is a much smaller 5.3%. On the other hand, the 151-line increase in code size is an insignificant fraction of the 11.7 million lines of code in the full kernel, and even this does not include the size of the database and other software involved in the benchmark.


next up previous
Next: Conclusions and Future Plans Up: RCU Implementation of System Previous: Semaphore Performance
Paul McKenney 2003-03-28