From 54b6beabf05b6cf62092f98f0c06395e4242b064 Mon Sep 17 00:00:00 2001 From: Kent Overstreet Date: Fri, 18 Aug 2023 00:07:51 -0400 Subject: [PATCH] Update bcachefs sources to bed61fae3b bcachefs: Delete a faulty assertion --- .bcachefs_revision | 2 +- libbcachefs/journal_io.c | 1 - libbcachefs/trace.h | 26 ++++++++++++++++++++++---- 3 files changed, 23 insertions(+), 6 deletions(-) diff --git a/.bcachefs_revision b/.bcachefs_revision index 18ed8bf..e91ab63 100644 --- a/.bcachefs_revision +++ b/.bcachefs_revision @@ -1 +1 @@ -a8115093df3e08c3e4bf6dab222e1cac132fff69 +bed61fae3bd3429686d33b87c42ed4f98b14a648 diff --git a/libbcachefs/journal_io.c b/libbcachefs/journal_io.c index 50a7c33..34740dc 100644 --- a/libbcachefs/journal_io.c +++ b/libbcachefs/journal_io.c @@ -319,7 +319,6 @@ static int journal_validate_key(struct bch_fs *c, __btree_node_type(level, btree_id), write, &buf); mustfix_fsck_err(c, "%s", buf.buf); - BUG(); le16_add_cpu(&entry->u64s, -((u16) k->k.u64s)); memmove(k, bkey_next(k), next - (void *) bkey_next(k)); diff --git a/libbcachefs/trace.h b/libbcachefs/trace.h index a743ab4..97fe774 100644 --- a/libbcachefs/trace.h +++ b/libbcachefs/trace.h @@ -403,29 +403,43 @@ TRACE_EVENT(btree_path_relock_fail, __field(u8, level ) TRACE_BPOS_entries(pos) __array(char, node, 24 ) + __field(u8, self_read_count ) + __field(u8, self_intent_count) + __field(u8, read_count ) + __field(u8, intent_count ) __field(u32, iter_lock_seq ) __field(u32, node_lock_seq ) ), TP_fast_assign( struct btree *b = btree_path_node(path, level); + struct six_lock_count c; strscpy(__entry->trans_fn, trans->fn, sizeof(__entry->trans_fn)); __entry->caller_ip = caller_ip; __entry->btree_id = path->btree_id; __entry->level = path->level; TRACE_BPOS_assign(pos, path->pos); - if (IS_ERR(b)) + + c = bch2_btree_node_lock_counts(trans, NULL, &path->l[level].b->c, level), + __entry->self_read_count = c.n[SIX_LOCK_read]; + __entry->self_intent_count = c.n[SIX_LOCK_intent]; + + if (IS_ERR(b)) { strscpy(__entry->node, bch2_err_str(PTR_ERR(b)), sizeof(__entry->node)); - else + } else { + c = six_lock_counts(&path->l[level].b->c.lock); + __entry->read_count = c.n[SIX_LOCK_read]; + __entry->intent_count = c.n[SIX_LOCK_intent]; scnprintf(__entry->node, sizeof(__entry->node), "%px", b); + } __entry->iter_lock_seq = path->l[level].lock_seq; __entry->node_lock_seq = is_btree_node(path, level) ? six_lock_seq(&path->l[level].b->c.lock) : 0; ), - TP_printk("%s %pS btree %s pos %llu:%llu:%u level %u node %s iter seq %u lock seq %u", + TP_printk("%s %pS btree %s pos %llu:%llu:%u level %u node %s held %u:%u lock count %u:%u iter seq %u lock seq %u", __entry->trans_fn, (void *) __entry->caller_ip, bch2_btree_ids[__entry->btree_id], @@ -434,6 +448,10 @@ TRACE_EVENT(btree_path_relock_fail, __entry->pos_snapshot, __entry->level, __entry->node, + __entry->self_read_count, + __entry->self_intent_count, + __entry->read_count, + __entry->intent_count, __entry->iter_lock_seq, __entry->node_lock_seq) ); @@ -475,7 +493,7 @@ TRACE_EVENT(btree_path_upgrade_fail, __entry->self_intent_count = c.n[SIX_LOCK_intent]; c = six_lock_counts(&path->l[level].b->c.lock); __entry->read_count = c.n[SIX_LOCK_read]; - __entry->intent_count = c.n[SIX_LOCK_read]; + __entry->intent_count = c.n[SIX_LOCK_intent]; __entry->iter_lock_seq = path->l[level].lock_seq; __entry->node_lock_seq = is_btree_node(path, level) ? six_lock_seq(&path->l[level].b->c.lock) -- 2.39.2