aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKent Overstreet <kent.overstreet@linux.dev>2023-08-18 00:07:51 -0400
committerKent Overstreet <kent.overstreet@linux.dev>2023-08-18 00:07:51 -0400
commit54b6beabf05b6cf62092f98f0c06395e4242b064 (patch)
tree353006a709cf864ba9dccb1c40871dcef5994dc4
parent505c326cbe091b105dbdfbe66dae4ad6ee424906 (diff)
downloadbcachefs-tools-54b6beabf05b6cf62092f98f0c06395e4242b064.tar.gz
Update bcachefs sources to bed61fae3b bcachefs: Delete a faulty assertion
-rw-r--r--.bcachefs_revision2
-rw-r--r--libbcachefs/journal_io.c1
-rw-r--r--libbcachefs/trace.h26
3 files changed, 23 insertions, 6 deletions
diff --git a/.bcachefs_revision b/.bcachefs_revision
index 18ed8bfc..e91ab632 100644
--- a/.bcachefs_revision
+++ b/.bcachefs_revision
@@ -1 +1 @@
-a8115093df3e08c3e4bf6dab222e1cac132fff69
+bed61fae3bd3429686d33b87c42ed4f98b14a648
diff --git a/libbcachefs/journal_io.c b/libbcachefs/journal_io.c
index 50a7c333..34740dca 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 a743ab47..97fe7742 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)