public inbox for linux-btrfs@vger.kernel.org
 help / color / mirror / Atom feed
From: Nikolay Borisov <nborisov@suse.com>
To: Josef Bacik <josef@toxicpanda.com>,
	linux-btrfs@vger.kernel.org, kernel-team@fb.com
Subject: Re: [PATCH 11/23] btrfs: check tickets after waiting on ordered extents
Date: Mon, 3 Feb 2020 15:10:48 +0200	[thread overview]
Message-ID: <bff2845a-6947-dfdf-ae1f-d04ebd10eca4@suse.com> (raw)
In-Reply-To: <20200131223613.490779-12-josef@toxicpanda.com>



On 1.02.20 г. 0:36 ч., Josef Bacik wrote:
> Right now if the space is free'd up after the ordered extents complete
> (which is likely since the reservations are held until they complete),
> we would do extra delalloc flushing before we'd notice that we didn't
> have any more tickets.  Fix this by moving the tickets check after our
> wait_ordered_extents check.
> 
> Signed-off-by: Josef Bacik <josef@toxicpanda.com>

This patch makes sense only for metadata. Is this your intention -
tweaking the metadata change behavior? Correct me if I'm wrong but

btrfs_start_delalloc_roots from previous patch will essentially call
btrfs_run_delalloc_range for the roots which will create ordered extents in:
btrfs_run_delalloc_range
  cow_file_range
   add_ordered_extents

Following page writeout, from the endio routines we'll eventually do:

finish_ordered_fn
 btrfs_finish_ordered_io
  insert_reserved_file_extent
   btrfs_alloc_reserved_file_extent
    create delayed ref  <---- after the delayed extent is run this will
free some data space. But this happens in transaction commit context and
not when runnig ordered extents
  btrfs_remove_ordered_extent
   btrfs_delalloc_release_metadata <- this is only for metadata
    btrfs_inode_rsv_release
     __btrfs_block_rsv_release <-- frees metadata but not data?


I'm looking those patches thinking every change should be pertinent to
data space but apparently it's not. If so I think it will be best if you
update the cover letter for V2 to mention which patches can go in
independently or give more context why this particular patch is
pertinent to data flush.

  reply	other threads:[~2020-02-03 13:10 UTC|newest]

Thread overview: 56+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-01-31 22:35 [PATCH 00/23][v2] Convert data reservations to the ticketing infrastructure Josef Bacik
2020-01-31 22:35 ` [PATCH 01/23] btrfs: change nr to u64 in btrfs_start_delalloc_roots Josef Bacik
2020-02-03 10:45   ` Johannes Thumshirn
2020-02-03 11:15   ` Nikolay Borisov
2020-01-31 22:35 ` [PATCH 02/23] btrfs: remove orig from shrink_delalloc Josef Bacik
2020-02-03 10:46   ` Johannes Thumshirn
2020-01-31 22:35 ` [PATCH 03/23] btrfs: handle U64_MAX for shrink_delalloc Josef Bacik
2020-02-03 11:01   ` Johannes Thumshirn
2020-02-03 11:05   ` Johannes Thumshirn
2020-01-31 22:35 ` [PATCH 04/23] btrfs: make shrink_delalloc take space_info as an arg Josef Bacik
2020-02-03 10:53   ` Johannes Thumshirn
2020-01-31 22:35 ` [PATCH 05/23] btrfs: make ALLOC_CHUNK use the space info flags Josef Bacik
2020-02-03 11:19   ` Johannes Thumshirn
2020-01-31 22:35 ` [PATCH 06/23] btrfs: call btrfs_try_granting_tickets when freeing reserved bytes Josef Bacik
2020-01-31 22:35 ` [PATCH 07/23] btrfs: call btrfs_try_granting_tickets when unpinning anything Josef Bacik
2020-02-03 11:24   ` Johannes Thumshirn
2020-01-31 22:35 ` [PATCH 08/23] btrfs: call btrfs_try_granting_tickets when reserving space Josef Bacik
2020-01-31 22:35 ` [PATCH 09/23] btrfs: use the btrfs_space_info_free_bytes_may_use helper for delalloc Josef Bacik
2020-02-03 14:46   ` Johannes Thumshirn
2020-01-31 22:36 ` [PATCH 10/23] btrfs: use btrfs_start_delalloc_roots in shrink_delalloc Josef Bacik
2020-02-03 12:03   ` Nikolay Borisov
2020-01-31 22:36 ` [PATCH 11/23] btrfs: check tickets after waiting on ordered extents Josef Bacik
2020-02-03 13:10   ` Nikolay Borisov [this message]
2020-02-03 15:57     ` Josef Bacik
2020-01-31 22:36 ` [PATCH 12/23] btrfs: add the data transaction commit logic into may_commit_transaction Josef Bacik
2020-02-03 14:00   ` Nikolay Borisov
2020-01-31 22:36 ` [PATCH 13/23] btrfs: add flushing states for handling data reservations Josef Bacik
2020-02-03 14:00   ` Nikolay Borisov
2020-01-31 22:36 ` [PATCH 14/23] btrfs: add btrfs_reserve_data_bytes and use it Josef Bacik
2020-02-03 14:20   ` Nikolay Borisov
2020-01-31 22:36 ` [PATCH 15/23] btrfs: use ticketing for data space reservations Josef Bacik
2020-02-03 14:29   ` Nikolay Borisov
2020-01-31 22:36 ` [PATCH 16/23] btrfs: serialize data reservations if we are flushing Josef Bacik
2020-02-03 15:06   ` Nikolay Borisov
2020-01-31 22:36 ` [PATCH 17/23] btrfs: use the same helper for data and metadata reservations Josef Bacik
2020-02-03 15:47   ` Nikolay Borisov
2020-01-31 22:36 ` [PATCH 18/23] btrfs: drop the commit_cycles stuff for data reservations Josef Bacik
2020-02-03 16:02   ` Nikolay Borisov
2020-01-31 22:36 ` [PATCH 19/23] btrfs: don't pass bytes_needed to may_commit_transaction Josef Bacik
2020-02-03 16:10   ` Nikolay Borisov
2020-01-31 22:36 ` [PATCH 20/23] btrfs: don't force commit if we are data Josef Bacik
2020-02-03 16:12   ` Nikolay Borisov
2020-01-31 22:36 ` [PATCH 21/23] btrfs: run delayed iputs before committing the transaction for data Josef Bacik
2020-02-03 16:13   ` Nikolay Borisov
2020-01-31 22:36 ` [PATCH 22/23] btrfs: flush delayed refs when trying to reserve data space Josef Bacik
2020-02-03 16:16   ` Nikolay Borisov
2020-02-03 16:24     ` Josef Bacik
2020-01-31 22:36 ` [PATCH 23/23] btrfs: do async reclaim for data reservations Josef Bacik
2020-02-03 17:19   ` Nikolay Borisov
2020-02-03 18:51     ` Josef Bacik
  -- strict thread matches above, loose matches on Subject: below --
2020-02-04 16:19 [PATCH 0/23][v4] Convert data reservations to the ticketing infrastructure Josef Bacik
2020-02-04 16:19 ` [PATCH 11/23] btrfs: check tickets after waiting on ordered extents Josef Bacik
2020-02-04 16:52   ` Johannes Thumshirn
2020-06-30 13:58 [PATCH 00/23] Change data reservations to use the ticketing infra Josef Bacik
2020-06-30 13:59 ` [PATCH 11/23] btrfs: check tickets after waiting on ordered extents Josef Bacik
2020-07-07 15:42 [PATCH 00/23][v2] Change data reservations to use the ticketing infra Josef Bacik
2020-07-07 15:42 ` [PATCH 11/23] btrfs: check tickets after waiting on ordered extents Josef Bacik
2020-07-08 13:59 [PATCH 00/23][v3] Change data reservations to use the ticketing infra Josef Bacik
2020-07-08 14:00 ` [PATCH 11/23] btrfs: check tickets after waiting on ordered extents Josef Bacik
2020-07-21 14:22 [PATCH 00/23][v4] Change data reservations to use the ticketing infra Josef Bacik
2020-07-21 14:22 ` [PATCH 11/23] btrfs: check tickets after waiting on ordered extents Josef Bacik

Reply instructions:

You may reply publicly 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=bff2845a-6947-dfdf-ae1f-d04ebd10eca4@suse.com \
    --to=nborisov@suse.com \
    --cc=josef@toxicpanda.com \
    --cc=kernel-team@fb.com \
    --cc=linux-btrfs@vger.kernel.org \
    /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
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox