Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openeuler
A-Tune
提交
ff57a47f
A
A-Tune
项目概览
openeuler
/
A-Tune
通知
5
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
A
A-Tune
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
ff57a47f
编写于
3月 19, 2020
作者:
O
openeuler-ci-bot
提交者:
Gitee
3月 19, 2020
浏览文件
操作
浏览文件
下载
差异文件
!62 atune: fix the error that is failed to get bandwidth in perf-memBW.sh
Merge pull request !62 from hanxinke/test_hxk
上级
1007ebb6
b3bd0ae5
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
102 addition
and
96 deletion
+102
-96
collection/collect/perf-memBW.sh
collection/collect/perf-memBW.sh
+102
-96
未找到文件。
collection/collect/perf-memBW.sh
浏览文件 @
ff57a47f
...
...
@@ -10,125 +10,131 @@
# See the Mulan PSL v1 for more details.
# Create: 2019-10-29
function
perf_Mem_bw
()
{
function
perf_Mem_bw
()
{
if
dmidecode
-t
processor |
grep
-q
-E
'Kunpeng|Hisilicon'
;
then
if
dmidecode
-t
processor |
grep
-q
-E
'Kunpeng|Hisilicon'
;
then
CPU0_Die0_BW_R
=
"hisi_sccl1_ddrc0/flux_rd/,hisi_sccl1_ddrc1/flux_rd/,hisi_sccl1_ddrc2/flux_rd/,hisi_sccl1_ddrc3/flux_rd/"
CPU0_Die0_BW_W
=
"hisi_sccl1_ddrc0/flux_wr/,hisi_sccl1_ddrc1/flux_wr/,hisi_sccl1_ddrc2/flux_wr/,hisi_sccl1_ddrc3/flux_wr/"
CPU0_Die1_BW_R
=
"hisi_sccl3_ddrc0/flux_rd/,hisi_sccl3_ddrc1/flux_rd/,hisi_sccl3_ddrc2/flux_rd/,hisi_sccl3_ddrc3/flux_rd/"
CPU0_Die1_BW_W
=
"hisi_sccl3_ddrc0/flux_wr/,hisi_sccl3_ddrc1/flux_wr/,hisi_sccl3_ddrc2/flux_wr/,hisi_sccl3_ddrc3/flux_wr/"
CPU0_Die0_BW_R
=
"hisi_sccl1_ddrc0/flux_rd/,hisi_sccl1_ddrc1/flux_rd/,hisi_sccl1_ddrc2/flux_rd/,hisi_sccl1_ddrc3/flux_rd/"
CPU0_Die0_BW_W
=
"hisi_sccl1_ddrc0/flux_wr/,hisi_sccl1_ddrc1/flux_wr/,hisi_sccl1_ddrc2/flux_wr/,hisi_sccl1_ddrc3/flux_wr/"
CPU0_Die1_BW_R
=
"hisi_sccl3_ddrc0/flux_rd/,hisi_sccl3_ddrc1/flux_rd/,hisi_sccl3_ddrc2/flux_rd/,hisi_sccl3_ddrc3/flux_rd/"
CPU0_Die1_BW_W
=
"hisi_sccl3_ddrc0/flux_wr/,hisi_sccl3_ddrc1/flux_wr/,hisi_sccl3_ddrc2/flux_wr/,hisi_sccl3_ddrc3/flux_wr/"
CPU1_Die0_BW_R
=
"hisi_sccl5_ddrc0/flux_rd/,hisi_sccl5_ddrc1/flux_rd/,hisi_sccl5_ddrc2/flux_rd/,hisi_sccl5_ddrc3/flux_rd/"
CPU1_Die0_BW_W
=
"hisi_sccl5_ddrc0/flux_wr/,hisi_sccl5_ddrc1/flux_wr/,hisi_sccl5_ddrc2/flux_wr/,hisi_sccl5_ddrc3/flux_wr/"
CPU1_Die1_BW_R
=
"hisi_sccl7_ddrc0/flux_rd/,hisi_sccl7_ddrc1/flux_rd/,hisi_sccl7_ddrc2/flux_rd/,hisi_sccl7_ddrc3/flux_rd/"
CPU1_Die1_BW_W
=
"hisi_sccl7_ddrc0/flux_wr/,hisi_sccl7_ddrc1/flux_wr/,hisi_sccl7_ddrc2/flux_wr/,hisi_sccl7_ddrc3/flux_wr/"
CPU1_Die0_BW_R
=
"hisi_sccl5_ddrc0/flux_rd/,hisi_sccl5_ddrc1/flux_rd/,hisi_sccl5_ddrc2/flux_rd/,hisi_sccl5_ddrc3/flux_rd/"
CPU1_Die0_BW_W
=
"hisi_sccl5_ddrc0/flux_wr/,hisi_sccl5_ddrc1/flux_wr/,hisi_sccl5_ddrc2/flux_wr/,hisi_sccl5_ddrc3/flux_wr/"
CPU1_Die1_BW_R
=
"hisi_sccl7_ddrc0/flux_rd/,hisi_sccl7_ddrc1/flux_rd/,hisi_sccl7_ddrc2/flux_rd/,hisi_sccl7_ddrc3/flux_rd/"
CPU1_Die1_BW_W
=
"hisi_sccl7_ddrc0/flux_wr/,hisi_sccl7_ddrc1/flux_wr/,hisi_sccl7_ddrc2/flux_wr/,hisi_sccl7_ddrc3/flux_wr/"
BW_Events
=
"
$CPU0_Die0_BW_R
,
$CPU0_Die0_BW_W
,
$CPU0_Die1_BW_R
,
$CPU0_Die1_BW_W
,
$CPU1_Die0_BW_R
,
$CPU1_Die0_BW_W
,
$CPU1_Die1_BW_R
,
$CPU1_Die1_BW_W
"
else
BW_Events
=
"
$CPU0_Die0_BW_R
,
$CPU0_Die0_BW_W
,
$CPU0_Die1_BW_R
,
$CPU0_Die1_BW_W
,
$CPU1_Die0_BW_R
,
$CPU1_Die0_BW_W
,
$CPU1_Die1_BW_R
,
$CPU1_Die1_BW_W
"
echo
"not Support This CPU Architecture..."
exit
all_events
=
$(
perf list |
awk
'{print $1}'
)
for
event
in
$all_events
;
do
if
[[
$BW_Events
=
~
$event
]]
;
then
aim_events
=
$aim_events
,
$event
fi
done
else
fi
echo
"not Support This CPU Architecture..."
exit
let
interval
=
$interval
*
1000
fi
interval
=
$((
interval
*
1000
))
timeout
$ts
perf
stat
-x
','
-a
-I
$interval
-e
$BW_Events
2>&1 |
\
awk
-F
,
'
BEGIN {
tpre=-1;
first=1;
}
{
tcurr=$1;
if(first==1)
{
tpre=tcurr;
first=0;
printf("#################################Start to monitor The System DDR Bandwidth##################################################\n");
printf(" MEM_Total CPU0 CPU1 CPU0_Die0 CPU0_Die1 CPU1_Die0 CPU1_Die1 MEM_CPU0_Die0_R MEM_CPU0_Die1_R MEM_CPU1_Die0_R MEM_CPU1_Die1_R MEM_CPU0_Die0_W MEM_CPU0_Die1_W MEM_CPU1_Die0_W MEM_CPU1_Die1_W\n");
}
timeout
"
$ts
"
perf
stat
-x
','
-a
-I
$interval
-e
"
$aim_events
"
2>&1 |
\
awk
-F
,
'
BEGIN {
tpre=-1;
first=1;
}
{
tcurr=$1;
if(first==1)
{
tpre=tcurr;
first=0;
printf("#################################Start to monitor The System DDR Bandwidth##################################################\n");
printf(" MEM_Total CPU0 CPU1 CPU0_Die0 CPU0_Die1 CPU1_Die0 CPU1_Die1 MEM_CPU0_Die0_R MEM_CPU0_Die1_R MEM_CPU1_Die0_R MEM_CPU1_Die1_R MEM_CPU0_Die0_W MEM_CPU0_Die1_W MEM_CPU1_Die0_W MEM_CPU1_Die1_W\n");
}
if(tcurr != tpre)
{
if(tcurr != tpre)
{
MEM_CPU0_Die0_R = CPU0_Die0_R*32/1024/1024;
MEM_CPU0_Die1_R = CPU0_Die1_R*32/1024/1024;
MEM_CPU1_Die0_R = CPU1_Die0_R*32/1024/1024;
MEM_CPU1_Die1_R = CPU1_Die1_R*32/1024/1024;
MEM_CPU0_Die0_W = CPU0_Die0_W*32/1024/1024;
MEM_CPU0_Die1_W = CPU0_Die1_W*32/1024/1024;
MEM_CPU1_Die0_W = CPU1_Die0_W*32/1024/1024;
MEM_CPU1_Die1_W = CPU1_Die1_W*32/1024/1024;
MEM_CPU0_Die0_R = CPU0_Die0_R*32/1024/1024;
MEM_CPU0_Die1_R = CPU0_Die1_R*32/1024/1024;
MEM_CPU1_Die0_R = CPU1_Die0_R*32/1024/1024;
MEM_CPU1_Die1_R = CPU1_Die1_R*32/1024/1024;
MEM_CPU0_Die0 = MEM_CPU0_Die0_R + MEM_CPU0_Die0_W;
MEM_CPU0_Die1 = MEM_CPU0_Die1_R + MEM_CPU0_Die1_W;
MEM_CPU0_Die0_W = CPU0_Die0_W*32/1024/1024;
MEM_CPU0_Die1_W = CPU0_Die1_W*32/1024/1024;
MEM_CPU1_Die0_W = CPU1_Die0_W*32/1024/1024;
MEM_CPU1_Die1_W = CPU1_Die1_W*32/1024/1024;
MEM_CPU0_Die0 = MEM_CPU0_Die0_R + MEM_CPU0_Die0_W;
MEM_CPU0_Die1 = MEM_CPU0_Die1_R + MEM_CPU0_Die1_W;
MEM_CPU1_Die0 = MEM_CPU1_Die0_R + MEM_CPU1_Die0_W;
MEM_CPU1_Die1 = MEM_CPU1_Die1_R + MEM_CPU1_Die1_W;
MEM_CPU1_Die0 = MEM_CPU1_Die0_R + MEM_CPU1_Die0_W;
MEM_CPU1_Die1 = MEM_CPU1_Die1_R + MEM_CPU1_Die1_W;
MEM_CPU0 = MEM_CPU0_Die0_R + MEM_CPU0_Die0_W + MEM_CPU0_Die1_R + MEM_CPU0_Die1_W;
MEM_CPU1 = MEM_CPU1_Die0_R + MEM_CPU1_Die0_W + MEM_CPU1_Die1_R + MEM_CPU1_Die1_W;
MEM_CPU0 = MEM_CPU0_Die0_R + MEM_CPU0_Die0_W + MEM_CPU0_Die1_R + MEM_CPU0_Die1_W;
MEM_CPU1 = MEM_CPU1_Die0_R + MEM_CPU1_Die0_W + MEM_CPU1_Die1_R + MEM_CPU1_Die1_W;
MEM_Total = MEM_CPU0 + MEM_CPU1;
MEM_Total = MEM_CPU0 + MEM_CPU1;
printf("%10.2f %10.2f %10.2f %10.2f %10.2f %10.2f %10.2f %10.2f %10.2f %10.2f %10.2f %10.2f %10.2f %10.2f %10.2f\n",MEM_Total,MEM_CPU0,MEM_CPU1,MEM_CPU0_Die0,MEM_CPU0_Die1,MEM_CPU1_Die0,MEM_CPU1_Die1,MEM_CPU0_Die0_R,MEM_CPU0_Die1_R,MEM_CPU1_Die0_R,MEM_CPU1_Die1_R,MEM_CPU0_Die0_W,MEM_CPU0_Die1_W,MEM_CPU1_Die0_W,MEM_CPU1_Die1_W);
CPU0_Die0_R=0;
CPU0_Die0_W=0;
CPU0_Die1_R=0;
CPU0_Die1_W=0;
CPU1_Die0_R=0;
CPU1_Die0_W=0;
CPU1_Die1_R=0;
CPU1_Die1_W=0;
tpre=tcurr;
printf("%10.2f %10.2f %10.2f %10.2f %10.2f %10.2f %10.2f %10.2f %10.2f %10.2f %10.2f %10.2f %10.2f %10.2f %10.2f\n",MEM_Total,MEM_CPU0,MEM_CPU1,MEM_CPU0_Die0,MEM_CPU0_Die1,MEM_CPU1_Die0,MEM_CPU1_Die1,MEM_CPU0_Die0_R,MEM_CPU0_Die1_R,MEM_CPU1_Die0_R,MEM_CPU1_Die1_R,MEM_CPU0_Die0_W,MEM_CPU0_Die1_W,MEM_CPU1_Die0_W,MEM_CPU1_Die1_W);
CPU0_Die0_R=0;
CPU0_Die0_W=0;
CPU0_Die1_R=0;
CPU0_Die1_W=0;
CPU1_Die0_R=0;
CPU1_Die0_W=0;
CPU1_Die1_R=0;
CPU1_Die1_W=0;
tpre=tcurr;
}
switch ($4)
{
case /sccl1.*rd/:
CPU0_Die0_R += $2;
break;
case /sccl1.*wr/:
CPU0_Die0_W += $2;
break;
case /sccl3.*rd/:
CPU0_Die1_R += $2;
break;
case /sccl3.*wr/:
CPU0_Die1_W += $2;
break;
case /sccl5.*rd/:
CPU1_Die0_R += $2;
break;
case /sccl5.*wr/:
CPU1_Die0_W += $2;
break;
case /sccl7.*rd/:
CPU1_Die1_R += $2;
break;
case /sccl7.*wr/:
CPU1_Die1_W += $2;
break;
}
}
'
}
switch ($4)
{
case /sccl1.*rd/:
CPU0_Die0_R += $2;
break;
case /sccl1.*wr/:
CPU0_Die0_W += $2;
break;
case /sccl3.*rd/:
CPU0_Die1_R += $2;
break;
case /sccl3.*wr/:
CPU0_Die1_W += $2;
break;
case /sccl5.*rd/:
CPU1_Die0_R += $2;
break;
case /sccl5.*wr/:
CPU1_Die0_W += $2;
break;
case /sccl7.*rd/:
CPU1_Die1_R += $2;
break;
case /sccl7.*wr/:
CPU1_Die1_W += $2;
break;
}
}
'
}
if
[
!
$#
==
1
]
;
then
echo
"Usage: perf_mem.sh sample_interval"
exit
echo
"Usage: perf_mem.sh sample_interval"
exit
fi
ts
=
0
interval
=
$1
perf_Mem_bw
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录