abstraction, reality checks, and rcukohler/class/aosref/mckenne… · read-copy update (rcu) ......

50
1 Abstraction, Reality Checks, and RCU Paul E. McKenney IBM Beaverton University of Toronto Cider Seminar July 26, 2005 Copyright © 2005 IBM Corporation

Upload: others

Post on 17-Aug-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Abstraction, Reality Checks, and RCUkohler/class/aosref/mckenne… · Read-Copy Update (RCU) ... 8-CPU 1.45GHz PPC Operation Nanoseconds Instruction 0.24 Clock Cycle 0.69 Atomic Increment

1

Abstraction, Reality Checks, and RCU

Paul E. McKenneyIBM Beaverton

University of Toronto Cider SeminarJuly 26, 2005

Copyright © 2005 IBM Corporation

Page 2: Abstraction, Reality Checks, and RCUkohler/class/aosref/mckenne… · Read-Copy Update (RCU) ... 8-CPU 1.45GHz PPC Operation Nanoseconds Instruction 0.24 Clock Cycle 0.69 Atomic Increment

2

Overview

● Moore's Law and SMP Software● Non-Blocking Synchronization (NBS)● Read-Copy Update (RCU)● Summary

Page 3: Abstraction, Reality Checks, and RCUkohler/class/aosref/mckenne… · Read-Copy Update (RCU) ... 8-CPU 1.45GHz PPC Operation Nanoseconds Instruction 0.24 Clock Cycle 0.69 Atomic Increment

3

Moore's Law and SMP Software

Page 4: Abstraction, Reality Checks, and RCUkohler/class/aosref/mckenne… · Read-Copy Update (RCU) ... 8-CPU 1.45GHz PPC Operation Nanoseconds Instruction 0.24 Clock Cycle 0.69 Atomic Increment

4

Instruction Speed Increased

Page 5: Abstraction, Reality Checks, and RCUkohler/class/aosref/mckenne… · Read-Copy Update (RCU) ... 8-CPU 1.45GHz PPC Operation Nanoseconds Instruction 0.24 Clock Cycle 0.69 Atomic Increment

5

Synchronization Speed Decreased

Page 6: Abstraction, Reality Checks, and RCUkohler/class/aosref/mckenne… · Read-Copy Update (RCU) ... 8-CPU 1.45GHz PPC Operation Nanoseconds Instruction 0.24 Clock Cycle 0.69 Atomic Increment

6

Critical-Section Efficiency

Lock Acquisition (Ta )

Critical Section (Tc )

Lock Release (Tr )

Efficiency =T

c

Tc+T

a+T

r

Assuming negligible contention and no caching effects in critical section!Reality Check #1: this is not your father's CPU!!!

Page 7: Abstraction, Reality Checks, and RCUkohler/class/aosref/mckenne… · Read-Copy Update (RCU) ... 8-CPU 1.45GHz PPC Operation Nanoseconds Instruction 0.24 Clock Cycle 0.69 Atomic Increment

7

Instruction/Pipeline Costs on a8-CPU 1.45GHz PPC

Operation NanosecondsInstruction 0.24Clock Cycle 0.69Atomic Increment 42.09Cmpxchg Blind Cache Transfer 56.80Cmpxchg Cache Transfer and Invalidate 59.10SMP Memory Barrier (eieio) 75.53Full Memory Barrier (sync) 92.16CPU-Local Lock 243.10

Page 8: Abstraction, Reality Checks, and RCUkohler/class/aosref/mckenne… · Read-Copy Update (RCU) ... 8-CPU 1.45GHz PPC Operation Nanoseconds Instruction 0.24 Clock Cycle 0.69 Atomic Increment

8

Visual Demonstration of Latency

SMP MB (eieio):75.53 ns, 314.7 instsFull MB (sync): 92.16 ns, 384.5 insts

Each nanosecond representsup to about four instructions

Page 9: Abstraction, Reality Checks, and RCUkohler/class/aosref/mckenne… · Read-Copy Update (RCU) ... 8-CPU 1.45GHz PPC Operation Nanoseconds Instruction 0.24 Clock Cycle 0.69 Atomic Increment

9

What is Going On? (1/3)● Taller memory hierarchies

– Memory speeds have not kept up with CPU speeds● 1984: no caches needed, since instructions slower than

memory accesses● 2005: 3-4 level cache hierarchies, since instructions orders

of magnitude faster than memory accesses● Synchronization requires consistent view of data across CPUs, in

other words, CPU-to-CPU communication– Unlike normal instructions, synchronization operations tend

not to hit in top-level cache– Hence, they are orders of magnitude slower than normal

instructions because of memory latency

Page 10: Abstraction, Reality Checks, and RCUkohler/class/aosref/mckenne… · Read-Copy Update (RCU) ... 8-CPU 1.45GHz PPC Operation Nanoseconds Instruction 0.24 Clock Cycle 0.69 Atomic Increment

10

What is Going On? (2/3)● Longer pipelines

– 1984: Many clocks per instruction– 2005: Many instructions per clock – 20-stage pipelines

● Modern super-scalar CPUs execute instructions out of order in order to keep their pipelines full– But musn't reorder a critical section before its lock!!!

● Therefore, synchronization operations must stall the pipeline, decreasing performance

Page 11: Abstraction, Reality Checks, and RCUkohler/class/aosref/mckenne… · Read-Copy Update (RCU) ... 8-CPU 1.45GHz PPC Operation Nanoseconds Instruction 0.24 Clock Cycle 0.69 Atomic Increment

11

What is Going On? (3/3)● 1984: The main issue was lock contention● 2005: Even if lock contention is eliminated, critical-

section efficiency must be addressed!!!– Even if the lock is always free when acquired,

performance is seriously degraded– Some hardware guys tell me that this will all soon be

better...● But I will believe it when I see it!!!

Page 12: Abstraction, Reality Checks, and RCUkohler/class/aosref/mckenne… · Read-Copy Update (RCU) ... 8-CPU 1.45GHz PPC Operation Nanoseconds Instruction 0.24 Clock Cycle 0.69 Atomic Increment

12

What is Going On?

CPU CPU

Memory

CPU CPU

Memory

L1 Cache L1 Cache

L2 Cache L2 Cache

1984 2005

Page 13: Abstraction, Reality Checks, and RCUkohler/class/aosref/mckenne… · Read-Copy Update (RCU) ... 8-CPU 1.45GHz PPC Operation Nanoseconds Instruction 0.24 Clock Cycle 0.69 Atomic Increment

13

Forces Acting on SMP Efficiency

SMP Efficiency

HardwareThreading

MulticoreDies

Memory-SystemPerformance

SystemSize

HistoricTrends

CPU ClockFrequency

Page 14: Abstraction, Reality Checks, and RCUkohler/class/aosref/mckenne… · Read-Copy Update (RCU) ... 8-CPU 1.45GHz PPC Operation Nanoseconds Instruction 0.24 Clock Cycle 0.69 Atomic Increment

14

Locking Performance

Page 15: Abstraction, Reality Checks, and RCUkohler/class/aosref/mckenne… · Read-Copy Update (RCU) ... 8-CPU 1.45GHz PPC Operation Nanoseconds Instruction 0.24 Clock Cycle 0.69 Atomic Increment

15

Performance Comparison:What Benchmark to Use?

● Focus on operating-system kernels– Many read-mostly hash tables

● Hash-table mini-benchmark– Dense array of buckets– Doubly-linked hash chains– One element per hash chain

● You do tune your hash tables, don't you???

Page 16: Abstraction, Reality Checks, and RCUkohler/class/aosref/mckenne… · Read-Copy Update (RCU) ... 8-CPU 1.45GHz PPC Operation Nanoseconds Instruction 0.24 Clock Cycle 0.69 Atomic Increment

16

How to Evaluate Performance?

● Mix of operations:– Search– Delete followed by reinsertion: maintain loading– Random run lengths for specified mix

● (See thesis)● Start with pure search workload (read only)● Run on 8-CPU 1.45GHz PPC system

Page 17: Abstraction, Reality Checks, and RCUkohler/class/aosref/mckenne… · Read-Copy Update (RCU) ... 8-CPU 1.45GHz PPC Operation Nanoseconds Instruction 0.24 Clock Cycle 0.69 Atomic Increment

17

Locking Performance

Reality Check #2:Extra CPUs not buying much! Note: workload fits in cache.

Page 18: Abstraction, Reality Checks, and RCUkohler/class/aosref/mckenne… · Read-Copy Update (RCU) ... 8-CPU 1.45GHz PPC Operation Nanoseconds Instruction 0.24 Clock Cycle 0.69 Atomic Increment

18

Do Not Use rwlock_t for Short Read-Side Critical Sections

CPU 0

CPU 1

Rea

d-A

cqu

ire

Read-SideCritical Section

Me

mo

ry B

arr

ier

Rea

d-A

cqu

ire

Mem

ory

Ba

rrie

r

Rea

d-A

cqu

ire

Mem

ory

Ba

rrie

r

Rea

d-A

cqu

ire

Mem

ory

Ba

rrie

r

Read-SideCritical Section

Reality Check #3: Parallel reader access isn't.

Page 19: Abstraction, Reality Checks, and RCUkohler/class/aosref/mckenne… · Read-Copy Update (RCU) ... 8-CPU 1.45GHz PPC Operation Nanoseconds Instruction 0.24 Clock Cycle 0.69 Atomic Increment

19

Non-Blocking Synchronization (NBS)

Page 20: Abstraction, Reality Checks, and RCUkohler/class/aosref/mckenne… · Read-Copy Update (RCU) ... 8-CPU 1.45GHz PPC Operation Nanoseconds Instruction 0.24 Clock Cycle 0.69 Atomic Increment

20

What About Non-Blocking Synchronization?

● What is non-blocking synchronization (NBS)?– Roll back to resolve conflicting changes instead of

spinning or blocking– Use atomic instructions to hide complex updates

behind a single commit point● Readers and writers use atomic instructions such as

compare-and-swap or LL/SC● Simple “NBS” algorithms in heavy use

– Atomic-instruction-based algorithms

Page 21: Abstraction, Reality Checks, and RCUkohler/class/aosref/mckenne… · Read-Copy Update (RCU) ... 8-CPU 1.45GHz PPC Operation Nanoseconds Instruction 0.24 Clock Cycle 0.69 Atomic Increment

21

Why Not NBS All The Time?

Reality check #4: the 1980s ended a long time ago...

Operation NanosecondsInstruction 0.24Clock Cycle 0.69Atomic Increment 42.09Cmpxchg Blind Cache Transfer 56.80Cmpxchg Cache Transfer and Invalidate 59.10SMP Memory Barrier (eieio) 75.53Full Memory Barrier (sync) 92.16

Page 22: Abstraction, Reality Checks, and RCUkohler/class/aosref/mckenne… · Read-Copy Update (RCU) ... 8-CPU 1.45GHz PPC Operation Nanoseconds Instruction 0.24 Clock Cycle 0.69 Atomic Increment

22

When to Use NBS?

● Simple NBS algorithm is available– Split counters (strictly speaking, only by 1)

● More on this later...– Simple queue/stack management– Especially if NBS constraints may be relaxed!

● Workload is update-heavy, but simple– NBS's use of atomic instructions and memory barriers

not causing gratuitous performance pain– Complexity of “Macho NBS” avoided

Page 23: Abstraction, Reality Checks, and RCUkohler/class/aosref/mckenne… · Read-Copy Update (RCU) ... 8-CPU 1.45GHz PPC Operation Nanoseconds Instruction 0.24 Clock Cycle 0.69 Atomic Increment

23

NBS Constraints

● Progress guarantees in face of task failure– Everyone makes progress: wait free– Someone makes progress: lock free– Someone makes progress in absence of contention:

obstruction free– Some progress, but...

● Linearizability– Everyone agrees on all intermediate states

● Reality check #5:– Both constraints are usually irrelevant!!!

Page 24: Abstraction, Reality Checks, and RCUkohler/class/aosref/mckenne… · Read-Copy Update (RCU) ... 8-CPU 1.45GHz PPC Operation Nanoseconds Instruction 0.24 Clock Cycle 0.69 Atomic Increment

24

How Can Progress Guarantees Possibly Be Irrelevant???

● Failure due to software bug– What fraction of software bugs are fail-stop?

● “Failure” due to preemption/interrupt– Scheduler-conscious synchronization

● Available in all commercial Unix-like systems● Including Linux, AIX, Solaris, HP-UX, DYNIX/ptx, ...

● “Failure” due to page fault– It is 2005. Over-provision memory. Get over it.– If the page is really nonresident, everyone faults!

● Production FT systems use locking

Page 25: Abstraction, Reality Checks, and RCUkohler/class/aosref/mckenne… · Read-Copy Update (RCU) ... 8-CPU 1.45GHz PPC Operation Nanoseconds Instruction 0.24 Clock Cycle 0.69 Atomic Increment

25

● By design– Linearizability implies dependencies– Dependencies are expensive in today's systems– Why add gratuitous dependencies???

● Performance optimization avoids dependencies● By nature

– How can you tell which of two unrelated events occurred first?

– Why would an application care???

How Can Linearizability Possibly Be Irrelevant???

Page 26: Abstraction, Reality Checks, and RCUkohler/class/aosref/mckenne… · Read-Copy Update (RCU) ... 8-CPU 1.45GHz PPC Operation Nanoseconds Instruction 0.24 Clock Cycle 0.69 Atomic Increment

26

Linearizability Example

● Linearizable Add:atomic_add(&ctr, v);

● :Linearizable Valuereturn (ctr);

● Laissez-Faire Add:__get_cpu_var(ctr)++;● Laissez-Faire Value:for_each_cpu(cpu) {

sum += per_cpu(ctr,cpu);}return (sum);

Page 27: Abstraction, Reality Checks, and RCUkohler/class/aosref/mckenne… · Read-Copy Update (RCU) ... 8-CPU 1.45GHz PPC Operation Nanoseconds Instruction 0.24 Clock Cycle 0.69 Atomic Increment

27

5

1

7

5

Friendly Advice: Tolerate Dissent

135

1 6

7

8

12

1

7

57

7

1

15

0

Page 28: Abstraction, Reality Checks, and RCUkohler/class/aosref/mckenne… · Read-Copy Update (RCU) ... 8-CPU 1.45GHz PPC Operation Nanoseconds Instruction 0.24 Clock Cycle 0.69 Atomic Increment

28

NBS Summary

● Use it where it makes sense– Simple update-heavy data structures– Use locking for complex update-heavy data

structures: scheduler-conscious synchronization● Relax NBS forward-progress & linearizability

constraints when it makes sense– Most of the time...

● Why do hard things the hard way???

Page 29: Abstraction, Reality Checks, and RCUkohler/class/aosref/mckenne… · Read-Copy Update (RCU) ... 8-CPU 1.45GHz PPC Operation Nanoseconds Instruction 0.24 Clock Cycle 0.69 Atomic Increment

29

Read-Copy Update (RCU)

Page 30: Abstraction, Reality Checks, and RCUkohler/class/aosref/mckenne… · Read-Copy Update (RCU) ... 8-CPU 1.45GHz PPC Operation Nanoseconds Instruction 0.24 Clock Cycle 0.69 Atomic Increment

30

What is Synchronization?

● Mechanism plus coding convention– Locking: must hold lock to reference or update– NBS: must use carefully crafted sequences of atomic

operations to do references and updates– RCU coding convention:

● Must define “quiescent states” (QS)– e.g., context switch in non-CONFIG_PREEMPT kernels

● QSes must not appear in read-side critical sections● CPU in QSes are guaranteed to have completed all

preceding read-side critical sections– RCU mechanism: “lazy barrier” that computes “grace

period” given QSes.

Page 31: Abstraction, Reality Checks, and RCUkohler/class/aosref/mckenne… · Read-Copy Update (RCU) ... 8-CPU 1.45GHz PPC Operation Nanoseconds Instruction 0.24 Clock Cycle 0.69 Atomic Increment

31

RCU Fundamental Primitives

● rcu_read_lock() & rcu_read_unlock()– Demark RCU read-side critical section.– Zero overhead in non-preemptive environment.

● synchronize_rcu()– Wait until all pre-existing RCU read-side critical

sections complete.– Subsequently started RCU read-side critical sections

not waited for.– See next slide...

● call_rcu(): callback form of synchronize_rcu()– AKA “continuation” or “asynchronous” form.

Page 32: Abstraction, Reality Checks, and RCUkohler/class/aosref/mckenne… · Read-Copy Update (RCU) ... 8-CPU 1.45GHz PPC Operation Nanoseconds Instruction 0.24 Clock Cycle 0.69 Atomic Increment

32

RCU Operation

CPU 0

CPU 1

RC

U R

ead

-Sid

eC

riti

c al S

ect i

on

CPU 2

CPU 3

syn

chro

niz

e_k

er n

el()

Page 33: Abstraction, Reality Checks, and RCUkohler/class/aosref/mckenne… · Read-Copy Update (RCU) ... 8-CPU 1.45GHz PPC Operation Nanoseconds Instruction 0.24 Clock Cycle 0.69 Atomic Increment

33

How Can RCU Updates Be Fast?

● Piggyback notification of reader completion on context switch (and similar events)

● Kernels are usually constructed as event-driven systems, with short-duration run-to-completion event handlers– Greatly simplifies deferring destruction because

readers are short-lived– Permits tight bound on memory overhead

● Limited number of versions waiting to be collected

Page 34: Abstraction, Reality Checks, and RCUkohler/class/aosref/mckenne… · Read-Copy Update (RCU) ... 8-CPU 1.45GHz PPC Operation Nanoseconds Instruction 0.24 Clock Cycle 0.69 Atomic Increment

34

RCU's Deferred Destruction

CPU 0

CPU 1

RC

U R

ead

-Sid

eC

riti

cal S

e cti

on

RC

U R

ead

-Sid

eC

riti

cal S

ect i

on

call

_ rcu

( )

Co

nte

x tSw

itch

Co

nte

x tSw

itc h

RC

U R

ead

-Sid

eC

riti

c al S

ecti

on

RC

U R

ead

-Sid

eC

riti

c al S

ect i

on

RC

U R

ead

-Sid

eC

riti

c al S

ect i

on

May hold reference Can't hold reference to oldversion, but RCU can't tell

Can't hold referenceto old version

Can't hold referenceto old version

Co

nte

x tSw

itc h

Co

nt e

xtSw

itch

Page 35: Abstraction, Reality Checks, and RCUkohler/class/aosref/mckenne… · Read-Copy Update (RCU) ... 8-CPU 1.45GHz PPC Operation Nanoseconds Instruction 0.24 Clock Cycle 0.69 Atomic Increment

35

Grace Periods

CPU 0

CPU 1

RC

U R

ead

-Sid

eC

riti

cal S

e cti

on

RC

U R

ead

-Sid

eC

riti

cal S

ect i

on

Del

ete

Ele

men

t

Co

nte

x tSw

itch

Co

nte

x tSw

itc h

RC

U R

ead

-Sid

eC

riti

c al S

ecti

on

RC

U R

ead

-Sid

eC

riti

c al S

ect i

on

RC

U R

ead

-Sid

eC

riti

c al S

ect i

on

Co

nte

x tSw

itc h

Grace Period

Grace Period

Co

nte

x tSw

itch

Grace Period

Page 36: Abstraction, Reality Checks, and RCUkohler/class/aosref/mckenne… · Read-Copy Update (RCU) ... 8-CPU 1.45GHz PPC Operation Nanoseconds Instruction 0.24 Clock Cycle 0.69 Atomic Increment

36

What is RCU? (1)

● Reader-writer synchronization mechanism– Best for read-mostly data structures

● Writers create new versions atomically– Normally create new and delete old elements

● Readers can access old versions independently of subsequent writers– Old versions garbage-collected by “poor man's” GC,

deferring destruction– Readers must signal “GC” when done

Page 37: Abstraction, Reality Checks, and RCUkohler/class/aosref/mckenne… · Read-Copy Update (RCU) ... 8-CPU 1.45GHz PPC Operation Nanoseconds Instruction 0.24 Clock Cycle 0.69 Atomic Increment

37

What is RCU? (2)

● Readers incur little or no overhead● Writers incur substantial overhead

– Writers must synchronize with each other– Writers must defer destructive actions until readers

are done– The “poor man's” GC also incurs some overhead

Page 38: Abstraction, Reality Checks, and RCUkohler/class/aosref/mckenne… · Read-Copy Update (RCU) ... 8-CPU 1.45GHz PPC Operation Nanoseconds Instruction 0.24 Clock Cycle 0.69 Atomic Increment

38

PPC Read-Only Results

Page 39: Abstraction, Reality Checks, and RCUkohler/class/aosref/mckenne… · Read-Copy Update (RCU) ... 8-CPU 1.45GHz PPC Operation Nanoseconds Instruction 0.24 Clock Cycle 0.69 Atomic Increment

39

PPC Mixed Workload

Page 40: Abstraction, Reality Checks, and RCUkohler/class/aosref/mckenne… · Read-Copy Update (RCU) ... 8-CPU 1.45GHz PPC Operation Nanoseconds Instruction 0.24 Clock Cycle 0.69 Atomic Increment

40

PPC Read-Mostly Mixed Workload

Page 41: Abstraction, Reality Checks, and RCUkohler/class/aosref/mckenne… · Read-Copy Update (RCU) ... 8-CPU 1.45GHz PPC Operation Nanoseconds Instruction 0.24 Clock Cycle 0.69 Atomic Increment

41

But We Cut HPBR a Break

● We assumed that the hazard pointers can be statically allocated

● Invalid assumption in production software, as many important data structures require unbounded numbers of hazard pointers:– tree traversal, graph traversal, nested data structures,

recursive traversal of data structures● Reality Check #6:

– Hazard pointers must be dynamically allocated– Which will increase HPBR overhead

Page 42: Abstraction, Reality Checks, and RCUkohler/class/aosref/mckenne… · Read-Copy Update (RCU) ... 8-CPU 1.45GHz PPC Operation Nanoseconds Instruction 0.24 Clock Cycle 0.69 Atomic Increment

42

So Who Cares About 99.9% Reads???

● Networking routing table– 1,000 packets per second (moderate webserver)– Internet routing protocols limited to one update per

few minutes (avoid route thrashing)– 99.999% reads!

● Hardware configuration tracking– Used on every I/O, almost never changes!– Essentially 100% reads

● Security policies, netfilter setup, dcache, ...● Reality Check #7:

– Read-mostly scenarios extremely important!!!

Page 43: Abstraction, Reality Checks, and RCUkohler/class/aosref/mckenne… · Read-Copy Update (RCU) ... 8-CPU 1.45GHz PPC Operation Nanoseconds Instruction 0.24 Clock Cycle 0.69 Atomic Increment

43

RCU Sem Micro-Benchmark

Kernel Run 1 Run 2 Avg2.5.42-mm2 515.1 515.4 515.32.5.42-mm2+ipc-rcu 46.7 46.7 46.7

Numbers are test duration, smaller is better.8-CPU 700MHz Intel PIII System

Page 44: Abstraction, Reality Checks, and RCUkohler/class/aosref/mckenne… · Read-Copy Update (RCU) ... 8-CPU 1.45GHz PPC Operation Nanoseconds Instruction 0.24 Clock Cycle 0.69 Atomic Increment

44

RCU Sem DBT1 Performance

Kernel Average2.5.42-mm2 85.0 7.52.5.42-mm2+ipc-rcu 89.8 1.0

Standard Deviation

Numbers are transaction rate, larger is better.2-CPU 900MHz PIII

Page 45: Abstraction, Reality Checks, and RCUkohler/class/aosref/mckenne… · Read-Copy Update (RCU) ... 8-CPU 1.45GHz PPC Operation Nanoseconds Instruction 0.24 Clock Cycle 0.69 Atomic Increment

45

When to Use RCU

● Read-mostly data structures● Algorithms that can tolerate concurrent accesses

and updates– There are ways to transform algorithms into a form

that can tolerate concurrent accesses and updates

Page 46: Abstraction, Reality Checks, and RCUkohler/class/aosref/mckenne… · Read-Copy Update (RCU) ... 8-CPU 1.45GHz PPC Operation Nanoseconds Instruction 0.24 Clock Cycle 0.69 Atomic Increment

46

Summary and Conclusions

Page 47: Abstraction, Reality Checks, and RCUkohler/class/aosref/mckenne… · Read-Copy Update (RCU) ... 8-CPU 1.45GHz PPC Operation Nanoseconds Instruction 0.24 Clock Cycle 0.69 Atomic Increment

47

What to Use Where (Short Form)

● Read-mostly situations: RCU● Update-heavy situations:

– Simple data structures and algorithms: NBS● Most likely in conjunction with hazard pointers

– Complex data structures and algorithms: locking● Most likely in conjunction with some form of scheduler-

conscious synchronization● And for the final reality check...

Page 48: Abstraction, Reality Checks, and RCUkohler/class/aosref/mckenne… · Read-Copy Update (RCU) ... 8-CPU 1.45GHz PPC Operation Nanoseconds Instruction 0.24 Clock Cycle 0.69 Atomic Increment

48

UseUsethe right toolthe right toolfor the job!!!for the job!!!

Copyright © 2004 Melissa McKenney

Page 49: Abstraction, Reality Checks, and RCUkohler/class/aosref/mckenne… · Read-Copy Update (RCU) ... 8-CPU 1.45GHz PPC Operation Nanoseconds Instruction 0.24 Clock Cycle 0.69 Atomic Increment

49

Legal Statement● This work represents the view of the author, and does not

necessarily represent the view of IBM.● IBM, NUMA-Q, and Sequent are registered trademarks of

International Business Machines in the United States, other countries, or both.

● Pentium is a registered trademark of Intel Corporation or its subsidiaries in the United States and other countries.

● Linux is a registered trademark of The Open Group in the United States and other countries.

● Other company, product, and service names may be trademarks or service marks of others.

Page 50: Abstraction, Reality Checks, and RCUkohler/class/aosref/mckenne… · Read-Copy Update (RCU) ... 8-CPU 1.45GHz PPC Operation Nanoseconds Instruction 0.24 Clock Cycle 0.69 Atomic Increment

50

BACKUP