All of lore.kernel.org
 help / color / mirror / Atom feed
From: Andreas Rohner <andreas.rohner-hi6Y0CQ0nG0@public.gmane.org>
To: slava-yeENwD64cLxBDgjK7y7TUQ@public.gmane.org
Cc: linux-nilfs-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Subject: Re: [PATCH 2/4] nilfs-utils: cleanerd: add custom error value to enable fast retry
Date: Mon, 20 Jan 2014 13:02:50 +0100	[thread overview]
Message-ID: <52DD106A.5030502@gmx.net> (raw)
In-Reply-To: <1390214764.3034.81.camel@slavad-ubuntu>

Hi Vyacheslav,

Thank you for reviewing my patch set so thoroughly. I already have a few
new ideas to improve it from our exchange.

On 2014-01-20 11:46, Vyacheslav Dubeyko wrote:
> On Sun, 2014-01-19 at 15:01 +0100, Andreas Rohner wrote:
>> This patch adds the custom error value EGCTRYAGAIN, which signals to
>> cleanerd to retry the gc process as soon as possible with no timeout.
>>
>> If the GC decides not to do any real work and only changes a few
>> metadata bytes, there is no need for a timeout. Furthermore if the GC is
>> running, there is probably not enough free space on the device and it is
>> crucial to retry quickly.
> 
> Now GC really decrease performance very frequently. So, you suggest
> don't use timeout. :) I am afraid that it can decrease performance more.
> Why do you think in opposite manner?

I don't suggest to eliminate timeout in general. It just adds the option
for nilfs_reclaim_segment to skip the timeout once by returning the
custom error code -EGCTRYAGAIN. This is useful because if the number of
free blocks is below the threshold the cleaner won't write to the device
and won't free any segments, so it is important to retry another segment
quickly. I guess it could be reasonable to use a shorter timeout instead
of no timeout in this case.

> If we doesn't relate with idle system state or I/O load then rigid
> timeout can really decrease performance, as far as I can judge. The main
> problem of GC that it works in the background of main file system
> operations and, as a result, decrease the whole performance. So, how the
> "no-timeout" does correlate with main file system operation or with the
> whole system load? 
> 
> Could you describe your vision how it will work?

Well the GC uses the normal timeout for its normal operation. If the
number of free blocks is below the threshold it skips the current
segment or segments and returns -EGCTRYAGAIN to skip the timeout ONCE.

I thought it is good practice to separate a big patch into logical
units. That's why it is probably not clear what the intent is by just
looking at a single patch in the patch set. I will try to improve my
commit message to make it clearer.

Best regards,
Andreas Rohner

--
To unsubscribe from this list: send the line "unsubscribe linux-nilfs" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

  reply	other threads:[~2014-01-20 12:02 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-01-19 14:01 [PATCH 0/4] nilfs-utils: new feature to skip inefficient gc Andreas Rohner
     [not found] ` <cover.1390139797.git.andreas.rohner-hi6Y0CQ0nG0@public.gmane.org>
2014-01-19 14:01   ` [PATCH 1/4] nilfs-utils: cldconfig add an option to set minimal free blocks Andreas Rohner
     [not found]     ` <685e5c720189d1e451ed8a0d65581aa8c5a3f7f0.1390139797.git.andreas.rohner-hi6Y0CQ0nG0@public.gmane.org>
2014-01-20 10:14       ` Vyacheslav Dubeyko
2014-01-20 10:52         ` Andreas Rohner
     [not found]           ` <52DCFFEB.4070809-hi6Y0CQ0nG0@public.gmane.org>
2014-01-20 11:05             ` Vyacheslav Dubeyko
2014-01-20 11:13               ` Ryusuke Konishi
2014-01-20 11:55               ` Andreas Rohner
2014-01-19 14:01   ` [PATCH 2/4] nilfs-utils: cleanerd: add custom error value to enable fast retry Andreas Rohner
     [not found]     ` <a203a9d8105dc1b449e469158fb07fbffbf2da18.1390139797.git.andreas.rohner-hi6Y0CQ0nG0@public.gmane.org>
2014-01-20 10:46       ` Vyacheslav Dubeyko
2014-01-20 12:02         ` Andreas Rohner [this message]
2014-01-19 14:01   ` [PATCH 3/4] nilfs-utils: refactoring of nilfs_reclaim_segment to add minblocks param Andreas Rohner
2014-01-19 14:01   ` [PATCH 4/4] nilfs-utils: add support for and define some nilfs_argv flags Andreas Rohner
2014-01-19 14:02   ` [PATCH] nilfs2: depending on flags, update segment usage instead of cleaning Andreas Rohner
     [not found]     ` <1390140141-4432-1-git-send-email-andreas.rohner-hi6Y0CQ0nG0@public.gmane.org>
2014-01-19 16:49       ` Ryusuke Konishi
     [not found]         ` <20140120.014916.57469358.konishi.ryusuke-Zyj7fXuS5i5L9jVzuh4AOg@public.gmane.org>
2014-01-19 17:17           ` Andreas Rohner
2014-01-21 14:17           ` Andreas Rohner
2014-01-20  9:43   ` [PATCH 0/4] nilfs-utils: new feature to skip inefficient gc Vyacheslav Dubeyko
2014-01-20 10:37     ` Andreas Rohner
     [not found]       ` <52DCFC61.7050608-hi6Y0CQ0nG0@public.gmane.org>
2014-01-20 10:54         ` Vyacheslav Dubeyko

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=52DD106A.5030502@gmx.net \
    --to=andreas.rohner-hi6y0cq0ng0@public.gmane.org \
    --cc=linux-nilfs-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=slava-yeENwD64cLxBDgjK7y7TUQ@public.gmane.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 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.