Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenXiangShan
NEMU
提交
a24ae56f
N
NEMU
项目概览
OpenXiangShan
/
NEMU
大约 1 年 前同步成功
通知
7
Star
171
Fork
67
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
N
NEMU
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
a24ae56f
编写于
1月 02, 2023
作者:
Z
Zhou Yaoyang
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
tracing: separate MEM_PROF from DATAFLOW_PROF
上级
08bf9456
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
11 addition
and
7 deletion
+11
-7
Kconfig
Kconfig
+4
-0
include/cpu/decode.h
include/cpu/decode.h
+1
-1
src/memory/host-tlb.c
src/memory/host-tlb.c
+4
-4
src/memory/vaddr.c
src/memory/vaddr.c
+2
-2
未找到文件。
Kconfig
浏览文件 @
a24ae56f
...
...
@@ -340,4 +340,8 @@ config DATAFLOW_PROF
bool "Profiling dataflow dependency"
default n
config MEM_PROF
bool "Profiling memory"
default n
endmenu
include/cpu/decode.h
浏览文件 @
a24ae56f
...
...
@@ -58,7 +58,7 @@ typedef struct Decode {
rtlreg_t
tmp_reg
[
4
];
#endif // CONFIG_RVV_010
#if
def CONFIG_DATAFLOW_PROF
#if
defined(CONFIG_DATAFLOW_PROF) || defined(CONFIG_MEM_PROF)
uint8_t
fsrc3_id
;
uint8_t
mem_width
;
uint8_t
is_store
;
...
...
src/memory/host-tlb.c
浏览文件 @
a24ae56f
...
...
@@ -61,7 +61,7 @@ static word_t hosttlb_read_slowpath(struct Decode *s, vaddr_t vaddr, int len, in
e
->
gvpn
=
hosttlb_vpn
(
vaddr
);
e
->
gppbase
=
paddr
&
(
~
(
uint64_t
)
PAGE_MASK
);
}
#ifdef CONFIG_
DATAFLOW
_PROF
#ifdef CONFIG_
MEM
_PROF
if
(
s
!=
NULL
)
{
s
->
is_store
=
false
;
s
->
paddr
=
paddr
;
...
...
@@ -82,7 +82,7 @@ static void hosttlb_write_slowpath(struct Decode *s, vaddr_t vaddr, int len, wor
e
->
gvpn
=
hosttlb_vpn
(
vaddr
);
e
->
gppbase
=
paddr
&
(
~
(
uint64_t
)
PAGE_MASK
);
}
#ifdef CONFIG_
DATAFLOW
_PROF
#ifdef CONFIG_
MEM
_PROF
s
->
is_store
=
true
;
s
->
paddr
=
paddr
;
s
->
mem_width
=
len
;
...
...
@@ -100,7 +100,7 @@ word_t hosttlb_read(struct Decode *s, vaddr_t vaddr, int len, int type) {
return
hosttlb_read_slowpath
(
s
,
vaddr
,
len
,
type
);
}
else
{
Logm
(
"Host TLB fast path"
);
#ifdef CONFIG_
DATAFLOW
_PROF
#ifdef CONFIG_
MEM
_PROF
paddr_t
paddr
=
e
->
gppbase
|
(
vaddr
&
PAGE_MASK
);
if
(
s
!=
NULL
)
{
// mem read
s
->
is_store
=
false
;
...
...
@@ -122,7 +122,7 @@ void hosttlb_write(struct Decode *s, vaddr_t vaddr, int len, word_t data) {
hosttlb_write_slowpath
(
s
,
vaddr
,
len
,
data
);
return
;
}
#ifdef CONFIG_
DATAFLOW
_PROF
#ifdef CONFIG_
MEM
_PROF
paddr_t
paddr
=
e
->
gppbase
|
(
vaddr
&
PAGE_MASK
);
s
->
is_store
=
true
;
s
->
paddr
=
paddr
;
...
...
src/memory/vaddr.c
浏览文件 @
a24ae56f
...
...
@@ -106,7 +106,7 @@ static inline word_t vaddr_read_internal(void *s, vaddr_t addr, int len, int typ
}
if
(
mmu_mode
==
MMU_DIRECT
)
{
Logm
(
"Paddr reading directly"
);
#ifdef CONFIG_
DATAFLOW
_PROF
#ifdef CONFIG_
MEM
_PROF
if
(
s
!=
NULL
)
{
// mem read
struct
Decode
*
_s
=
s
;
_s
->
is_store
=
false
;
...
...
@@ -141,7 +141,7 @@ void vaddr_write(struct Decode *s, vaddr_t addr, int len, word_t data, int mmu_m
#endif
if
(
unlikely
(
mmu_mode
==
MMU_DYNAMIC
))
mmu_mode
=
isa_mmu_check
(
addr
,
len
,
MEM_TYPE_WRITE
);
if
(
mmu_mode
==
MMU_DIRECT
)
{
#ifdef CONFIG_
DATAFLOW
_PROF
#ifdef CONFIG_
MEM
_PROF
s
->
is_store
=
true
;
s
->
paddr
=
addr
;
s
->
mem_width
=
len
;
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录