diff options
| author | Kent Overstreet <kmo@daterainc.com> | 2014-02-12 21:43:32 -0500 |
|---|---|---|
| committer | Kent Overstreet <kmo@daterainc.com> | 2014-03-18 15:22:35 -0400 |
| commit | 7159b1ad3dded9da040b5c608acf3d52d50f661e (patch) | |
| tree | 3ec196333d8ae22e359dc7d16fe8d48b8352fbea /include | |
| parent | 3f5e0a34daed197aa55d0c6b466bb4cd03babb4f (diff) | |
bcache: Better alloc tracepoints
Change the invalidate tracepoint to indicate how much data we're invalidating,
and change the alloc tracepoints to indicate what offset they're for.
Signed-off-by: Kent Overstreet <kmo@daterainc.com>
Diffstat (limited to 'include')
| -rw-r--r-- | include/trace/events/bcache.h | 48 |
1 files changed, 34 insertions, 14 deletions
diff --git a/include/trace/events/bcache.h b/include/trace/events/bcache.h index 7110897c3dfa..8fc2a7134d3c 100644 --- a/include/trace/events/bcache.h +++ b/include/trace/events/bcache.h | |||
| @@ -399,26 +399,43 @@ TRACE_EVENT(bcache_keyscan, | |||
| 399 | 399 | ||
| 400 | /* Allocator */ | 400 | /* Allocator */ |
| 401 | 401 | ||
| 402 | TRACE_EVENT(bcache_alloc_invalidate, | 402 | TRACE_EVENT(bcache_invalidate, |
| 403 | TP_PROTO(struct cache *ca), | 403 | TP_PROTO(struct cache *ca, size_t bucket), |
| 404 | TP_ARGS(ca), | 404 | TP_ARGS(ca, bucket), |
| 405 | 405 | ||
| 406 | TP_STRUCT__entry( | 406 | TP_STRUCT__entry( |
| 407 | __field(unsigned, free ) | 407 | __field(unsigned, sectors ) |
| 408 | __field(unsigned, free_inc ) | 408 | __field(dev_t, dev ) |
| 409 | __field(unsigned, free_inc_size ) | 409 | __field(__u64, offset ) |
| 410 | __field(unsigned, unused ) | ||
| 411 | ), | 410 | ), |
| 412 | 411 | ||
| 413 | TP_fast_assign( | 412 | TP_fast_assign( |
| 414 | __entry->free = fifo_used(&ca->free[RESERVE_NONE]); | 413 | __entry->dev = ca->bdev->bd_dev; |
| 415 | __entry->free_inc = fifo_used(&ca->free_inc); | 414 | __entry->offset = bucket << ca->set->bucket_bits; |
| 416 | __entry->free_inc_size = ca->free_inc.size; | 415 | __entry->sectors = GC_SECTORS_USED(&ca->buckets[bucket]); |
| 417 | __entry->unused = fifo_used(&ca->unused); | ||
| 418 | ), | 416 | ), |
| 419 | 417 | ||
| 420 | TP_printk("free %u free_inc %u/%u unused %u", __entry->free, | 418 | TP_printk("invalidated %u sectors at %d,%d sector=%llu", |
| 421 | __entry->free_inc, __entry->free_inc_size, __entry->unused) | 419 | __entry->sectors, MAJOR(__entry->dev), |
| 420 | MINOR(__entry->dev), __entry->offset) | ||
| 421 | ); | ||
| 422 | |||
| 423 | TRACE_EVENT(bcache_alloc, | ||
| 424 | TP_PROTO(struct cache *ca, size_t bucket), | ||
| 425 | TP_ARGS(ca, bucket), | ||
| 426 | |||
| 427 | TP_STRUCT__entry( | ||
| 428 | __field(dev_t, dev ) | ||
| 429 | __field(__u64, offset ) | ||
| 430 | ), | ||
| 431 | |||
| 432 | TP_fast_assign( | ||
| 433 | __entry->dev = ca->bdev->bd_dev; | ||
| 434 | __entry->offset = bucket << ca->set->bucket_bits; | ||
| 435 | ), | ||
| 436 | |||
| 437 | TP_printk("allocated %d,%d sector=%llu", MAJOR(__entry->dev), | ||
| 438 | MINOR(__entry->dev), __entry->offset) | ||
| 422 | ); | 439 | ); |
| 423 | 440 | ||
| 424 | TRACE_EVENT(bcache_alloc_fail, | 441 | TRACE_EVENT(bcache_alloc_fail, |
| @@ -426,6 +443,7 @@ TRACE_EVENT(bcache_alloc_fail, | |||
| 426 | TP_ARGS(ca, reserve), | 443 | TP_ARGS(ca, reserve), |
| 427 | 444 | ||
| 428 | TP_STRUCT__entry( | 445 | TP_STRUCT__entry( |
| 446 | __field(dev_t, dev ) | ||
| 429 | __field(unsigned, free ) | 447 | __field(unsigned, free ) |
| 430 | __field(unsigned, free_inc ) | 448 | __field(unsigned, free_inc ) |
| 431 | __field(unsigned, unused ) | 449 | __field(unsigned, unused ) |
| @@ -433,13 +451,15 @@ TRACE_EVENT(bcache_alloc_fail, | |||
| 433 | ), | 451 | ), |
| 434 | 452 | ||
| 435 | TP_fast_assign( | 453 | TP_fast_assign( |
| 454 | __entry->dev = ca->bdev->bd_dev; | ||
| 436 | __entry->free = fifo_used(&ca->free[reserve]); | 455 | __entry->free = fifo_used(&ca->free[reserve]); |
| 437 | __entry->free_inc = fifo_used(&ca->free_inc); | 456 | __entry->free_inc = fifo_used(&ca->free_inc); |
| 438 | __entry->unused = fifo_used(&ca->unused); | 457 | __entry->unused = fifo_used(&ca->unused); |
| 439 | __entry->blocked = atomic_read(&ca->set->prio_blocked); | 458 | __entry->blocked = atomic_read(&ca->set->prio_blocked); |
| 440 | ), | 459 | ), |
| 441 | 460 | ||
| 442 | TP_printk("free %u free_inc %u unused %u blocked %u", __entry->free, | 461 | TP_printk("alloc fail %d,%d free %u free_inc %u unused %u blocked %u", |
| 462 | MAJOR(__entry->dev), MINOR(__entry->dev), __entry->free, | ||
| 443 | __entry->free_inc, __entry->unused, __entry->blocked) | 463 | __entry->free_inc, __entry->unused, __entry->blocked) |
| 444 | ); | 464 | ); |
| 445 | 465 | ||
