Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openanolis
cloud-kernel
提交
90bb6fc5
cloud-kernel
项目概览
openanolis
/
cloud-kernel
大约 1 年 前同步成功
通知
158
Star
36
Fork
7
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
10
列表
看板
标记
里程碑
合并请求
2
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
cloud-kernel
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
10
Issue
10
列表
看板
标记
里程碑
合并请求
2
合并请求
2
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
90bb6fc5
编写于
12月 31, 2009
作者:
A
Avi Kivity
提交者:
Marcelo Tosatti
3月 01, 2010
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
KVM: MMU: Add tracepoint for guest page aging
Signed-off-by:
N
Avi Kivity
<
avi@redhat.com
>
上级
43db6697
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
30 addition
and
3 deletion
+30
-3
arch/x86/kvm/mmu.c
arch/x86/kvm/mmu.c
+8
-3
include/trace/events/kvm.h
include/trace/events/kvm.h
+22
-0
未找到文件。
arch/x86/kvm/mmu.c
浏览文件 @
90bb6fc5
...
...
@@ -151,6 +151,9 @@ module_param(oos_shadow, bool, 0644);
#define ACC_USER_MASK PT_USER_MASK
#define ACC_ALL (ACC_EXEC_MASK | ACC_WRITE_MASK | ACC_USER_MASK)
#include <trace/events/kvm.h>
#undef TRACE_INCLUDE_FILE
#define CREATE_TRACE_POINTS
#include "mmutrace.h"
...
...
@@ -792,6 +795,7 @@ static int kvm_handle_hva(struct kvm *kvm, unsigned long hva,
unsigned
long
data
))
{
int
i
,
j
;
int
ret
;
int
retval
=
0
;
struct
kvm_memslots
*
slots
;
...
...
@@ -806,16 +810,17 @@ static int kvm_handle_hva(struct kvm *kvm, unsigned long hva,
if
(
hva
>=
start
&&
hva
<
end
)
{
gfn_t
gfn_offset
=
(
hva
-
start
)
>>
PAGE_SHIFT
;
retval
|=
handler
(
kvm
,
&
memslot
->
rmap
[
gfn_offset
],
data
);
ret
=
handler
(
kvm
,
&
memslot
->
rmap
[
gfn_offset
],
data
);
for
(
j
=
0
;
j
<
KVM_NR_PAGE_SIZES
-
1
;
++
j
)
{
int
idx
=
gfn_offset
;
idx
/=
KVM_PAGES_PER_HPAGE
(
PT_DIRECTORY_LEVEL
+
j
);
ret
val
|=
handler
(
kvm
,
ret
|=
handler
(
kvm
,
&
memslot
->
lpage_info
[
j
][
idx
].
rmap_pde
,
data
);
}
trace_kvm_age_page
(
hva
,
memslot
,
ret
);
retval
|=
ret
;
}
}
...
...
include/trace/events/kvm.h
浏览文件 @
90bb6fc5
...
...
@@ -164,6 +164,28 @@ TRACE_EVENT(kvm_fpu,
TP_printk
(
"%s"
,
__print_symbolic
(
__entry
->
load
,
kvm_fpu_load_symbol
))
);
TRACE_EVENT
(
kvm_age_page
,
TP_PROTO
(
ulong
hva
,
struct
kvm_memory_slot
*
slot
,
int
ref
),
TP_ARGS
(
hva
,
slot
,
ref
),
TP_STRUCT__entry
(
__field
(
u64
,
hva
)
__field
(
u64
,
gfn
)
__field
(
u8
,
referenced
)
),
TP_fast_assign
(
__entry
->
hva
=
hva
;
__entry
->
gfn
=
slot
->
base_gfn
+
((
hva
-
slot
->
userspace_addr
)
>>
PAGE_SHIFT
);
__entry
->
referenced
=
ref
;
),
TP_printk
(
"hva %llx gfn %llx %s"
,
__entry
->
hva
,
__entry
->
gfn
,
__entry
->
referenced
?
"YOUNG"
:
"OLD"
)
);
#endif
/* _TRACE_KVM_MAIN_H */
/* This part must be outside protection */
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录