diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2015-04-18 11:26:46 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2015-04-18 11:26:46 -0400 |
commit | 96b90f27bcf22f1d06cc16d9475cefa6ea4c4718 (patch) | |
tree | a886ad5f611dea36c6d4b615dfdcdbbcf5bd3135 /include/trace | |
parent | 396c9df2231865ef55aa031e3f5df9d99e036869 (diff) | |
parent | 0c99241c93b8060441f3c8434848e54b5338f922 (diff) |
Merge branch 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
Pull perf updates from Ingo Molnar:
"This update has mostly fixes, but also other bits:
- perf tooling fixes
- PMU driver fixes
- Intel Broadwell PMU driver HW-enablement for LBR callstacks
- a late coming 'perf kmem' tool update that enables it to also
analyze page allocation data. Note, this comes with MM tracepoint
changes that we believe to not break anything: because it changes
the formerly opaque 'struct page *' field that uniquely identifies
pages to 'pfn' which identifies pages uniquely too, but isn't as
opaque and can be used for other purposes as well"
* 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
perf/x86/intel/pt: Fix and clean up error handling in pt_event_add()
perf/x86/intel: Add Broadwell support for the LBR callstack
perf/x86/intel/rapl: Fix energy counter measurements but supporing per domain energy units
perf/x86/intel: Fix Core2,Atom,NHM,WSM cycles:pp events
perf/x86: Fix hw_perf_event::flags collision
perf probe: Fix segfault when probe with lazy_line to file
perf probe: Find compilation directory path for lazy matching
perf probe: Set retprobe flag when probe in address-based alternative mode
perf kmem: Analyze page allocator events also
tracing, mm: Record pfn instead of pointer to struct page
Diffstat (limited to 'include/trace')
-rw-r--r-- | include/trace/events/filemap.h | 8 | ||||
-rw-r--r-- | include/trace/events/kmem.h | 42 | ||||
-rw-r--r-- | include/trace/events/vmscan.h | 8 |
3 files changed, 29 insertions, 29 deletions
diff --git a/include/trace/events/filemap.h b/include/trace/events/filemap.h index 0421f49a20f7..42febb6bc1d5 100644 --- a/include/trace/events/filemap.h +++ b/include/trace/events/filemap.h | |||
@@ -18,14 +18,14 @@ DECLARE_EVENT_CLASS(mm_filemap_op_page_cache, | |||
18 | TP_ARGS(page), | 18 | TP_ARGS(page), |
19 | 19 | ||
20 | TP_STRUCT__entry( | 20 | TP_STRUCT__entry( |
21 | __field(struct page *, page) | 21 | __field(unsigned long, pfn) |
22 | __field(unsigned long, i_ino) | 22 | __field(unsigned long, i_ino) |
23 | __field(unsigned long, index) | 23 | __field(unsigned long, index) |
24 | __field(dev_t, s_dev) | 24 | __field(dev_t, s_dev) |
25 | ), | 25 | ), |
26 | 26 | ||
27 | TP_fast_assign( | 27 | TP_fast_assign( |
28 | __entry->page = page; | 28 | __entry->pfn = page_to_pfn(page); |
29 | __entry->i_ino = page->mapping->host->i_ino; | 29 | __entry->i_ino = page->mapping->host->i_ino; |
30 | __entry->index = page->index; | 30 | __entry->index = page->index; |
31 | if (page->mapping->host->i_sb) | 31 | if (page->mapping->host->i_sb) |
@@ -37,8 +37,8 @@ DECLARE_EVENT_CLASS(mm_filemap_op_page_cache, | |||
37 | TP_printk("dev %d:%d ino %lx page=%p pfn=%lu ofs=%lu", | 37 | TP_printk("dev %d:%d ino %lx page=%p pfn=%lu ofs=%lu", |
38 | MAJOR(__entry->s_dev), MINOR(__entry->s_dev), | 38 | MAJOR(__entry->s_dev), MINOR(__entry->s_dev), |
39 | __entry->i_ino, | 39 | __entry->i_ino, |
40 | __entry->page, | 40 | pfn_to_page(__entry->pfn), |
41 | page_to_pfn(__entry->page), | 41 | __entry->pfn, |
42 | __entry->index << PAGE_SHIFT) | 42 | __entry->index << PAGE_SHIFT) |
43 | ); | 43 | ); |
44 | 44 | ||
diff --git a/include/trace/events/kmem.h b/include/trace/events/kmem.h index 4ad10baecd4d..81ea59812117 100644 --- a/include/trace/events/kmem.h +++ b/include/trace/events/kmem.h | |||
@@ -154,18 +154,18 @@ TRACE_EVENT(mm_page_free, | |||
154 | TP_ARGS(page, order), | 154 | TP_ARGS(page, order), |
155 | 155 | ||
156 | TP_STRUCT__entry( | 156 | TP_STRUCT__entry( |
157 | __field( struct page *, page ) | 157 | __field( unsigned long, pfn ) |
158 | __field( unsigned int, order ) | 158 | __field( unsigned int, order ) |
159 | ), | 159 | ), |
160 | 160 | ||
161 | TP_fast_assign( | 161 | TP_fast_assign( |
162 | __entry->page = page; | 162 | __entry->pfn = page_to_pfn(page); |
163 | __entry->order = order; | 163 | __entry->order = order; |
164 | ), | 164 | ), |
165 | 165 | ||
166 | TP_printk("page=%p pfn=%lu order=%d", | 166 | TP_printk("page=%p pfn=%lu order=%d", |
167 | __entry->page, | 167 | pfn_to_page(__entry->pfn), |
168 | page_to_pfn(__entry->page), | 168 | __entry->pfn, |
169 | __entry->order) | 169 | __entry->order) |
170 | ); | 170 | ); |
171 | 171 | ||
@@ -176,18 +176,18 @@ TRACE_EVENT(mm_page_free_batched, | |||
176 | TP_ARGS(page, cold), | 176 | TP_ARGS(page, cold), |
177 | 177 | ||
178 | TP_STRUCT__entry( | 178 | TP_STRUCT__entry( |
179 | __field( struct page *, page ) | 179 | __field( unsigned long, pfn ) |
180 | __field( int, cold ) | 180 | __field( int, cold ) |
181 | ), | 181 | ), |
182 | 182 | ||
183 | TP_fast_assign( | 183 | TP_fast_assign( |
184 | __entry->page = page; | 184 | __entry->pfn = page_to_pfn(page); |
185 | __entry->cold = cold; | 185 | __entry->cold = cold; |
186 | ), | 186 | ), |
187 | 187 | ||
188 | TP_printk("page=%p pfn=%lu order=0 cold=%d", | 188 | TP_printk("page=%p pfn=%lu order=0 cold=%d", |
189 | __entry->page, | 189 | pfn_to_page(__entry->pfn), |
190 | page_to_pfn(__entry->page), | 190 | __entry->pfn, |
191 | __entry->cold) | 191 | __entry->cold) |
192 | ); | 192 | ); |
193 | 193 | ||
@@ -199,22 +199,22 @@ TRACE_EVENT(mm_page_alloc, | |||
199 | TP_ARGS(page, order, gfp_flags, migratetype), | 199 | TP_ARGS(page, order, gfp_flags, migratetype), |
200 | 200 | ||
201 | TP_STRUCT__entry( | 201 | TP_STRUCT__entry( |
202 | __field( struct page *, page ) | 202 | __field( unsigned long, pfn ) |
203 | __field( unsigned int, order ) | 203 | __field( unsigned int, order ) |
204 | __field( gfp_t, gfp_flags ) | 204 | __field( gfp_t, gfp_flags ) |
205 | __field( int, migratetype ) | 205 | __field( int, migratetype ) |
206 | ), | 206 | ), |
207 | 207 | ||
208 | TP_fast_assign( | 208 | TP_fast_assign( |
209 | __entry->page = page; | 209 | __entry->pfn = page ? page_to_pfn(page) : -1UL; |
210 | __entry->order = order; | 210 | __entry->order = order; |
211 | __entry->gfp_flags = gfp_flags; | 211 | __entry->gfp_flags = gfp_flags; |
212 | __entry->migratetype = migratetype; | 212 | __entry->migratetype = migratetype; |
213 | ), | 213 | ), |
214 | 214 | ||
215 | TP_printk("page=%p pfn=%lu order=%d migratetype=%d gfp_flags=%s", | 215 | TP_printk("page=%p pfn=%lu order=%d migratetype=%d gfp_flags=%s", |
216 | __entry->page, | 216 | __entry->pfn != -1UL ? pfn_to_page(__entry->pfn) : NULL, |
217 | __entry->page ? page_to_pfn(__entry->page) : 0, | 217 | __entry->pfn != -1UL ? __entry->pfn : 0, |
218 | __entry->order, | 218 | __entry->order, |
219 | __entry->migratetype, | 219 | __entry->migratetype, |
220 | show_gfp_flags(__entry->gfp_flags)) | 220 | show_gfp_flags(__entry->gfp_flags)) |
@@ -227,20 +227,20 @@ DECLARE_EVENT_CLASS(mm_page, | |||
227 | TP_ARGS(page, order, migratetype), | 227 | TP_ARGS(page, order, migratetype), |
228 | 228 | ||
229 | TP_STRUCT__entry( | 229 | TP_STRUCT__entry( |
230 | __field( struct page *, page ) | 230 | __field( unsigned long, pfn ) |
231 | __field( unsigned int, order ) | 231 | __field( unsigned int, order ) |
232 | __field( int, migratetype ) | 232 | __field( int, migratetype ) |
233 | ), | 233 | ), |
234 | 234 | ||
235 | TP_fast_assign( | 235 | TP_fast_assign( |
236 | __entry->page = page; | 236 | __entry->pfn = page ? page_to_pfn(page) : -1UL; |
237 | __entry->order = order; | 237 | __entry->order = order; |
238 | __entry->migratetype = migratetype; | 238 | __entry->migratetype = migratetype; |
239 | ), | 239 | ), |
240 | 240 | ||
241 | TP_printk("page=%p pfn=%lu order=%u migratetype=%d percpu_refill=%d", | 241 | TP_printk("page=%p pfn=%lu order=%u migratetype=%d percpu_refill=%d", |
242 | __entry->page, | 242 | __entry->pfn != -1UL ? pfn_to_page(__entry->pfn) : NULL, |
243 | __entry->page ? page_to_pfn(__entry->page) : 0, | 243 | __entry->pfn != -1UL ? __entry->pfn : 0, |
244 | __entry->order, | 244 | __entry->order, |
245 | __entry->migratetype, | 245 | __entry->migratetype, |
246 | __entry->order == 0) | 246 | __entry->order == 0) |
@@ -260,7 +260,7 @@ DEFINE_EVENT_PRINT(mm_page, mm_page_pcpu_drain, | |||
260 | TP_ARGS(page, order, migratetype), | 260 | TP_ARGS(page, order, migratetype), |
261 | 261 | ||
262 | TP_printk("page=%p pfn=%lu order=%d migratetype=%d", | 262 | TP_printk("page=%p pfn=%lu order=%d migratetype=%d", |
263 | __entry->page, page_to_pfn(__entry->page), | 263 | pfn_to_page(__entry->pfn), __entry->pfn, |
264 | __entry->order, __entry->migratetype) | 264 | __entry->order, __entry->migratetype) |
265 | ); | 265 | ); |
266 | 266 | ||
@@ -275,7 +275,7 @@ TRACE_EVENT(mm_page_alloc_extfrag, | |||
275 | alloc_migratetype, fallback_migratetype), | 275 | alloc_migratetype, fallback_migratetype), |
276 | 276 | ||
277 | TP_STRUCT__entry( | 277 | TP_STRUCT__entry( |
278 | __field( struct page *, page ) | 278 | __field( unsigned long, pfn ) |
279 | __field( int, alloc_order ) | 279 | __field( int, alloc_order ) |
280 | __field( int, fallback_order ) | 280 | __field( int, fallback_order ) |
281 | __field( int, alloc_migratetype ) | 281 | __field( int, alloc_migratetype ) |
@@ -284,7 +284,7 @@ TRACE_EVENT(mm_page_alloc_extfrag, | |||
284 | ), | 284 | ), |
285 | 285 | ||
286 | TP_fast_assign( | 286 | TP_fast_assign( |
287 | __entry->page = page; | 287 | __entry->pfn = page_to_pfn(page); |
288 | __entry->alloc_order = alloc_order; | 288 | __entry->alloc_order = alloc_order; |
289 | __entry->fallback_order = fallback_order; | 289 | __entry->fallback_order = fallback_order; |
290 | __entry->alloc_migratetype = alloc_migratetype; | 290 | __entry->alloc_migratetype = alloc_migratetype; |
@@ -294,8 +294,8 @@ TRACE_EVENT(mm_page_alloc_extfrag, | |||
294 | ), | 294 | ), |
295 | 295 | ||
296 | TP_printk("page=%p pfn=%lu alloc_order=%d fallback_order=%d pageblock_order=%d alloc_migratetype=%d fallback_migratetype=%d fragmenting=%d change_ownership=%d", | 296 | TP_printk("page=%p pfn=%lu alloc_order=%d fallback_order=%d pageblock_order=%d alloc_migratetype=%d fallback_migratetype=%d fragmenting=%d change_ownership=%d", |
297 | __entry->page, | 297 | pfn_to_page(__entry->pfn), |
298 | page_to_pfn(__entry->page), | 298 | __entry->pfn, |
299 | __entry->alloc_order, | 299 | __entry->alloc_order, |
300 | __entry->fallback_order, | 300 | __entry->fallback_order, |
301 | pageblock_order, | 301 | pageblock_order, |
diff --git a/include/trace/events/vmscan.h b/include/trace/events/vmscan.h index 69590b6ffc09..f66476b96264 100644 --- a/include/trace/events/vmscan.h +++ b/include/trace/events/vmscan.h | |||
@@ -336,18 +336,18 @@ TRACE_EVENT(mm_vmscan_writepage, | |||
336 | TP_ARGS(page, reclaim_flags), | 336 | TP_ARGS(page, reclaim_flags), |
337 | 337 | ||
338 | TP_STRUCT__entry( | 338 | TP_STRUCT__entry( |
339 | __field(struct page *, page) | 339 | __field(unsigned long, pfn) |
340 | __field(int, reclaim_flags) | 340 | __field(int, reclaim_flags) |
341 | ), | 341 | ), |
342 | 342 | ||
343 | TP_fast_assign( | 343 | TP_fast_assign( |
344 | __entry->page = page; | 344 | __entry->pfn = page_to_pfn(page); |
345 | __entry->reclaim_flags = reclaim_flags; | 345 | __entry->reclaim_flags = reclaim_flags; |
346 | ), | 346 | ), |
347 | 347 | ||
348 | TP_printk("page=%p pfn=%lu flags=%s", | 348 | TP_printk("page=%p pfn=%lu flags=%s", |
349 | __entry->page, | 349 | pfn_to_page(__entry->pfn), |
350 | page_to_pfn(__entry->page), | 350 | __entry->pfn, |
351 | show_reclaim_flags(__entry->reclaim_flags)) | 351 | show_reclaim_flags(__entry->reclaim_flags)) |
352 | ); | 352 | ); |
353 | 353 | ||