diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2016-07-26 22:55:54 -0400 |
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2016-07-26 22:55:54 -0400 |
| commit | 0e06f5c0deeef0332a5da2ecb8f1fcf3e024d958 (patch) | |
| tree | e0f0af4aadf10c713c5cf1b65356844b3c9b3215 /include/trace | |
| parent | f7816ad0f878dacd5f0120476f9b836ccf8699ea (diff) | |
| parent | 8f19b0c058d93a678a99dd6fec03af2e769943f2 (diff) | |
Merge branch 'akpm' (patches from Andrew)
Merge updates from Andrew Morton:
- a few misc bits
- ocfs2
- most(?) of MM
* emailed patches from Andrew Morton <akpm@linux-foundation.org>: (125 commits)
thp: fix comments of __pmd_trans_huge_lock()
cgroup: remove unnecessary 0 check from css_from_id()
cgroup: fix idr leak for the first cgroup root
mm: memcontrol: fix documentation for compound parameter
mm: memcontrol: remove BUG_ON in uncharge_list
mm: fix build warnings in <linux/compaction.h>
mm, thp: convert from optimistic swapin collapsing to conservative
mm, thp: fix comment inconsistency for swapin readahead functions
thp: update Documentation/{vm/transhuge,filesystems/proc}.txt
shmem: split huge pages beyond i_size under memory pressure
thp: introduce CONFIG_TRANSPARENT_HUGE_PAGECACHE
khugepaged: add support of collapse for tmpfs/shmem pages
shmem: make shmem_inode_info::lock irq-safe
khugepaged: move up_read(mmap_sem) out of khugepaged_alloc_page()
thp: extract khugepaged from mm/huge_memory.c
shmem, thp: respect MADV_{NO,}HUGEPAGE for file mappings
shmem: add huge pages support
shmem: get_unmapped_area align huge page
shmem: prepare huge= mount option and sysfs knob
mm, rmap: account shmem thp pages
...
Diffstat (limited to 'include/trace')
| -rw-r--r-- | include/trace/events/huge_memory.h | 50 | ||||
| -rw-r--r-- | include/trace/events/writeback.h | 22 |
2 files changed, 59 insertions, 13 deletions
diff --git a/include/trace/events/huge_memory.h b/include/trace/events/huge_memory.h index 551ba4acde4d..04f58acda8e8 100644 --- a/include/trace/events/huge_memory.h +++ b/include/trace/events/huge_memory.h | |||
| @@ -13,7 +13,7 @@ | |||
| 13 | EM( SCAN_EXCEED_NONE_PTE, "exceed_none_pte") \ | 13 | EM( SCAN_EXCEED_NONE_PTE, "exceed_none_pte") \ |
| 14 | EM( SCAN_PTE_NON_PRESENT, "pte_non_present") \ | 14 | EM( SCAN_PTE_NON_PRESENT, "pte_non_present") \ |
| 15 | EM( SCAN_PAGE_RO, "no_writable_page") \ | 15 | EM( SCAN_PAGE_RO, "no_writable_page") \ |
| 16 | EM( SCAN_NO_REFERENCED_PAGE, "no_referenced_page") \ | 16 | EM( SCAN_LACK_REFERENCED_PAGE, "lack_referenced_page") \ |
| 17 | EM( SCAN_PAGE_NULL, "page_null") \ | 17 | EM( SCAN_PAGE_NULL, "page_null") \ |
| 18 | EM( SCAN_SCAN_ABORT, "scan_aborted") \ | 18 | EM( SCAN_SCAN_ABORT, "scan_aborted") \ |
| 19 | EM( SCAN_PAGE_COUNT, "not_suitable_page_count") \ | 19 | EM( SCAN_PAGE_COUNT, "not_suitable_page_count") \ |
| @@ -28,7 +28,9 @@ | |||
| 28 | EM( SCAN_SWAP_CACHE_PAGE, "page_swap_cache") \ | 28 | EM( SCAN_SWAP_CACHE_PAGE, "page_swap_cache") \ |
| 29 | EM( SCAN_DEL_PAGE_LRU, "could_not_delete_page_from_lru")\ | 29 | EM( SCAN_DEL_PAGE_LRU, "could_not_delete_page_from_lru")\ |
| 30 | EM( SCAN_ALLOC_HUGE_PAGE_FAIL, "alloc_huge_page_failed") \ | 30 | EM( SCAN_ALLOC_HUGE_PAGE_FAIL, "alloc_huge_page_failed") \ |
| 31 | EMe( SCAN_CGROUP_CHARGE_FAIL, "ccgroup_charge_failed") | 31 | EM( SCAN_CGROUP_CHARGE_FAIL, "ccgroup_charge_failed") \ |
| 32 | EM( SCAN_EXCEED_SWAP_PTE, "exceed_swap_pte") \ | ||
| 33 | EMe(SCAN_TRUNCATED, "truncated") \ | ||
| 32 | 34 | ||
| 33 | #undef EM | 35 | #undef EM |
| 34 | #undef EMe | 36 | #undef EMe |
| @@ -45,17 +47,18 @@ SCAN_STATUS | |||
| 45 | TRACE_EVENT(mm_khugepaged_scan_pmd, | 47 | TRACE_EVENT(mm_khugepaged_scan_pmd, |
| 46 | 48 | ||
| 47 | TP_PROTO(struct mm_struct *mm, struct page *page, bool writable, | 49 | TP_PROTO(struct mm_struct *mm, struct page *page, bool writable, |
| 48 | bool referenced, int none_or_zero, int status), | 50 | int referenced, int none_or_zero, int status, int unmapped), |
| 49 | 51 | ||
| 50 | TP_ARGS(mm, page, writable, referenced, none_or_zero, status), | 52 | TP_ARGS(mm, page, writable, referenced, none_or_zero, status, unmapped), |
| 51 | 53 | ||
| 52 | TP_STRUCT__entry( | 54 | TP_STRUCT__entry( |
| 53 | __field(struct mm_struct *, mm) | 55 | __field(struct mm_struct *, mm) |
| 54 | __field(unsigned long, pfn) | 56 | __field(unsigned long, pfn) |
| 55 | __field(bool, writable) | 57 | __field(bool, writable) |
| 56 | __field(bool, referenced) | 58 | __field(int, referenced) |
| 57 | __field(int, none_or_zero) | 59 | __field(int, none_or_zero) |
| 58 | __field(int, status) | 60 | __field(int, status) |
| 61 | __field(int, unmapped) | ||
| 59 | ), | 62 | ), |
| 60 | 63 | ||
| 61 | TP_fast_assign( | 64 | TP_fast_assign( |
| @@ -65,15 +68,17 @@ TRACE_EVENT(mm_khugepaged_scan_pmd, | |||
| 65 | __entry->referenced = referenced; | 68 | __entry->referenced = referenced; |
| 66 | __entry->none_or_zero = none_or_zero; | 69 | __entry->none_or_zero = none_or_zero; |
| 67 | __entry->status = status; | 70 | __entry->status = status; |
| 71 | __entry->unmapped = unmapped; | ||
| 68 | ), | 72 | ), |
| 69 | 73 | ||
| 70 | TP_printk("mm=%p, scan_pfn=0x%lx, writable=%d, referenced=%d, none_or_zero=%d, status=%s", | 74 | TP_printk("mm=%p, scan_pfn=0x%lx, writable=%d, referenced=%d, none_or_zero=%d, status=%s, unmapped=%d", |
| 71 | __entry->mm, | 75 | __entry->mm, |
| 72 | __entry->pfn, | 76 | __entry->pfn, |
| 73 | __entry->writable, | 77 | __entry->writable, |
| 74 | __entry->referenced, | 78 | __entry->referenced, |
| 75 | __entry->none_or_zero, | 79 | __entry->none_or_zero, |
| 76 | __print_symbolic(__entry->status, SCAN_STATUS)) | 80 | __print_symbolic(__entry->status, SCAN_STATUS), |
| 81 | __entry->unmapped) | ||
| 77 | ); | 82 | ); |
| 78 | 83 | ||
| 79 | TRACE_EVENT(mm_collapse_huge_page, | 84 | TRACE_EVENT(mm_collapse_huge_page, |
| @@ -103,14 +108,14 @@ TRACE_EVENT(mm_collapse_huge_page, | |||
| 103 | TRACE_EVENT(mm_collapse_huge_page_isolate, | 108 | TRACE_EVENT(mm_collapse_huge_page_isolate, |
| 104 | 109 | ||
| 105 | TP_PROTO(struct page *page, int none_or_zero, | 110 | TP_PROTO(struct page *page, int none_or_zero, |
| 106 | bool referenced, bool writable, int status), | 111 | int referenced, bool writable, int status), |
| 107 | 112 | ||
| 108 | TP_ARGS(page, none_or_zero, referenced, writable, status), | 113 | TP_ARGS(page, none_or_zero, referenced, writable, status), |
| 109 | 114 | ||
| 110 | TP_STRUCT__entry( | 115 | TP_STRUCT__entry( |
| 111 | __field(unsigned long, pfn) | 116 | __field(unsigned long, pfn) |
| 112 | __field(int, none_or_zero) | 117 | __field(int, none_or_zero) |
| 113 | __field(bool, referenced) | 118 | __field(int, referenced) |
| 114 | __field(bool, writable) | 119 | __field(bool, writable) |
| 115 | __field(int, status) | 120 | __field(int, status) |
| 116 | ), | 121 | ), |
| @@ -131,5 +136,32 @@ TRACE_EVENT(mm_collapse_huge_page_isolate, | |||
| 131 | __print_symbolic(__entry->status, SCAN_STATUS)) | 136 | __print_symbolic(__entry->status, SCAN_STATUS)) |
| 132 | ); | 137 | ); |
| 133 | 138 | ||
| 139 | TRACE_EVENT(mm_collapse_huge_page_swapin, | ||
| 140 | |||
| 141 | TP_PROTO(struct mm_struct *mm, int swapped_in, int referenced, int ret), | ||
| 142 | |||
| 143 | TP_ARGS(mm, swapped_in, referenced, ret), | ||
| 144 | |||
| 145 | TP_STRUCT__entry( | ||
| 146 | __field(struct mm_struct *, mm) | ||
| 147 | __field(int, swapped_in) | ||
| 148 | __field(int, referenced) | ||
| 149 | __field(int, ret) | ||
| 150 | ), | ||
| 151 | |||
| 152 | TP_fast_assign( | ||
| 153 | __entry->mm = mm; | ||
| 154 | __entry->swapped_in = swapped_in; | ||
| 155 | __entry->referenced = referenced; | ||
| 156 | __entry->ret = ret; | ||
| 157 | ), | ||
| 158 | |||
| 159 | TP_printk("mm=%p, swapped_in=%d, referenced=%d, ret=%d", | ||
| 160 | __entry->mm, | ||
| 161 | __entry->swapped_in, | ||
| 162 | __entry->referenced, | ||
| 163 | __entry->ret) | ||
| 164 | ); | ||
| 165 | |||
| 134 | #endif /* __HUGE_MEMORY_H */ | 166 | #endif /* __HUGE_MEMORY_H */ |
| 135 | #include <trace/define_trace.h> | 167 | #include <trace/define_trace.h> |
diff --git a/include/trace/events/writeback.h b/include/trace/events/writeback.h index 73614ce1d204..531f5811ff6b 100644 --- a/include/trace/events/writeback.h +++ b/include/trace/events/writeback.h | |||
| @@ -696,7 +696,7 @@ DEFINE_EVENT(writeback_single_inode_template, writeback_single_inode, | |||
| 696 | TP_ARGS(inode, wbc, nr_to_write) | 696 | TP_ARGS(inode, wbc, nr_to_write) |
| 697 | ); | 697 | ); |
| 698 | 698 | ||
| 699 | DECLARE_EVENT_CLASS(writeback_lazytime_template, | 699 | DECLARE_EVENT_CLASS(writeback_inode_template, |
| 700 | TP_PROTO(struct inode *inode), | 700 | TP_PROTO(struct inode *inode), |
| 701 | 701 | ||
| 702 | TP_ARGS(inode), | 702 | TP_ARGS(inode), |
| @@ -723,25 +723,39 @@ DECLARE_EVENT_CLASS(writeback_lazytime_template, | |||
| 723 | show_inode_state(__entry->state), __entry->mode) | 723 | show_inode_state(__entry->state), __entry->mode) |
| 724 | ); | 724 | ); |
| 725 | 725 | ||
| 726 | DEFINE_EVENT(writeback_lazytime_template, writeback_lazytime, | 726 | DEFINE_EVENT(writeback_inode_template, writeback_lazytime, |
| 727 | TP_PROTO(struct inode *inode), | 727 | TP_PROTO(struct inode *inode), |
| 728 | 728 | ||
| 729 | TP_ARGS(inode) | 729 | TP_ARGS(inode) |
| 730 | ); | 730 | ); |
| 731 | 731 | ||
| 732 | DEFINE_EVENT(writeback_lazytime_template, writeback_lazytime_iput, | 732 | DEFINE_EVENT(writeback_inode_template, writeback_lazytime_iput, |
| 733 | TP_PROTO(struct inode *inode), | 733 | TP_PROTO(struct inode *inode), |
| 734 | 734 | ||
| 735 | TP_ARGS(inode) | 735 | TP_ARGS(inode) |
| 736 | ); | 736 | ); |
| 737 | 737 | ||
| 738 | DEFINE_EVENT(writeback_lazytime_template, writeback_dirty_inode_enqueue, | 738 | DEFINE_EVENT(writeback_inode_template, writeback_dirty_inode_enqueue, |
| 739 | 739 | ||
| 740 | TP_PROTO(struct inode *inode), | 740 | TP_PROTO(struct inode *inode), |
| 741 | 741 | ||
| 742 | TP_ARGS(inode) | 742 | TP_ARGS(inode) |
| 743 | ); | 743 | ); |
| 744 | 744 | ||
| 745 | /* | ||
| 746 | * Inode writeback list tracking. | ||
| 747 | */ | ||
| 748 | |||
| 749 | DEFINE_EVENT(writeback_inode_template, sb_mark_inode_writeback, | ||
| 750 | TP_PROTO(struct inode *inode), | ||
| 75 | |||
