Files
FAT-Allocator/pyplot/MatrixMultiply/Size5000/TLB-DTLB-walk.py

329 lines
4.9 KiB
Python

import matplotlib.pyplot as plt
import numpy as np
# ypoints = np.array([19636392729, 9856229208,9445728437,5148906386])
# xpoints = np.array([5,10,15,20])
# ypoints1 = np.array([10062197042, 9873241615,12034929886,5118684853])
# xpoints1 = np.array([5,10,15,20])
ypoints = np.array([int(x) for x in """1072
1566
0
775
564
574
0
0
1842
397
832
0
1143
0
1132
0
0
3478
335
1181
0
1451
0
0
2456
914
566
208
1323
0
1341
0
0
0
2800
869
0
1624
852
0
1444
78
0
1165
242
0
0
1436
0
1656
1295
672
0
2124
689
247
974
196
664
0
0
0
0
4571
411
1108
0
1855
779
0
0
0
3973
0
0
2126
1090
0
0
0
1455
868
834
0
2252
743
0
0
0
2867
576
528
737
1279
753
0
0
1469
709
0
951
1011
560
923
389
681
887
0
1091""".replace(' ',',').replace('\n','').split(",")])
xpoints = np.array([(i) for i, x in enumerate(ypoints, 1)])
ypoints1 = np.array([int(x) for x in """2077
0
2240
974
400
0
1949
0
353
0
2136
1292
1150
1080
1029
188
16
9401
3108
0
12850
2972
0
13417
4015
0
0
12179
708
4434
5515
105
0
0
52251
8327
0
0
0
7628
0
6047
2796
2505
1949
0
0
0
0
14301
0
5171
3362
3772
0
27162
15974
5284
11553
0
24698
0
14835
0
21593
664
5721
12945
0
13774
0
14722
1465
0
27655
2332
4084
33813
0
9790
0
50326
5316
0
0
0
0
9760
4192
1552
7241
3216
4888
8667
28500
8415
4523
1449
4652
0
7625
0
13775
0
1897
4708
0
12225
4482759
191711306
235410343
173845602
242711520
154862574
192747518
220667551
275602208
184073481
198073425
227482742
187971748
183689903
187178845
186674013
207741123
233177167
221368814
183933427
181175654
204068107
228269124
205027178
209400883
187840131
188293011
221927087
232807458
188215220
180783387
216711542
208036998
214266374
186414281
180185139
185237868
191677316
183911791
183803795
224964126
204113022
210381502
225585571
220223453
226214857
204932647
184864540
217262003
202414930
191948700
193400960
181280109
180323521
184002482
207777617
222940234
189422853
186182495
186261124
181304280
192816961
184117119
209667712
240951856
219942014
221564848
192926621
181690338
183097907
186087016
184347616
180377265
199009737
182802614""".replace(' ',',').replace('\n','').split(",")])
xpoints1 = np.array([(i) for i, x in enumerate(ypoints1, 1)])
plt.plot(xpoints, ypoints,label='Malloc Physically contigous with bounds')
plt.plot(xpoints1, ypoints1,label='System memory allocator')
'''
DTLB_WALK
The counter counts each access counted by L1D_TLB that causes a
refill of a data or unified
TLB involving at least one translation table walk access.
This includes each complete or partial translation table walk that causes an
access to memory, including to data or translation table walk caches.
If Armv8.7 is not implemented, it is IMPLEMENTATION DEFINED whether accesses
that cause an update of an existing TLB entry involving at least one translation
table walk access are counted. If Armv8.7 is implemented, these accesses
are counted.
'''
plt.title("Data TLB access, read \n ARM Performance counter: DTLB_WALK \n Data TLB access with at least one translation table walk \n This includes each complete or partial translation table walk that causes an access to memory, including to data or translation table walk caches. \n Histogram medium")
plt.xlabel("time in seconds")
plt.ylabel("DTLB walks")
# plt.plot(xpoints1, ypoints1)
plt.legend()
plt.show()