Ashish Panwar1, Sorav Bansal2, K. Gopinath1
Indian Institute of Science (IISc), Bangalore1 Indian Institute of Technology, Delhi 2
1
Architectural Support for Programming Languages and Operating Systems (ASPLOS) - 2019.
HawkEye: Efficient Fine-grained OS Support for Huge Pages Ashish - - PowerPoint PPT Presentation
HawkEye: Efficient Fine-grained OS Support for Huge Pages Ashish Panwar 1 , Sorav Bansal 2 , K. Gopinath 1 Indian Institute of Science (IISc), Bangalore 1 Indian Institute of Technology, Delhi 2 Architectural Support for Programming Languages and
Ashish Panwar1, Sorav Bansal2, K. Gopinath1
Indian Institute of Science (IISc), Bangalore1 Indian Institute of Technology, Delhi 2
1
Architectural Support for Programming Languages and Operating Systems (ASPLOS) - 2019.
2
3
4
5
6
7
8
11
13
14
Virtual memory Physical memory huge page mapping
aggressive allocation
15
Virtual memory Physical memory huge page mapping
aggressive allocation conservative allocation
16
Virtual memory Physical memory huge page mapping
aggressive allocation conservative allocation
17
Virtual memory Physical memory huge page mapping
aggressive allocation conservative allocation
18
Virtual memory Physical memory huge page mapping
aggressive allocation conservative allocation
20
21
pre
22
pre zero-fill post
23
pre zero-fill post
24
pre zero-fill post
25
pre zero-fill post p r e
zero-fill
p
t
26
pre zero-fill post p r e
zero-fill
p
t
27
pre zero-fill post p r e
zero-fill
p
t
28
pre zero-fill post p r e
zero-fill
p
t
32
33
FreeBSD Linux
Memory bloat Low High Performance Low High Allocation latency Low High # page faults High Low
conservative vs. aggressive Tradeoff-1: Tradeoff-2:
34
35
36
37
38
FreeBSD Linux Ingens
Memory bloat Low High Tunable Performance Low High Tunable Allocation latency Low High Low # page faults High Low High
Tradeoff-1: Tradeoff-2:
39
40
[1] Optimizing the Idle Task and Other MMU Tricks, OSDI'99
41
42
43
44
Virtual memory Physical memory huge page mapping
45
Virtual memory Physical memory huge page mapping
46
Virtual memory Physical memory huge page mapping
47
Virtual memory Physical memory huge page mapping
48
67.5 55.4 115.5 3.9 2.8 1.2 1 6.63 27.4 9.11
30 60 90 120
49
8 16 24 32 40 48
1 1 1 2 1 3 1 4 1 5 1 6 1 7 1 8 1 9 1 1 1 1 1 1 1 2 1 1 3 1 1 4 1 1 5 1 1 6 1
RSS (GB) Time (seconds) Linux Ingens HawkEye
success
success
P 1 P2 P3
50
FreeBSD Linux Ingens HawkEye
Memory bloat Low High Tunable Automated Performance Low High Tunable Automated Allocation latency Low High Low Low # page faults High Low High Low
Tradeoff-1: Tradeoff-2:
51
52
hot regions
53
54
10 20 30 40 50 1 101 201 301 401 501
MMU Overhead (%) Time (seconds)
Workload: XSBench
Page Walk Overhead (%)
access-coverage
55
300 600 900 1200
Graph500 XSBench NPB_CG.D ms saved per huge page
Execution time (ms) saved per huge page allocation
56
57
10 20 30 40 50 60 70
cactusADM tigr Graph500 lbm_s SVM XSBench CG.D
Workloads running alongside a TLB-insensitive process
% speedup
58
59
60