• Kent Overstreet's avatar
    bcachefs: JOURNAL_SPACE_LOW · 6088234c
    Kent Overstreet authored
    "bcachefs; Fix deadlock in bch2_btree_update_start()" was a significant
    performance regression (nearly 50%) on multithreaded random writes with
    fio.
    
    The reason is that the journal watermark checks multiple things,
    including the state of the btree write buffer, and on multithreaded
    update heavy workloads we're bottleneked on write buffer flushing - we
    don't want kicknig off btree updates to depend on the state of the write
    buffer.
    
    This isn't strictly correct; the interior btree update path does do
    write buffer updates, but it's a tiny fraction of total accounting
    updates and we're more concerned with space in the journal itself.
    Signed-off-by: default avatarKent Overstreet <kent.overstreet@linux.dev>
    6088234c
btree_update_interior.c 71.5 KB