Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openanolis
cloud-kernel
提交
8ce67cb0
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,发现更多精彩内容 >>
提交
8ce67cb0
编写于
3月 17, 2015
作者:
J
Jaegeuk Kim
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
f2fs: add some tracepoints to debug volatile and atomic writes
Signed-off-by:
N
Jaegeuk Kim
<
jaegeuk@kernel.org
>
上级
3c6c2beb
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
36 addition
and
1 deletion
+36
-1
fs/f2fs/data.c
fs/f2fs/data.c
+2
-0
fs/f2fs/f2fs.h
fs/f2fs/f2fs.h
+4
-0
fs/f2fs/segment.c
fs/f2fs/segment.c
+4
-0
include/trace/events/f2fs.h
include/trace/events/f2fs.h
+26
-1
未找到文件。
fs/f2fs/data.c
浏览文件 @
8ce67cb0
...
...
@@ -1287,9 +1287,11 @@ int do_write_data_page(struct page *page, struct f2fs_io_info *fio)
need_inplace_update
(
inode
)))
{
rewrite_data_page
(
page
,
fio
);
set_inode_flag
(
F2FS_I
(
inode
),
FI_UPDATE_WRITE
);
trace_f2fs_do_write_data_page
(
page
,
IPU
);
}
else
{
write_data_page
(
page
,
&
dn
,
fio
);
f2fs_update_extent_cache
(
&
dn
);
trace_f2fs_do_write_data_page
(
page
,
OPU
);
set_inode_flag
(
F2FS_I
(
inode
),
FI_APPEND_WRITE
);
if
(
page
->
index
==
0
)
set_inode_flag
(
F2FS_I
(
inode
),
FI_FIRST_BLOCK_WRITTEN
);
...
...
fs/f2fs/f2fs.h
浏览文件 @
8ce67cb0
...
...
@@ -556,6 +556,10 @@ enum page_type {
META
,
NR_PAGE_TYPE
,
META_FLUSH
,
INMEM
,
/* the below types are used by tracepoints only. */
INMEM_DROP
,
IPU
,
OPU
,
};
struct
f2fs_io_info
{
...
...
fs/f2fs/segment.c
浏览文件 @
8ce67cb0
...
...
@@ -205,6 +205,8 @@ void register_inmem_page(struct inode *inode, struct page *page)
list_add_tail
(
&
new
->
list
,
&
fi
->
inmem_pages
);
inc_page_count
(
F2FS_I_SB
(
inode
),
F2FS_INMEM_PAGES
);
mutex_unlock
(
&
fi
->
inmem_lock
);
trace_f2fs_register_inmem_page
(
page
,
INMEM
);
}
void
commit_inmem_pages
(
struct
inode
*
inode
,
bool
abort
)
...
...
@@ -238,11 +240,13 @@ void commit_inmem_pages(struct inode *inode, bool abort)
f2fs_wait_on_page_writeback
(
cur
->
page
,
DATA
);
if
(
clear_page_dirty_for_io
(
cur
->
page
))
inode_dec_dirty_pages
(
inode
);
trace_f2fs_commit_inmem_page
(
cur
->
page
,
INMEM
);
do_write_data_page
(
cur
->
page
,
&
fio
);
submit_bio
=
true
;
}
f2fs_put_page
(
cur
->
page
,
1
);
}
else
{
trace_f2fs_commit_inmem_page
(
cur
->
page
,
INMEM_DROP
);
put_page
(
cur
->
page
);
}
radix_tree_delete
(
&
fi
->
inmem_root
,
cur
->
page
->
index
);
...
...
include/trace/events/f2fs.h
浏览文件 @
8ce67cb0
...
...
@@ -14,7 +14,11 @@
{ NODE, "NODE" }, \
{ DATA, "DATA" }, \
{ META, "META" }, \
{ META_FLUSH, "META_FLUSH" })
{ META_FLUSH, "META_FLUSH" }, \
{ INMEM, "INMEM" }, \
{ INMEM_DROP, "INMEM_DROP" }, \
{ IPU, "IN-PLACE" }, \
{ OPU, "OUT-OF-PLACE" })
#define F2FS_BIO_MASK(t) (t & (READA | WRITE_FLUSH_FUA))
#define F2FS_BIO_EXTRA_MASK(t) (t & (REQ_META | REQ_PRIO))
...
...
@@ -854,6 +858,13 @@ DEFINE_EVENT(f2fs__page, f2fs_writepage,
TP_ARGS
(
page
,
type
)
);
DEFINE_EVENT
(
f2fs__page
,
f2fs_do_write_data_page
,
TP_PROTO
(
struct
page
*
page
,
int
type
),
TP_ARGS
(
page
,
type
)
);
DEFINE_EVENT
(
f2fs__page
,
f2fs_readpage
,
TP_PROTO
(
struct
page
*
page
,
int
type
),
...
...
@@ -875,6 +886,20 @@ DEFINE_EVENT(f2fs__page, f2fs_vm_page_mkwrite,
TP_ARGS
(
page
,
type
)
);
DEFINE_EVENT
(
f2fs__page
,
f2fs_register_inmem_page
,
TP_PROTO
(
struct
page
*
page
,
int
type
),
TP_ARGS
(
page
,
type
)
);
DEFINE_EVENT
(
f2fs__page
,
f2fs_commit_inmem_page
,
TP_PROTO
(
struct
page
*
page
,
int
type
),
TP_ARGS
(
page
,
type
)
);
TRACE_EVENT
(
f2fs_writepages
,
TP_PROTO
(
struct
inode
*
inode
,
struct
writeback_control
*
wbc
,
int
type
),
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录