SLIDE 1
1 6/17/2011 Introduction Emulation Evaluation Conclusions CPU - - PowerPoint PPT Presentation
1 6/17/2011 Introduction Emulation Evaluation Conclusions CPU - - PowerPoint PPT Presentation
1 6/17/2011 Introduction Emulation Evaluation Conclusions CPU Device Chipset Memory Physical Address Physical Address 2 6/17/2011 Introduction Emulation Evaluation Conclusions Main Memory Physical Address IOMMU MMU I/O Virtual
SLIDE 2
SLIDE 3
Introduction Emulation Evaluation Conclusions MMU IOMMU Main Memory CPU I/O Device I/O Virtual Address Physical Address Virtual Address
SLIDE 4
6/17/2011
4
Introduction Emulation Evaluation Conclusions
SLIDE 5
6/17/2011
5
Introduction Emulation Evaluation Conclusions
SLIDE 6
6/17/2011
6
Introduction Emulation Evaluation Conclusions
SLIDE 7
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. Map
IOVAHPA
- 11. Translate
IOVA
- 10. IOVA Access
- 12. HPA Access
- 8. IOTLB Invd.
Mapping Layer
- 1. Request IOVA
for GPA
I/O Device Driver
- Emul. PTEs
- 3. Update Mappings (IOVAGPA)
- 5. Read
- 4. IOTLB Invd.
- f IOVA
- 2. Allocate IOVA
- 6. Pin pages
Introduction Emulation Evaluation Conclusions
SLIDE 8
6/17/2011
8
Introduction Emulation Evaluation Conclusions
SLIDE 9
6/17/2011
9
Introduction Emulation Evaluation Conclusions
SLIDE 10
6/17/2011
10
Guest Hypervisor (VMM) Sidecore (VMM) Emulated Registers Write Poll Emulate Done (Write) Done (Read) Introduction Emulation Evaluation Conclusions
SLIDE 11
6/17/2011
11
Introduction Emulation Evaluation Conclusions
SLIDE 12
6/17/2011
12
Introduction Emulation Evaluation Conclusions
SLIDE 13
6/17/2011
13
I/O virtual page 1 Physical page I/O virtual page 2 Introduction Emulation Evaluation Conclusions
SLIDE 14
6/17/2011
14
Introduction Emulation Evaluation Conclusions
SLIDE 15
6/17/2011
15
Introduction Emulation Evaluation Conclusions
SLIDE 16
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
SLIDE 17
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 NetperfTCP throughput relatively to the maximum attainable (9.3Gbps) Introduction Emulation Evaluation Conclusions
SLIDE 18
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 for normalization is 6828 requests per second Introduction Emulation Evaluation Conclusions
SLIDE 19