blob: 1041dbeb52ae4f2c73e36a06dc2c54611f074e40 [file] [log] [blame]
Jaegeuk Kim63f92dd2014-12-17 19:45:05 -08001/*
2 * f2fs IO tracer
3 *
4 * Copyright (c) 2014 Motorola Mobility
5 * Copyright (c) 2014 Jaegeuk Kim <jaegeuk@kernel.org>
6 *
7 * This program is free software; you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License version 2 as
9 * published by the Free Software Foundation.
10 */
11#ifndef __F2FS_TRACE_H__
12#define __F2FS_TRACE_H__
13
14#ifdef CONFIG_F2FS_IO_TRACE
15#include <trace/events/f2fs.h>
16
Jaegeuk Kim0e689d02014-12-17 19:51:57 -080017enum file_type {
18 __NORMAL_FILE,
19 __DIR_FILE,
20 __NODE_FILE,
21 __META_FILE,
22 __ATOMIC_FILE,
23 __VOLATILE_FILE,
24 __MISC_FILE,
25};
26
27struct last_io_info {
28 int major, minor;
29 pid_t pid;
30 enum file_type type;
31 struct f2fs_io_info fio;
32 block_t len;
33};
34
Jaegeuk Kim63f92dd2014-12-17 19:45:05 -080035extern void f2fs_trace_pid(struct page *);
36extern void f2fs_trace_ios(struct page *, struct f2fs_io_info *, int);
Jaegeuk Kimc0508652015-01-07 14:07:36 -080037extern void f2fs_build_trace_ios(void);
Jaegeuk Kim351f4fb2015-01-07 14:09:48 -080038extern void f2fs_destroy_trace_ios(void);
Jaegeuk Kim63f92dd2014-12-17 19:45:05 -080039#else
40#define f2fs_trace_pid(p)
41#define f2fs_trace_ios(p, i, n)
Jaegeuk Kimc0508652015-01-07 14:07:36 -080042#define f2fs_build_trace_ios()
Jaegeuk Kim351f4fb2015-01-07 14:09:48 -080043#define f2fs_destroy_trace_ios()
Jaegeuk Kim63f92dd2014-12-17 19:45:05 -080044
45#endif
46#endif /* __F2FS_TRACE_H__ */