10.07.2015 Views

Is Parallel Programming Hard, And, If So, What Can You Do About It?

Is Parallel Programming Hard, And, If So, What Can You Do About It?

Is Parallel Programming Hard, And, If So, What Can You Do About It?

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

CONTENTSixE.7.1 Introduction to Preemptable RCU and dynticks . . . . . . . . . . . . . . . . . . . . . . 255E.7.2 Validating Preemptable RCU and dynticks . . . . . . . . . . . . . . . . . . . . . . . . 257E.7.3 Lessons (Re)Learned . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 265E.8 Simplicity Avoids Formal Verification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 266E.8.1 State Variables for Simplified Dynticks Interface . . . . . . . . . . . . . . . . . . . . . 266E.8.2 Entering and Leaving Dynticks-Idle Mode . . . . . . . . . . . . . . . . . . . . . . . . . 266E.8.3 NM<strong>Is</strong> From Dynticks-Idle Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 267E.8.4 Interrupts From Dynticks-Idle Mode . . . . . . . . . . . . . . . . . . . . . . . . . . . . 267E.8.5 Checking For Dynticks Quiescent States . . . . . . . . . . . . . . . . . . . . . . . . . . 267E.8.6 Discussion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 268E.9 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 268F Answers to Quick Quizzes 271F.1 Chapter 1: Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 271F.2 Chapter 2: <strong>Hard</strong>ware and its Habits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 275F.3 Chapter 3: Tools of the Trade . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 277F.4 Chapter 4: Counting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 280F.5 Chapter 5: Partitioning and Synchronization Design . . . . . . . . . . . . . . . . . . . . . . . 290F.6 Chapter 6: Locking . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 293F.7 Chapter 8: Deferred Processing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 294F.8 Chapter 9: Applying RCU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 306F.9 Chapter 12: Advanced Synchronization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 307F.10 Chapter 13: Ease of Use . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 309F.11 Chapter 15: Conflicting Visions of the Future . . . . . . . . . . . . . . . . . . . . . . . . . . . 310F.12 Chapter A: Important Questions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 310F.13 Chapter B: Synchronization Primitives . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 310F.14 Chapter C: Why Memory Barriers? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 311F.15 Chapter D: Read-Copy Update Implementations . . . . . . . . . . . . . . . . . . . . . . . . . 313F.16 Chapter E: Formal Verification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 325G Glossary 329H Credits 345H.1 Authors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 345H.2 Reviewers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 345H.3 Machine Owners . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 345H.4 Original Publications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 346H.5 Figure Credits . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 346H.6 Other Support . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 346

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!