Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

bcache: print number of keys in trace_bcache_journal_write

Sometimes flush journal may be very frequent, so it's useful to dump
number of keys every time write journal.

Signed-off-by: Guoju Fang <fangguoju@gmail.com>
Signed-off-by: Coly Li <colyli@suse.de>
Signed-off-by: Jens Axboe <axboe@kernel.dk>

authored by

Guoju Fang and committed by
Jens Axboe
e78bd0d2 cc38ca7e

+25 -4
+1 -1
drivers/md/bcache/journal.c
··· 663 663 REQ_SYNC|REQ_META|REQ_PREFLUSH|REQ_FUA); 664 664 bch_bio_map(bio, w->data); 665 665 666 - trace_bcache_journal_write(bio); 666 + trace_bcache_journal_write(bio, w->data->keys); 667 667 bio_list_add(&list, bio); 668 668 669 669 SET_PTR_OFFSET(k, i, PTR_OFFSET(k, i) + sectors);
+24 -3
include/trace/events/bcache.h
··· 221 221 TP_ARGS(c) 222 222 ); 223 223 224 - DEFINE_EVENT(bcache_bio, bcache_journal_write, 225 - TP_PROTO(struct bio *bio), 226 - TP_ARGS(bio) 224 + TRACE_EVENT(bcache_journal_write, 225 + TP_PROTO(struct bio *bio, u32 keys), 226 + TP_ARGS(bio, keys), 227 + 228 + TP_STRUCT__entry( 229 + __field(dev_t, dev ) 230 + __field(sector_t, sector ) 231 + __field(unsigned int, nr_sector ) 232 + __array(char, rwbs, 6 ) 233 + __field(u32, nr_keys ) 234 + ), 235 + 236 + TP_fast_assign( 237 + __entry->dev = bio_dev(bio); 238 + __entry->sector = bio->bi_iter.bi_sector; 239 + __entry->nr_sector = bio->bi_iter.bi_size >> 9; 240 + __entry->nr_keys = keys; 241 + blk_fill_rwbs(__entry->rwbs, bio->bi_opf, bio->bi_iter.bi_size); 242 + ), 243 + 244 + TP_printk("%d,%d %s %llu + %u keys %u", 245 + MAJOR(__entry->dev), MINOR(__entry->dev), __entry->rwbs, 246 + (unsigned long long)__entry->sector, __entry->nr_sector, 247 + __entry->nr_keys) 227 248 ); 228 249 229 250 /* Btree */