public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: OGAWA Hirofumi <hirofumi@mail.parknet.co.jp>
To: Namjae Jeon <linkinjeon@gmail.com>
Cc: akpm@linux-foundation.org, linux-fsdevel@vger.kernel.org,
	linux-kernel@vger.kernel.org, abartlet@samba.org,
	Namjae Jeon <namjae.jeon@samsung.com>,
	Ravishankar N <ravi.n1@samsung.com>
Subject: Re: [PATCH v3] fat: editions to support fat_fallocate
Date: Tue, 12 Mar 2013 18:07:44 +0900	[thread overview]
Message-ID: <87ip4xyoin.fsf@devron.myhome.or.jp> (raw)
In-Reply-To: <CAKYAXd_rettrtbYJoF4feBYTCWYOYGg_x1XbnNLyAZJBo7xa-Q@mail.gmail.com> (Namjae Jeon's message of "Tue, 12 Mar 2013 17:29:05 +0900")

Namjae Jeon <linkinjeon@gmail.com> writes:

>> If so, probably, I didn't clear my opinion/suggestion, or misled
>> you. Sorry about it.
>>
>> My opinion/suggestion is, "it should be before umount()".
>> I.e. fallocate() doesn't have any affect to FAT on clean state (clean
>> umount).
>>
>> To clear my state, I don't have strong opinion about implementation yet.
>> For example, about ->release() or ->evict_inode().
>>
>> So, if you had reason to use ->release() over "we discussed", it would
>> be good. (Or, if you still didn't have reasons, we would be better to
>> think about it)
> We considered all the possible points where we can release the
> pre-allocated blocks.
> As the "pre-allocation" is file based, we think it need to have
> release mechanism.
>
> In case of evict, Eviction will either happen when the file is removed
> or the inode is evicted from the cache by memory pressure when no
> references are present for that file.
> It is good that evict will be triggered in umount. but there is a risk
> that umount time can be increased.
> And It show users inconsistent result. e.g sometime user can not get
> file discarded fallocated blocks by memory pressure.
>
> Let me know your opinion.

Yes. My personal opinion is almost same, but I see some trade-off, and
it is why I can't decide easily.

Although I don't care about inconsistency on umount time. Because
inconsistency window is opening while user is holding reference to
inode, the window can already be enough big, and inconsistent only
happens with crash.  And if crashed, after all, both of ->release and
->evict requires fsck to recover FS.

Possibly longer umount time (batch modify) and longer close time (on
demand modify) are simply trade-off.

Predictable behavior would matter. Yes, evict time doesn't guarantee to
fallocate() is still available, however evict can be able to say it just
guarantees to available fallocated blocks between open() and
close(). Users have to call fallocate() again after close(), but
fallocate() may skip actual allocation if blocks still available.

I see optimization window with this evict behavior, because it can do
batch discard of fallocated blocks on multiple files, and update FAT at
once.

However, ->release() would be simpler, and would more predictable.

Thanks.
-- 
OGAWA Hirofumi <hirofumi@mail.parknet.co.jp>

  reply	other threads:[~2013-03-12  9:07 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-03-07 13:56 [PATCH v3] fat: editions to support fat_fallocate Namjae Jeon
2013-03-08 23:37 ` Andrew Morton
2013-03-11  9:43   ` Namjae Jeon
2013-03-09 14:18 ` OGAWA Hirofumi
2013-03-11  9:52   ` Namjae Jeon
2013-03-11 15:01     ` OGAWA Hirofumi
2013-03-12  8:29       ` Namjae Jeon
2013-03-12  9:07         ` OGAWA Hirofumi [this message]
2013-03-12  9:38           ` Namjae Jeon

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=87ip4xyoin.fsf@devron.myhome.or.jp \
    --to=hirofumi@mail.parknet.co.jp \
    --cc=abartlet@samba.org \
    --cc=akpm@linux-foundation.org \
    --cc=linkinjeon@gmail.com \
    --cc=linux-fsdevel@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=namjae.jeon@samsung.com \
    --cc=ravi.n1@samsung.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox