Simplicity Through Optimization
Channel: Linux.conf.au 2010 -- Wellington, New Zealand
Date: 2014-12-08

Presenter(s): Paul McKenney
URL: http://2010.linux.conf.au/programme/schedule/view_talk/50240

The common wisdom is that high performance comes at the price of increased complexity and degraded maintainability, and with good reason. After all, improved performance usually comes at the expense of complexity from more sophisticated algorithms, optimized handling for special cases, and so on.But there is a school of thought that says that optimization need not always lead to increased complexity. This thought goes back some centuries, at least as early as the famous 1656 quote from Blaise Pascal: "I have only made this letter rather long because I have not had time to make it shorter." Surprising though it might seem, this school of thought does sometimes apply to software, as I learned long ago when converting existing spaghetti code to state-machine form. (And no, state machines are not the solution to all problems: as always, use the right tool for the job!)This talk reports on another example of simplicity through optimization, in the form of a new implementation of preemptable (real-time) RCU that decreases code size by more than 1,000 lines, increases scalability significantly, and improves read-side performance by well over a factor of two, resulting in preemptable RCU having roughly the same read-side performance as classic RCU in a CONFIG_PREEMPT kernel build.This talk will not go into depth on the RCU implementation itself. To get the most from this talk, audience members should be familiar with counting, understand block diagrams, and be able to parse 10-line fragments of C code.

http://lca2010.linux.org.au - http://www.linux.org.au
CC BY-SA - http://creativecommons.org/licenses/by-sa/4.0/legalcode.txt