Top Banner
1 Disco: Running Commodity Disco: Running Commodity Operating Systems on Scalable Operating Systems on Scalable Multiprocessors Multiprocessors Edouard Bugnion, Scott Devine, and Mendel Rosenblum, Stanford University, 1997 Presented by James Loope Henry Wong, October 18, 2006
21

Disco: Running Commodity Operating Systems on Scalable Multiprocessors

Jan 28, 2016

Download

Documents

gada

Edouard Bugnion, Scott Devine, and Mendel Rosenblum, Stanford University, 1997 Presented by James Loope. Disco: Running Commodity Operating Systems on Scalable Multiprocessors. Henry Wong, October 18, 2006. Outline. Virtual Machine Monitors Disco description Disco performance Conclusions. - PowerPoint PPT Presentation
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Disco: Running Commodity Operating Systems on Scalable Multiprocessors

1

Disco: Running Commodity Disco: Running Commodity Operating Systems on Scalable Operating Systems on Scalable

MultiprocessorsMultiprocessorsEdouard Bugnion, Scott Devine, and Mendel Rosenblum,

Stanford University, 1997

Presented by James Loope

Henry Wong, October 18, 2006

Page 2: Disco: Running Commodity Operating Systems on Scalable Multiprocessors

2

Outline

Virtual Machine Monitors Disco description Disco performance Conclusions

Page 3: Disco: Running Commodity Operating Systems on Scalable Multiprocessors

3

What's a NUMA?

Cache-coherent Non-Uniform Memory Access CPUs see “local” and “remote” memory space

Page 4: Disco: Running Commodity Operating Systems on Scalable Multiprocessors

4

Problem

Only prototype OS's run on a NUMA Hive, Hurricane, Cellular IRIX

OS development lags behind hardware Extensive modifications required to existing

OS's to run NUMA That's hard, and could make things buggy

Page 5: Disco: Running Commodity Operating Systems on Scalable Multiprocessors

5

Goals

Handle NUMA without extensive OS changes Particularly SGI IRIX on prototype Stanford FLASH Reduce the overheads

Memory and disk duplication Slow cross VM communication Emulation overhead

Page 6: Disco: Running Commodity Operating Systems on Scalable Multiprocessors

6

Virtual Machine Monitor

A software layer that behaves like hardware Intercepts and emulates instructions Hides atypical system architecture from

OS Commonly called a “Hypervisor”

Page 7: Disco: Running Commodity Operating Systems on Scalable Multiprocessors

7

Virtual Machine Monitor

It's not perfect, not everything is virtualizable Binary patching

At load/run time, patch offending instructions with a trap or emulation

VMWare Server/Desktop Paravirtualization

Modify guest OS to not use unvirtualizable instructions

Xen, ESX, Disco, KVM

Page 8: Disco: Running Commodity Operating Systems on Scalable Multiprocessors

8

Disco

PE = Processor + Memory

Page 9: Disco: Running Commodity Operating Systems on Scalable Multiprocessors

9

Virtual CPU

Direct execution Guest OS runs in supervisor mode

Access to a “supervisor” memory segment No privileged mode or physical memory access

Virtual processors time shared across physical

Data structure stored for each Virtual processor

Process state,TLB Privileged mode instructions trap to disco

monitor for emulation of instruction

Page 10: Disco: Running Commodity Operating Systems on Scalable Multiprocessors

10

Virtual Memory

Memory mapping Virtual addresses to “Physical” address by

Guest “Physical” to “Machine” address via Disco pmap

TLB stores Virtual to Machine mapping Software cache of Virtual toMachine mappings

(second layer TLB) TLB flush when virtual CPU changes

Avoids having to keep track of and virtualize ASIDs

Page 11: Disco: Running Commodity Operating Systems on Scalable Multiprocessors

11

Virtual Memory

Page replication and migration hides NUMA from guests

Page 12: Disco: Running Commodity Operating Systems on Scalable Multiprocessors

12

It puts the kernel where?

Oops! MIPS isn't fully virtualizable KSEG0 segment access bypasses TLB Can't access from supervisor mode IRIX puts the kernel code and data there

Solution is to modify IRIX Put the kernel in a place we can virtualize Paravirtualized

Page 13: Disco: Running Commodity Operating Systems on Scalable Multiprocessors

13

Virtual I/O

Virtual I/O Devices Device drivers written for guest OS rather than

emulating the hardware Virtual DMA

DMA requests are mapped from “Physical” to “Machine” addresses

Disco keeps track of pages for sharing between nodes

Page 14: Disco: Running Commodity Operating Systems on Scalable Multiprocessors

14

Virtual Disk

User disks are not shared Sharing done via NFS

Root disk is shared copy-on-write Disco watches DMA requests to disk devices Blocks previously read are mapped instead of

re-read Disk buffer cache shared

Page 15: Disco: Running Commodity Operating Systems on Scalable Multiprocessors

15

Virtual Network

When sending data via NFS, Disco intercepts DMA and remaps to avoid duplication

Page 16: Disco: Running Commodity Operating Systems on Scalable Multiprocessors

16

CPU Performance

Virtualization Overhead Pmake overhead due to OS

services; TLB emulation cost

Page 17: Disco: Running Commodity Operating Systems on Scalable Multiprocessors

17

Memory Performance

Remapping reduces machine memory use

Page 18: Disco: Running Commodity Operating Systems on Scalable Multiprocessors

18

NUMA vs UMA Performance

Disco optimizes IRIX on NUMA through page migration and replication

Page 19: Disco: Running Commodity Operating Systems on Scalable Multiprocessors

19

Scalability Performance

Disco outperforms an unoptimized OS

Page 20: Disco: Running Commodity Operating Systems on Scalable Multiprocessors

20

Conclusion

Disco hides NUMA from OS Disco hides large-scale multiprocessor from OS Disco is fairly simple, no huge OS modifications Performance data may be sketchy

It was all simulated – FLASH doesn't exist

Page 21: Disco: Running Commodity Operating Systems on Scalable Multiprocessors

21

References

http://lse.sourceforge.net/numa/faq/

http://en.wikipedia.org/wiki/Non-Uniform_Memory_Access3

http://www.infosysblogs.com/engineering-software/2009/07