• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 #include <linux/atomic.h>
2 #include "debug.h"
3 
4 ssize_t ramster_foreign_eph_pages;
5 ssize_t ramster_foreign_pers_pages;
6 #ifdef CONFIG_DEBUG_FS
7 #include <linux/debugfs.h>
8 
9 ssize_t ramster_eph_pages_remoted;
10 ssize_t ramster_pers_pages_remoted;
11 ssize_t ramster_eph_pages_remote_failed;
12 ssize_t ramster_pers_pages_remote_failed;
13 ssize_t ramster_remote_eph_pages_succ_get;
14 ssize_t ramster_remote_pers_pages_succ_get;
15 ssize_t ramster_remote_eph_pages_unsucc_get;
16 ssize_t ramster_remote_pers_pages_unsucc_get;
17 ssize_t ramster_pers_pages_remote_nomem;
18 ssize_t ramster_remote_objects_flushed;
19 ssize_t ramster_remote_object_flushes_failed;
20 ssize_t ramster_remote_pages_flushed;
21 ssize_t ramster_remote_page_flushes_failed;
22 
23 #define ATTR(x)  { .name = #x, .val = &ramster_##x, }
24 static struct debug_entry {
25 	const char *name;
26 	ssize_t *val;
27 } attrs[] = {
28 	ATTR(eph_pages_remoted),
29 	ATTR(pers_pages_remoted),
30 	ATTR(eph_pages_remote_failed),
31 	ATTR(pers_pages_remote_failed),
32 	ATTR(remote_eph_pages_succ_get),
33 	ATTR(remote_pers_pages_succ_get),
34 	ATTR(remote_eph_pages_unsucc_get),
35 	ATTR(remote_pers_pages_unsucc_get),
36 	ATTR(pers_pages_remote_nomem),
37 	ATTR(remote_objects_flushed),
38 	ATTR(remote_pages_flushed),
39 	ATTR(remote_object_flushes_failed),
40 	ATTR(remote_page_flushes_failed),
41 	ATTR(foreign_eph_pages),
42 	ATTR(foreign_eph_pages_max),
43 	ATTR(foreign_pers_pages),
44 	ATTR(foreign_pers_pages_max),
45 };
46 #undef ATTR
47 
ramster_debugfs_init(void)48 int ramster_debugfs_init(void)
49 {
50 	int i;
51 	struct dentry *root = debugfs_create_dir("ramster", NULL);
52 	if (root == NULL)
53 		return -ENXIO;
54 
55 	for (i = 0; i < ARRAY_SIZE(attrs); i++)
56 		if (!debugfs_create_size_t(attrs[i].name,
57 				S_IRUGO, root, attrs[i].val))
58 			goto out;
59 	return 0;
60 out:
61 	return -ENODEV;
62 }
63 #else
ramster_debugfs_init(void)64 static inline int ramster_debugfs_init(void)
65 {
66 	return 0;
67 }
68 #endif
69