From: David Sterba <firstname.lastname@example.org> To: Josef Bacik <email@example.com> Cc: Chris Mason <firstname.lastname@example.org>, Nikolay Borisov <email@example.com>, "firstname.lastname@example.org" <email@example.com>, Kernel Team <Kernelfirstname.lastname@example.org> Subject: Re: [PATCH 2/3] btrfs: wakeup cleaner thread when adding delayed iput Date: Wed, 28 Nov 2018 20:06:34 +0100 Message-ID: <20181128190633.GZ2842@twin.jikos.cz> (raw) In-Reply-To: <email@example.com> On Tue, Nov 27, 2018 at 03:08:08PM -0500, Josef Bacik wrote: > On Tue, Nov 27, 2018 at 07:59:42PM +0000, Chris Mason wrote: > > On 27 Nov 2018, at 14:54, Josef Bacik wrote: > > > > > On Tue, Nov 27, 2018 at 10:26:15AM +0200, Nikolay Borisov wrote: > > >> > > >> > > >> On 21.11.18 г. 21:09 ч., Josef Bacik wrote: > > >>> The cleaner thread usually takes care of delayed iputs, with the > > >>> exception of the btrfs_end_transaction_throttle path. The cleaner > > >>> thread only gets woken up every 30 seconds, so instead wake it up to > > >>> do > > >>> it's work so that we can free up that space as quickly as possible. > > >> > > >> Have you done any measurements how this affects the overall system. I > > >> suspect this introduces a lot of noise since now we are going to be > > >> doing a thread wakeup on every iput, does this give a chance to have > > >> nice, large batches of iputs that the cost of wake up can be > > >> amortized > > >> across? > > > > > > I ran the whole patchset with our A/B testing stuff and the patchset > > > was a 5% > > > win overall, so I'm inclined to think it's fine. Thanks, > > > > It's a good point though, a delayed wakeup may be less overhead. > > Sure, but how do we go about that without it sometimes messing up? In practice > the only time we're doing this is at the end of finish_ordered_io, so likely to > not be a constant stream. I suppose since we have places where we force it to > run that we don't really need this. IDK, I'm fine with dropping it. Thanks, The transaction thread wakes up cleaner periodically (commit interval, 30s by default), so the time to process iputs is not unbounded. I have the same concerns as Nikolay, coupling the wakeup to all delayed iputs could result in smaller batches. But some of the callers of btrfs_add_delayed_iput might benefit from the extra wakeup, like btrfs_remove_block_group, so I don't want to leave the idea yet.
next prev parent reply index Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top 2018-11-21 19:09 [PATCH 0/3] Delayed iput fixes Josef Bacik 2018-11-21 19:09 ` [PATCH 1/3] btrfs: run delayed iputs before committing Josef Bacik 2018-11-26 14:44 ` Nikolay Borisov 2018-11-21 19:09 ` [PATCH 2/3] btrfs: wakeup cleaner thread when adding delayed iput Josef Bacik 2018-11-27 8:26 ` Nikolay Borisov 2018-11-27 19:54 ` Josef Bacik 2018-11-27 19:59 ` Chris Mason 2018-11-27 20:08 ` Josef Bacik 2018-11-28 19:06 ` David Sterba [this message] 2018-11-28 19:32 ` Chris Mason 2018-11-28 20:08 ` Filipe Manana 2018-11-29 0:30 ` Qu Wenruo 2018-11-21 19:09 ` [PATCH 3/3] btrfs: replace cleaner_delayed_iput_mutex with a waitqueue Josef Bacik 2018-11-27 8:29 ` Nikolay Borisov 2018-11-27 20:01 ` Josef Bacik 2018-12-03 16:06 [PATCH 0/3][V2] Delayed iput fixes Josef Bacik 2018-12-03 16:06 ` [PATCH 2/3] btrfs: wakeup cleaner thread when adding delayed iput Josef Bacik 2018-12-04 9:21 ` Nikolay Borisov 2018-12-04 18:18 ` Josef Bacik 2019-01-11 15:21 [PATCH 0/3][V3] Delayed iput fixes Josef Bacik 2019-01-11 15:21 ` [PATCH 2/3] btrfs: wakeup cleaner thread when adding delayed iput Josef Bacik
Reply instructions: You may reply publically to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20181128190633.GZ2842@twin.jikos.cz \ --firstname.lastname@example.org \ --cc=Kernelemail@example.com \ --firstname.lastname@example.org \ --email@example.com \ --firstname.lastname@example.org \ --email@example.com \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: link
Linux-BTRFS Archive on lore.kernel.org Archives are clonable: git clone --mirror https://lore.kernel.org/linux-btrfs/0 linux-btrfs/git/0.git # If you have public-inbox 1.1+ installed, you may # initialize and index your mirror using the following commands: public-inbox-init -V2 linux-btrfs linux-btrfs/ https://lore.kernel.org/linux-btrfs \ firstname.lastname@example.org public-inbox-index linux-btrfs Example config snippet for mirrors Newsgroup available over NNTP: nntp://nntp.lore.kernel.org/org.kernel.vger.linux-btrfs AGPL code for this site: git clone https://public-inbox.org/public-inbox.git