From: Dmitry Monakhov <dmonakhov@openvz.org>
To: Eric Sandeen <sandeen@redhat.com>
Cc: ext4 development <linux-ext4@vger.kernel.org>
Subject: Re: [PATCH 0/3] ext4: don't use quota reservation for speculative metadata blocks
Date: Thu, 08 Apr 2010 12:20:34 +0400 [thread overview]
Message-ID: <87sk76tkx9.fsf@openvz.org> (raw)
In-Reply-To: <4BBCFD10.3030504@redhat.com> (Eric Sandeen's message of "Wed, 07 Apr 2010 16:45:52 -0500")
Eric Sandeen <sandeen@redhat.com> writes:
> Because we can badly over-reserve metadata when we
> calculate worst-case, it complicates things for quota, since
> we must reserve and then claim later, retry on EDQUOT, etc.
> Quota is also a generally smaller pool than fs free blocks,
> so this over-reservation hurts more, and more often.
>
> I'm of the opinion that it's not the worst thing to allow
> metadata to push a user slightly over quota. This simplifies
> the code and avoids the false quota rejections that result
> from worst-case speculation.
Hm.. Totally agree with issue description. And seem there is no another
solution except yours.
ASAIU alloc_nofail is called from places where it is impossible to fail
an allocation even if something goes wrong.
I ask because currently i'm working on EIO handling in alloc/free calls.
I've found that it is useless to fail claim/free procedures because
caller is unable to handle it properly.
It is impossible to fail following operation
->writepage
->dquot_claim_space (what to do if EIO happens?)
Seems that your nofail operations has same semantics because it is just
an equivalent of claim, but without reservation.
>
> This patch series stops the speculative quota-charging for
> worst-case metadata requirements, and just charges quota
> when the blocks are allocated at writeout. It also is
> able to remove the try-again loop on EDQUOT.
>
> The first 2 patches are quota infrastructure changes,
> to change __dquot_alloc/free_space to take a flags argument,
> and then add a NOFAIL option, so that metadata writes which
> tip us over quota can proceed.
>
> The last patch makes the ext4 changes. The whole batch
> has been tested indirectly by running the xfstests suite
> with a hack to mount & enable quota prior to the test.
>
> I also did a more specific test of fragmenting freespace
> and then doing a large delalloc write under quota; quota
> stopped me at the right amount of file IO, and then the
> writeout generated enough metadata (due to the fragmentation)
> that it put me slightly over quota, as expected.
>
> Thanks,
> -Eric
> --
> To unsubscribe from this list: send the line "unsubscribe linux-ext4" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
next prev parent reply other threads:[~2010-04-08 8:21 UTC|newest]
Thread overview: 26+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-04-07 21:45 [PATCH 0/3] ext4: don't use quota reservation for speculative metadata blocks Eric Sandeen
2010-04-07 21:49 ` [PATCH 1/3] quota: use flags interface for dquot alloc/free space Eric Sandeen
2010-04-12 13:22 ` Jan Kara
2010-05-20 22:29 ` tytso
2010-04-07 21:52 ` [PATCH 2/3] quota: add the option to not fail with EDQUOT in block allocation Eric Sandeen
2010-04-12 13:23 ` Jan Kara
2010-05-20 22:32 ` tytso
2010-04-07 21:55 ` [PATCH 3/3] ext4: don't use quota reservation for speculative metadata blocks Eric Sandeen
2010-04-12 13:36 ` Jan Kara
2010-05-20 23:10 ` tytso
2010-04-08 8:20 ` Dmitry Monakhov [this message]
2010-04-08 15:28 ` [PATCH 0/3] " Eric Sandeen
2010-04-11 9:37 ` Dmitry Monakhov
2010-04-12 13:15 ` Jan Kara
2010-04-12 13:22 ` Jan Kara
2010-04-12 13:40 ` Dmitry Monakhov
2010-04-12 13:33 ` Dmitry Monakhov
2010-04-12 13:37 ` Dmitry Monakhov
2010-04-12 13:42 ` tytso
2010-04-12 13:52 ` Dmitry Monakhov
2010-04-12 13:55 ` Jan Kara
2010-04-12 14:08 ` Dmitry Monakhov
2010-04-12 14:24 ` Jan Kara
2010-04-12 15:50 ` Eric Sandeen
2010-04-12 2:20 ` tytso
2010-04-12 14:03 ` Jan Kara
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=87sk76tkx9.fsf@openvz.org \
--to=dmonakhov@openvz.org \
--cc=linux-ext4@vger.kernel.org \
--cc=sandeen@redhat.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
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.