viommu: efficeint iommu emulation · 11. translate iova 10. iova access 12. hpa access 8. iotlb...

Post on 04-Aug-2020

2 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

6/17/2011 1

Device

CPU

MemoryChipset

Physical Address Physical Address

6/17/2011 2

Introduction Emulation Evaluation Conclusions

Introduction Emulation Evaluation Conclusions

MMUIOMMU

Main Memory

CPUI/O

Device

I/OVirtualAddress

Physical Address

VirtualAddress

6/17/2011 4

Introduction Emulation Evaluation Conclusions

6/17/2011 5

Introduction Emulation Evaluation Conclusions

6/17/2011 6

Introduction Emulation Evaluation Conclusions

6/17/2011 7

Guest Domain Emulation Domain(Hypervisor)

System Domain

I/O Device

IOMMU

Memory

IOMMU Emulation

Phys. PTEs

I/O Buffer

9. Transaction to IOVA

7. MapIOVAHPA

11. TranslateIOVA

10. IOVA Access

12. HPA Access8. IOTLB Invd.

Mapping Layer

1. Request IOVAfor GPA

I/O DeviceDriver

Emul. PTEs3. Update Mappings (IOVAGPA)

5. Read

4. IOTLB Invd.of IOVA

2. Allocate IOVA

6. Pin pages

Introduction Emulation Evaluation Conclusions

6/17/2011 8

Introduction Emulation Evaluation Conclusions

6/17/2011 9

Introduction Emulation Evaluation Conclusions

6/17/2011 10

Guest

Hypervisor(VMM)

Sidecore(VMM)

Emulated Registers

Write PollEmulate

Done(Write)

Done(Read)

Introduction Emulation Evaluation Conclusions

6/17/2011 11

Introduction Emulation Evaluation Conclusions

6/17/2011 12

Introduction Emulation Evaluation Conclusions

6/17/2011 13

I/O virtual page 1Physical page

I/O virtual page 2

Introduction Emulation Evaluation Conclusions

6/17/2011 14

Introduction Emulation Evaluation Conclusions

6/17/2011 15

Introduction Emulation Evaluation Conclusions

CPU Cycles

SW/HW Interaction

Logic Total

Bare-metal 2316 4593 6909

Trap & Emulate 30645 4324 34969

Sidecore 7321 1904 9225

6/17/2011 16

Average breakdown of (un)mapping a single page using the strict invalidation scheme

Introduction Emulation Evaluation Conclusions

Setting Secure(No IOTLB Batching)

Relaxed(Linux Default; IOTLB Batching)

Optimistic(Patched; IOTLB Batching)

Bare-metal 43% 91% 100%

Trap & Emulate 10% 11% 82%

Sidecore 30% 49% 100%

6/17/2011 17

Measuring the Netperf TCP throughput relatively to the maximum attainable (9.3Gbps)

Introduction Emulation Evaluation Conclusions

Setting Secure(No IOTLB Batching)

Relaxed(Linux Default; IOTLB Batching)

Optimistic(Patched; IOTLB Batching)

Bare-metal 84% 92% 94%

Trap & Emulate 38% 39% 56%

Sidecore 61% 63% 66%

6/17/2011 18

Measuring Apache throughput (25 concurrent requests); the baseline fornormalization is 6828 requests per second

Introduction Emulation Evaluation Conclusions

6/17/2011 19

Introduction Emulation Evaluation Conclusions

top related