On Wed, Sep 12, 2018 at 10:19:23AM +0300, Nikolay Borisov wrote: > [Adding Josef to CC] > > On 12.09.2018 01:06, Liu Bo wrote: > > If metadata space is hungry, how fast flush_space() can run determines > > the latency we spend in reserve_metadata_space(). > > > > flush_space() > > case FLUSH_DELAYED_ITEMS: > > ... > > btrfs_end_transaction() > > case ALLOC_CHUNK: > > ... > > btrfs_end_transaction() > > > > btrfs_end_transaction() > > btrfs_async_run_delayed_refs() > > // queue a work to process delayed refs > > ... > > if (wait) > > wait_for_completion() > > > > Although processing delayed refs can add to pinned bytes, pinned bytes > > can only be used after committing transaction, so waiting async in > > flush_space() doesn't help. Nack, but just because I get rid of all of this code in my delayed refs rsv patchset. Thanks, Josef
