xref: /linux/mm/debug_page_ref.c (revision 95813b8faa0cd315f61a8b9d9c523792370b693e)
1*95813b8fSJoonsoo Kim #include <linux/mm_types.h>
2*95813b8fSJoonsoo Kim #include <linux/tracepoint.h>
3*95813b8fSJoonsoo Kim 
4*95813b8fSJoonsoo Kim #define CREATE_TRACE_POINTS
5*95813b8fSJoonsoo Kim #include <trace/events/page_ref.h>
6*95813b8fSJoonsoo Kim 
7*95813b8fSJoonsoo Kim void __page_ref_set(struct page *page, int v)
8*95813b8fSJoonsoo Kim {
9*95813b8fSJoonsoo Kim 	trace_page_ref_set(page, v);
10*95813b8fSJoonsoo Kim }
11*95813b8fSJoonsoo Kim EXPORT_SYMBOL(__page_ref_set);
12*95813b8fSJoonsoo Kim EXPORT_TRACEPOINT_SYMBOL(page_ref_set);
13*95813b8fSJoonsoo Kim 
14*95813b8fSJoonsoo Kim void __page_ref_mod(struct page *page, int v)
15*95813b8fSJoonsoo Kim {
16*95813b8fSJoonsoo Kim 	trace_page_ref_mod(page, v);
17*95813b8fSJoonsoo Kim }
18*95813b8fSJoonsoo Kim EXPORT_SYMBOL(__page_ref_mod);
19*95813b8fSJoonsoo Kim EXPORT_TRACEPOINT_SYMBOL(page_ref_mod);
20*95813b8fSJoonsoo Kim 
21*95813b8fSJoonsoo Kim void __page_ref_mod_and_test(struct page *page, int v, int ret)
22*95813b8fSJoonsoo Kim {
23*95813b8fSJoonsoo Kim 	trace_page_ref_mod_and_test(page, v, ret);
24*95813b8fSJoonsoo Kim }
25*95813b8fSJoonsoo Kim EXPORT_SYMBOL(__page_ref_mod_and_test);
26*95813b8fSJoonsoo Kim EXPORT_TRACEPOINT_SYMBOL(page_ref_mod_and_test);
27*95813b8fSJoonsoo Kim 
28*95813b8fSJoonsoo Kim void __page_ref_mod_and_return(struct page *page, int v, int ret)
29*95813b8fSJoonsoo Kim {
30*95813b8fSJoonsoo Kim 	trace_page_ref_mod_and_return(page, v, ret);
31*95813b8fSJoonsoo Kim }
32*95813b8fSJoonsoo Kim EXPORT_SYMBOL(__page_ref_mod_and_return);
33*95813b8fSJoonsoo Kim EXPORT_TRACEPOINT_SYMBOL(page_ref_mod_and_return);
34*95813b8fSJoonsoo Kim 
35*95813b8fSJoonsoo Kim void __page_ref_mod_unless(struct page *page, int v, int u)
36*95813b8fSJoonsoo Kim {
37*95813b8fSJoonsoo Kim 	trace_page_ref_mod_unless(page, v, u);
38*95813b8fSJoonsoo Kim }
39*95813b8fSJoonsoo Kim EXPORT_SYMBOL(__page_ref_mod_unless);
40*95813b8fSJoonsoo Kim EXPORT_TRACEPOINT_SYMBOL(page_ref_mod_unless);
41*95813b8fSJoonsoo Kim 
42*95813b8fSJoonsoo Kim void __page_ref_freeze(struct page *page, int v, int ret)
43*95813b8fSJoonsoo Kim {
44*95813b8fSJoonsoo Kim 	trace_page_ref_freeze(page, v, ret);
45*95813b8fSJoonsoo Kim }
46*95813b8fSJoonsoo Kim EXPORT_SYMBOL(__page_ref_freeze);
47*95813b8fSJoonsoo Kim EXPORT_TRACEPOINT_SYMBOL(page_ref_freeze);
48*95813b8fSJoonsoo Kim 
49*95813b8fSJoonsoo Kim void __page_ref_unfreeze(struct page *page, int v)
50*95813b8fSJoonsoo Kim {
51*95813b8fSJoonsoo Kim 	trace_page_ref_unfreeze(page, v);
52*95813b8fSJoonsoo Kim }
53*95813b8fSJoonsoo Kim EXPORT_SYMBOL(__page_ref_unfreeze);
54*95813b8fSJoonsoo Kim EXPORT_TRACEPOINT_SYMBOL(page_ref_unfreeze);
55