+ All Categories
Home > Documents > MetaTM & TxLinux

MetaTM & TxLinux

Date post: 21-Mar-2016
Category:
Upload: mikko
View: 31 times
Download: 0 times
Share this document with a friend
Description:
MetaTM & TxLinux Hany Ramadan, Christopher Rossbach, Donald Porter, Owen Hofmann, Aditya Bhandari, Emmett Witchel University of Texas at Austin. TM Background. Transactional programming is an emerging alternative to locks Avoids problems such as deadlock - PowerPoint PPT Presentation
Popular Tags:
25
MetaTM & TxLinux Hany Ramadan, Christopher Rossbach, Donald Porter, Owen Hofmann, Aditya Bhandari, Emmett Witchel University of Texas at Austin
Transcript
Page 1: MetaTM &  TxLinux

MetaTM & TxLinux

Hany Ramadan, Christopher Rossbach, Donald Porter, Owen Hofmann, Aditya Bhandari, Emmett

Witchel

University of Texas at Austin

Page 2: MetaTM &  TxLinux

TM Background Transactional programming is an emerging alternative to locks Avoids problems such as deadlock Avoids performance-complexity tradeoffs

HTM holds the promise of simpler programming and good performance

Page 3: MetaTM &  TxLinux

TM: “What’s the OS got to do with it?”

Lack of realistic workloads (counter, splash-2)

Will current results hold on real programs? Unclear design tradeoffs; Feature set unsettled

OS is a real-life, parallel workload OS will benefit from transactions

Reduces synchronization complexity System-call and interrupt control paths will benefit

Architectural support is needed for OS

Page 4: MetaTM &  TxLinux

Average Transaction Count

0

500,000

1,000,000

1,500,000

2,000,000

2,500,000

3,000,000

3,500,000

Other TMs Nearest TM MetaTM

Aver

age

Tx/B

ench

mar

k

Page 5: MetaTM &  TxLinux

Outline TxLinux MetaTM

Goals Features Interrupt handling

Issue: Stack memory Experimental results

Page 6: MetaTM &  TxLinux

TxLinux 2.6.16.1

Slaballocator

Zoneallocator

IP routing

Socketlocking

Various MMstructures

Directorycache

Pathnametranslation

Memory managementNetworkingFile system

Spin-locksSequencelocks

RCU(read-copy-update)

Converted ~30% of dynamic synchronization to transactions

Page 7: MetaTM &  TxLinux

MetaTM: Design goals HTM model co-designed with TxLinux

Extensions to x86 ISA Architectural support for OS Execution-driven simulation

A platform for TM research Multiple HTM design points Eager & lazy version management Eager conflict detection

Page 8: MetaTM &  TxLinux

MetaTM: Model features

commit cost(lazy)

abort cost(eager)

polite karma

exponential linear

eruption

Versionmanagement

Contentionmanagement(eager)

Backoff policy

Tx demarcation

random

timestamp polka sizematters

xbegin xend

xpush xpopMultiple Tx

Page 9: MetaTM &  TxLinux

TxLinux: Interrupt handling

Question: What happens to active tx on an interrupt?

Interrupt handlers allowed to use transactions

Factors weighing against abort Transaction length growing Interrupt frequency

Answer: Active transactions are suspended on interrupt

Page 10: MetaTM &  TxLinux

MetaTM: Multiple Tx support

Multiple active transactions on a processor At most one running, all others are suspended

Interface xpush suspends current transaction xpop resumes suspended transaction Suspended transactions maintained in LIFO order

New execution context is unrelated to old one Same conflict semantics with all other transactions

May start new transactions

Page 11: MetaTM &  TxLinux

Outline TxLinux MetaTM

Goals Features Interrupt handling

Issue: Stack memory Experimental results

Page 12: MetaTM &  TxLinux

Issue: Stack memory Transactions can span stack frames

Why: Retain same flexibility as locks Problem: Live stack overwrite (correctness)

Solution: Stack Pointer Checkpointfoo() { atomic { }}

foo(){ bar() baz()}bar() { xbegin }baz() { xend }

Page 13: MetaTM &  TxLinux

intr statedo_IRQ

foo+8bar

Live stack overwrite0xC0

StkPtr

localsfoo

0x80

0x40

0x00

Error: invalidreturn address

Tx Reg. Checkpoint

PC: bar+4

StkPtr: 0x40

(other regs..)

foo+4: call barfoo+8: <work>foo+12:xend

bar+0: xbeginbar+4: ret

do_irq: iret

Conflict

localsfoo

Only interrupts that arrive in kernel mode have this problem

Page 14: MetaTM &  TxLinux

intr statedo_irq

foo+8bar

Live stack overwrite, fixed

0xC0

StkPtr

localsfoo

0x80

0x40

0x00Tx Reg. Checkpoint

PC: bar+4

StkPtr: 0x40

(other regs..)

foo+4: call barfoo+8: <work>foo+12:xend

bar+0: xbeginbar+4: ret

do_irq: iret

localsfoo

Conflict

Fixed by setting ESP to Checkpointed ESP on interrupt

Page 15: MetaTM &  TxLinux

Outline TxLinux MetaTM

Goals Features Interrupt handling

Issue: Stack memory Experimental results

Page 16: MetaTM &  TxLinux

Experiments Setup Workloads System characteristics

Execution time Transaction rates Transaction origins

Studies Contention management Commit & Abort penalties

Page 17: MetaTM &  TxLinux

Setup Simics 3.0.17 8-processor, x86 system (1 Ghz) Memory hierarchy

L1: sep D/I, 16KB, 4-way, 1-cycle hit L2: 4MB, 8-way, 16-cycle hit, MESI protocol

Main memory: 1GB, 200-cycle hit Other devices

Disk device (DMA, 5.5ms latency) Tigon3 gigabit nic (DMA,0.1ms latency)

Page 18: MetaTM &  TxLinux

Workloads to exercise TxLinux

counter shared counter micro- benchmark (8 threads)

pmake Runs make -j 8 to compile files from libFLAC 1.1.2

netcat streams data over TCP network conn.

MAB simulates software development file system workloads

configure 8 instances of configure for tetex

find 8 instances of find on a 78MB directory searching for text

Note: Only TxLinux creates transactions

Page 19: MetaTM &  TxLinux

Kernel Execution Time

0

2

4

6

8

10

12

14

counter pmake netcat MAB config find

Ker

nel E

xecu

tion

Tim

e (s

)

Linux

TxLinux

counter

%Kern. time 91% 13% 54% 57% 43% 50%

High kernel time justifies transactions in the OS

Page 20: MetaTM &  TxLinux

Transaction Rates

32,48616,635

449,322182,072 121,808

1

10

100

1,000

10,000

100,000

1,000,000

pmake netcat MAB config find

Tran

sact

ions

/ Se

c

Restart Rate 2.6% 3.1% 1.7% 2.1% 10.2%

Find workload has highest contention in TxLinux

Page 21: MetaTM &  TxLinux

Transaction Origins

0

20

40

60

80

100

pmake netcat MAB config find

% T

rans

actio

ns

System calls

Interrupts, kthreads

Kernel locks accessed from both system call and interrupt handling contexts

Page 22: MetaTM &  TxLinux

Contention Management Study

0.00

0.50

1.00

1.50

2.00

2.50

3.00

3.50

4.00

eruption karma kindergarten polka size matters timestamp

Policy

Nor

mal

ized

Res

tart

Rat

e . counter

pmake

netcat

MAB

configure

find

Polka best performer, but complex to implement; SizeMatters viable

Stall-on-conflict – reduces conflicts, but not always performance

counter

Page 23: MetaTM &  TxLinux

Commit & Abort Study

0

0.5

1

1.5

2

2.5

3

counter pmake netcat MAB configure find

Rel

ativ

e Sy

stem

Tim

e

01001,00010,000

0.750.800.850.900.951.001.051.101.151.201.25

counter pmake netcat MAB configure find

Rel

ativ

e Sy

stem

Tim

e

01001,00010,000

Performance sensitive to commit penalty, not abort Confirms benefit of eager version management (fast

commits)

Nor

mal

ized

Ker

nel T

ime

Nor

mal

ized

Ker

nel T

ime

Commit Cost

Abort Cost

Page 24: MetaTM &  TxLinux

Related Work TM Models

TCC [Hammond04], UTM [Anaian05], LogTM [Moore06], VTM [Rajwar05]

Suspension techniques Escape actions [Zilles06] – can’t start tx

Interrupt handling XTM [Chung06] – also tries to avoid aborts

Contention management Scherer & Scott [PODC’05] – in STM context

Page 25: MetaTM &  TxLinux

Conclusions TM needs realistic workloads

TxLinux the largest TM benchmark OS needs TM

Complex synchronization; large % of runtime Building & running TxLinux reveals much

Architectural support needed (Tx suspension)

Contention management is important Cost studies confirm fast commits

… more in the paper


Recommended