14
Real-Time Performance and Middleware for Multiprocessor and Multicore Linux Platforms* Yuanfang Zhang, Christopher Gill, and Chenyang Lu Department of Computer Science and Engineering Washington University, St. Louis, MO, USA {yfzhang, cdgill, lu}@cse.wustl.edu 15 th IEEE International Conference on Embedded and Real-Time Computing Systems and Applications (RTCSA 2009) August 24 - 26, 2009, Beijing, China *This research was supported in part by NSF grants CCF-0615341 (EHS), CCF-0448562 (CAREER), and CNS-0448554 (CAREER)

Real-Time Performance and Middleware for Multiprocessor and Multicore Linux Platforms*

  • Upload
    trula

  • View
    39

  • Download
    0

Embed Size (px)

DESCRIPTION

Real-Time Performance and Middleware for Multiprocessor and Multicore Linux Platforms*. Yuanfang Zhang, Christopher Gill, and Chenyang Lu Department of Computer Science and Engineering Washington University, St. Louis, MO, USA {yfzhang, cdgill, lu}@cse.wustl.edu. - PowerPoint PPT Presentation

Citation preview

Page 1: Real-Time Performance and Middleware for Multiprocessor and Multicore Linux Platforms*

Real-Time Performance and Middleware for Multiprocessor and Multicore Linux Platforms*

Yuanfang Zhang, Christopher Gill, and Chenyang LuDepartment of Computer Science and Engineering

Washington University, St. Louis, MO, USA{yfzhang, cdgill, lu}@cse.wustl.edu

15th IEEE International Conference on Embedded and Real-Time Computing

Systems and Applications (RTCSA 2009)August 24 - 26, 2009, Beijing, China

*This research was supported in part by NSF grants CCF-0615341 (EHS), CCF-0448562 (CAREER), and CNS-0448554 (CAREER)

Page 2: Real-Time Performance and Middleware for Multiprocessor and Multicore Linux Platforms*

2 - Zhang et al. – 04/21/23

Motivation and Contributions

Trend towards multi-processor and multi-core platforms affects both OS and middleware»Techniques designed for uni-processors need

revisiting

This research makes 3 main contributions to real-time systems on multi-processor platforms» A performance evaluation of relevant Linux features»MC-ORB middleware designed for MC/MP platforms»Evaluation of MC-ORB’s multi-core aware RT

performance

Page 3: Real-Time Performance and Middleware for Multiprocessor and Multicore Linux Platforms*

3 - Zhang et al. – 04/21/23

Background and Related Work

Linux 2.6 introduced SMP and multi-core support»Linux 2.6.23 added the Completely Fair Scheduler (CFS)»However, many deployed platforms predate 2.6.23»We studied Linux 2.6.17 as a representative compromise

Related research: modifying Linux, RT middleware»We assume unmodified COTS Linux as our middleware

design point, for highly portable real-time performance»The differing trade-offs for uni-processor vs. multi-processor

platforms motivate new middleware designs

Page 4: Real-Time Performance and Middleware for Multiprocessor and Multicore Linux Platforms*

4 - Zhang et al. – 04/21/23

Linux Performance: Clock Differences I We first evaluated clock

differences between cores»How well do platform/Linux

maintain synchronization?»We used RDTSC instruction to

record clock ticks on each core

We bounced a message back and forth between two cores»Used arrival TSCs (x, y, z) to

measure round trip delay (RTD)»The results show that the

cores’ frequencies were well matched

Page 5: Real-Time Performance and Middleware for Multiprocessor and Multicore Linux Platforms*

5 - Zhang et al. – 04/21/23

Linux Performance: Clock Differences II We then estimated the

cores’ temporal offsets asδ0 = 2y1–x0– z0 ; δ1 = 2y0–x1–z1

»Figures on the right show calculated results

n Upper: as measured at each core n Lower: reverse signs for core 0

(shows consistent views of offset)

Insight 1»Though frequencies matched

well, avg. offset was ~1.3μs»Motivates measuring offsets in

our subsequent analyses

Page 6: Real-Time Performance and Middleware for Multiprocessor and Multicore Linux Platforms*

6 - Zhang et al. – 04/21/23

Linux Performance: Load Balancing

Can thread affinity thwart (bad) Linux rebalancing?»We ran sets of 10 vs. 30 tasks (all bound to one core to

prevent rebalancing), with total utilizations of 0.6 vs. 1.0

Insight 2»Though overhead is small and amortized, compiling

kernels with rebalancing off appears to be a preferable method

Tasks Utilization

Imbalances

detected in 5 min

Overhead per imbalance (ns)Overhea

d(total μs)

Minimum Mean Maximum

10 0.6 211 405 983 1899 207

30 0.6 210 566 1178 2120 247

10 1.0 588 536 854 1463 509

30 1.0 596 671 1124 2069 670

Page 7: Real-Time Performance and Middleware for Multiprocessor and Multicore Linux Platforms*

7 - Zhang et al. – 04/21/23

Linux Performance: Migration Strategies

Two key migration strategies»Thread migrates itself»Separate manager thread migrates

it

Thread state mechanisms/cost »Affinity mask is always updated»For running thread, changes run

queues, may invoke scheduler

Case 1: a running thread modifies its own affinity

Case 3: a separate manager thread modifies a sleeping

thread’s affinity

0 1 2 3

0 1 2 3

0 1 2 3

Case 2: a separate manager thread modifies a running

thread’s affinity

Page 8: Real-Time Performance and Middleware for Multiprocessor and Multicore Linux Platforms*

8 - Zhang et al. – 04/21/23

Linux Performance: Migration Costs Insight 3

»Every strategy risks a non-negligible thread migration cost

»Motivates binding task threads into core-specific thread pools

»Motivates an ORB architecture with a separate manager thread (next)

self migration(~ 16 to 45 μs)

manager migratessleeping thread(~ 4 to 10 μs)

managermigratesrunningthread(~ 18 to 36 μs)

Page 9: Real-Time Performance and Middleware for Multiprocessor and Multicore Linux Platforms*

9 - Zhang et al. – 04/21/23

Conventional Middleware Architecture Traditional single-CPU approach benefits from

leader/followers etc. to reduce costly hand-offs»E.g., TAO, nORB

However, multiple cores increase risk of migration

1. Leader invokes TA (and AC) for task

2. Picks new leader3. New leader may

need to move old4. Old leader runs

the task (on the appropriate core)

Page 10: Real-Time Performance and Middleware for Multiprocessor and Multicore Linux Platforms*

10 - Zhang et al. – 04/21/23

MC-ORB Middleware Architecture In contrast, MC-ORB’s threading architecture

leverages hand-offs to avoid thread migrations »Key trade off: copying/locking costs vs. migration

costs

1. Request is queued

2. Manager thread reads requests in priority order

3. Invokes TA w/AC4. Manager picks

thread from pool5. Thread runs

task

Page 11: Real-Time Performance and Middleware for Multiprocessor and Multicore Linux Platforms*

11 - Zhang et al. – 04/21/23

Real-Time ORB Performance Evaluation To gauge performance costs of our middleware

architecture we examined four key issues»Allocate on same vs. other core (as manager thread)»Thread available vs. migration needed»Reallocation is vs. is not required to allocate task»New task is admitted vs. rejected

We evaluated our middleware architecture both with (MC-ORB) and without (MC-ORB*) rejection»MC-ORB* compared to nORB (designed for uniprocessors)»Varied utilization granularity & magnitude (10 task sets)»We measured how many of the task sets missed a

deadline

Page 12: Real-Time Performance and Middleware for Multiprocessor and Multicore Linux Platforms*

12 - Zhang et al. – 04/21/23

Overheads for MC-ORB’s Extensions (μs)

Scenarios used for Overhead Evaluation1. New task on same core as manager2. New task on different core (similar cost to 1)3. (Sleeping) thread moved from other core to run new task4. (All) running tasks reallocated to make room for new task5. The new task is rejected (low cost, but it’s pure overhead)

Scenario Minimum Mean Maximum

1 43 55 109

2 42 58 111

3 50 64 121

4 222 235 289

5 39 50 107

Page 13: Real-Time Performance and Middleware for Multiprocessor and Multicore Linux Platforms*

13 - Zhang et al. – 04/21/23

Fraction of Workloads w/ Deadline Misses

With rejection, >94% of tasks were admitted by MC-ORB and all admitted tasks met all deadlines

Without rejection (where + shows need for AC) MC-ORB*» Outperformed nORB in 6 cases (green)» Performed the same as nORB in 4 cases (grey)» Underperformed nORB in 2 cases (red)» Less balanced workloads emphasize MC-ORB* improvement over

nORB

Total Utilization ORB

Balance Factor

0.1 0.2 0.3 0.5

1.4nORB 0.4 0 0 0

MC-ORB* 0 0 0 0

1.5nORB 0.8 0.3 0.1 0.1

MC-ORB* 0 0.1+ 0.1+ 0

1.6nORB 1.0 0.5 0.1 0.1

MC-ORB* 0.3+ 0.4+ 0.4+ 0.3+

Page 14: Real-Time Performance and Middleware for Multiprocessor and Multicore Linux Platforms*

14 - Zhang et al. – 04/21/23

Concluding Remarks

COTS OS evaluations»Measurement on specific target platforms is crucial»Behaviors of hardware and OS mechanisms are

important Middleware architectures

»OS evaluations establish design trade-off parameters»Prior design decisions may be reversed on new platforms

Performance evaluations bear out our new design»Even w/out admission control, MC-ORB architecture helps »With AC admitted high utilization, and met all deadlines

MC-ORB open-source download & build instructions»http://www.cse.wustl.edu/~yfzhang/MC-ORB.html