All of lore.kernel.org
 help / color / mirror / Atom feed
From: Josef Bacik <jbacik@fusionio.com>
To: Zach Brown <zab@zabbo.net>
Cc: "linux-btrfs@vger.kernel.org" <linux-btrfs@vger.kernel.org>
Subject: Re: [PATCH] Btrfs: flush delayed inodes if we're short on space
Date: Thu, 21 Jun 2012 16:08:28 -0400	[thread overview]
Message-ID: <4FE37F3C.2020102@fusionio.com> (raw)
In-Reply-To: <4FE376F3.5030609@zabbo.net>

On 06/21/2012 03:33 PM, Zach Brown wrote:
>
>> +	case FLUSH_DELAYED_ITEMS_NR:
>> +	case FLUSH_DELAYED_ITEMS:
>> +		nr = (*state == FLUSH_DELAYED_ITEMS_NR) ? 10 : -1;
>
> This 10 seemed awfully magical so I read a bit more.
>
> It appears to be an attempt to pop back up into reserve_metadata_bytes()
> to see if the caller has been satisfied before continuing on to apply
> all the delayed items.
>
> The magic number seems awfully clumsy.  It'll either do too much work or
> will blow through all the delayed items, depending on the load.  Is it
> too hard to have btrfs_run_delayed_items() check for the callers
> reservation and return if there's a chance that it'll be satisfied?
>
> Am I missing something?  Over-thinking a rare path as the initial steps
> will tend to free up space most of the time?
>

Ugh sorry I just dug this patch out from last week and forgot I had just 
picked an arbitrary number to make sure it was working.  You are 
correct, what I _meant_ to do (and will do after I respond) was 
calculate how much we wanted to flush and then divide that by how much 
the delayed inodes reserve and then multiply it by 2 for good measure. 
Does that sound more reasonable?  Thanks,

Josef

  reply	other threads:[~2012-06-21 20:08 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-06-21 18:54 [PATCH] Btrfs: flush delayed inodes if we're short on space Josef Bacik
2012-06-21 19:33 ` Zach Brown
2012-06-21 20:08   ` Josef Bacik [this message]
2012-06-21 21:10     ` Zach Brown

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=4FE37F3C.2020102@fusionio.com \
    --to=jbacik@fusionio.com \
    --cc=linux-btrfs@vger.kernel.org \
    --cc=zab@zabbo.net \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.