Skip to content

Commit 2957270

Browse files
Yangzheng BaiYangzheng Bai
authored andcommitted
Add sweep delay script for cas_lockref
The new lh_sweepdelay_cfg.yaml is used for sweeping CAS latency from 0us to 32us. Using this script, we can easily find potential CAS latency bottlenecks for different core count and CAS delay time. Signed-off-by: Yangzheng Bai <Yangzheng.Bai@arm.com>
1 parent 91d8f59 commit 2957270

File tree

2 files changed

+187
-0
lines changed

2 files changed

+187
-0
lines changed
Lines changed: 157 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,157 @@
1+
# Copyright (c) 2018, ARM Limited. All rights reserved.
2+
#
3+
# SPDX-License-Identifier: BSD-3-Clause
4+
#
5+
# Redistribution and use in source and binary forms, with or without
6+
# modification, are permitted provided that the following conditions are met:
7+
#
8+
# Redistributions of source code must retain the above copyright notice, this
9+
# list of conditions and the following disclaimer.
10+
#
11+
# Redistributions in binary form must reproduce the above copyright notice, this
12+
# list of conditions and the following disclaimer in the documentation and/or
13+
# other materials provided with the distribution.
14+
#
15+
# Neither the name of ARM Limited nor the names of its contributors may be used
16+
# to endorse or promote products derived from this software without specific
17+
# prior written permission.
18+
#
19+
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
20+
# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
21+
# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
22+
# DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
23+
# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
24+
# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
25+
# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
26+
# CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR
27+
# TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
28+
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
29+
#
30+
# The views and conclusions contained in the software and documentation are those
31+
# of the authors and should not be interpreted as representing official policies,
32+
# either expressed or implied, of this project.
33+
34+
35+
## Global Settings
36+
globalcfg:
37+
execdir: ../build
38+
logfile: lockhammer.csv
39+
40+
41+
## Sweep Test Settings
42+
#
43+
# Common assumptions for sweep delay test:
44+
# The system should be able to handle CAS workload at any delay.
45+
# Using eBPF, we find that Nginx lockref inter-arrival delay is less than 32us,
46+
# and lockref_get to lockref_put_return delay is less than 2us. Therefore we
47+
# create this script to sweep <32us delay using -p parameter and keep -c
48+
# parameter at 1us because eBPF intrinsic overhead is about 1us. We also find
49+
# the ratio between -c and -p is relatively fixed, e.g. 1:8 ~ 1:16. We choose
50+
# 1:9 for the last case (-c=3000ns, -p=28000ns).
51+
#
52+
##
53+
sweeptest:
54+
enabled: True
55+
safemode: True
56+
cmd:
57+
- lh_cas_lockref
58+
cmd_aarch64:
59+
cmd_x86_64:
60+
repeat: 9
61+
sweepargu: t
62+
argumax: 0
63+
skipsince: 48
64+
skipstep: 8
65+
argulist:
66+
- a: 5000
67+
c: 0ns
68+
p: 0ns
69+
o: lstopo
70+
- a: 5000
71+
c: 200ns
72+
p: 0ns
73+
o: lstopo
74+
- a: 5000
75+
c: 1000ns
76+
p: 0ns
77+
o: lstopo
78+
- a: 5000
79+
c: 200ns
80+
p: 1000ns
81+
o: lstopo
82+
- a: 5000
83+
c: 1000ns
84+
p: 1000ns
85+
o: lstopo
86+
- a: 5000
87+
c: 1000ns
88+
p: 2000ns
89+
o: lstopo
90+
- a: 5000
91+
c: 1000ns
92+
p: 3000ns
93+
o: lstopo
94+
- a: 5000
95+
c: 1000ns
96+
p: 4000ns
97+
o: lstopo
98+
- a: 5000
99+
c: 1000ns
100+
p: 5000ns
101+
o: lstopo
102+
- a: 5000
103+
c: 1000ns
104+
p: 6000ns
105+
o: lstopo
106+
- a: 5000
107+
c: 1000ns
108+
p: 7000ns
109+
o: lstopo
110+
- a: 5000
111+
c: 1000ns
112+
p: 8000ns
113+
o: lstopo
114+
- a: 5000
115+
c: 1000ns
116+
p: 9000ns
117+
o: lstopo
118+
- a: 5000
119+
c: 1000ns
120+
p: 10000ns
121+
o: lstopo
122+
- a: 5000
123+
c: 1000ns
124+
p: 11000ns
125+
o: lstopo
126+
- a: 5000
127+
c: 1000ns
128+
p: 12000ns
129+
o: lstopo
130+
- a: 5000
131+
c: 1000ns
132+
p: 13000ns
133+
o: lstopo
134+
- a: 5000
135+
c: 1000ns
136+
p: 14000ns
137+
o: lstopo
138+
- a: 5000
139+
c: 1000ns
140+
p: 15000ns
141+
o: lstopo
142+
- a: 5000
143+
c: 1000ns
144+
p: 16000ns
145+
o: lstopo
146+
- a: 5000
147+
c: 2000ns
148+
p: 20000ns
149+
o: lstopo
150+
- a: 5000
151+
c: 2000ns
152+
p: 24000ns
153+
o: lstopo
154+
- a: 5000
155+
c: 3000ns
156+
p: 28000ns
157+
o: lstopo
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
#!/bin/bash
2+
3+
# Copyright (c) 2017, The Linux Foundation. All rights reserved.
4+
#
5+
# Redistribution and use in source and binary forms, with or without
6+
# modification, are permitted provided that the following conditions are
7+
# met:
8+
# * Redistributions of source code must retain the above copyright
9+
# notice, this list of conditions and the following disclaimer.
10+
# * Redistributions in binary form must reproduce the above
11+
# copyright notice, this list of conditions and the following
12+
# disclaimer in the documentation and/or other materials provided
13+
# with the distribution.
14+
# * Neither the name of The Linux Foundation nor the names of its
15+
# contributors may be used to endorse or promote products derived
16+
# from this software without specific prior written permission.
17+
#
18+
# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED
19+
# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
20+
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT
21+
# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
22+
# BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
23+
# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
24+
# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
25+
# BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
26+
# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE
27+
# OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
28+
# IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
29+
30+
nohup sudo ./test_lockhammer.py lh_sweepdelay_cfg.yaml &

0 commit comments

Comments
 (0)