linux-fsdevel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Kyungmin Park <kmpark@infradead.org>
To: OGAWA Hirofumi <hirofumi@mail.parknet.co.jp>
Cc: Arnd Bergmann <arnd@arndb.de>,
	Lukas Czerner <lczerner@redhat.com>,
	linux-kernel@vger.kernel.org, linux-fsdevel@vger.kernel.org
Subject: Re: [PATCH v6] fat: Batched discard support for fat
Date: Tue, 24 May 2011 17:54:35 +0900	[thread overview]
Message-ID: <BANLkTiktjZ3ezpN0HuviWGzjoWUKqtXjZA@mail.gmail.com> (raw)
In-Reply-To: <87mxick0zj.fsf@devron.myhome.or.jp>

On Tue, May 24, 2011 at 4:32 PM, OGAWA Hirofumi
<hirofumi@mail.parknet.co.jp> wrote:
> Kyungmin Park <kmpark@infradead.org> writes:
>
>>>> It's handled at trim implementation. It just trim the fat aware block.
>>>> Not trim the blocks which fat doesn't know.
>>>> As fat don't use the block 0, 1, it adjust the start block at kernel.
>>>>
>>>> +       if (start < FAT_START_ENT)
>>>> +               start = FAT_START_ENT;
>>>>
>>>> and don't exceed the max cluster size.
>>>>
>>>> +       len = (len > sbi->max_cluster) ? sbi->max_cluster : len;
>>>>
>>>> +       for (count = start; count <= len; count++) {
>>>
>>> Yes. We _adjust_ from 0 to 2 here, so, the end of block also have to be
>>> _adjusted_.
>>>
>>> From other point of view, if userland specified 0 - max-length
>>> (i.e. number of blocks), what happens? It would trim block of 2 -
>>> (max-length - 2), right?
>>
>> No, length is not changed. so max-length is used.
>
> No, no. Userland will know max-length from statvfs, right? So, let's
> assume it is 100 (->f_blocks) * 1024 (->f_bsize).
>
> Now, userland know about max length, 102400, ok? Let's start to trim.
>
> Assume, userland want to trim whole. So, userland will specify like
>
>        trim(0, 102400).
>
> What happen in kernel actually?
>
> Current implement doesn't map blocks. So, in the case of FAT, it adjusts
> from 0 to 2 * 1024.
>
> So, it trims between 2048 and 102400. The problem is here. FS layout is
> actually, 2048 and (102400 + 2048). I.e. actually userland has to do
>
>        trim(2048, 102400 + 2048)

Umm maybe first implementation does as like this, but Lukas mentioned
it's wrong. So I modified it for batched discard concept.

You want the loop like this

for (count = start; count <= (start + len); count++)

>
> to specify whole. How to know 2048?
>
> See what I'm saying?
>
> FAT has liner block space, so the problem is small against mapping. But
> other FSes has bigger problem.
>
> Thanks.
> --
> OGAWA Hirofumi <hirofumi@mail.parknet.co.jp>
>

  reply	other threads:[~2011-05-24  8:54 UTC|newest]

Thread overview: 33+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-03-28 10:34 [PATCH v6] fat: Batched discard support for fat Kyungmin Park
2011-03-29  5:04 ` OGAWA Hirofumi
2011-03-29  5:11   ` Kyungmin Park
2011-03-29  6:37     ` OGAWA Hirofumi
2011-03-29  6:42       ` Kyungmin Park
2011-03-29  7:28         ` OGAWA Hirofumi
2011-03-30 13:22 ` Arnd Bergmann
2011-03-30 13:50   ` Lukas Czerner
2011-03-30 13:58     ` Kyungmin Park
2011-03-30 14:45       ` Arnd Bergmann
2011-03-30 14:20     ` Arnd Bergmann
2011-03-30 14:44       ` Kyungmin Park
2011-03-30 15:06         ` Arnd Bergmann
2011-05-24  1:18           ` Kyungmin Park
2011-05-24  4:47             ` OGAWA Hirofumi
2011-05-24  5:21               ` Kyungmin Park
2011-05-24  6:39                 ` OGAWA Hirofumi
2011-05-24  6:55                   ` Kyungmin Park
2011-05-24  7:32                     ` OGAWA Hirofumi
2011-05-24  8:54                       ` Kyungmin Park [this message]
2011-05-24  9:44                         ` OGAWA Hirofumi
2011-05-24  9:25                       ` Lukas Czerner
2011-05-24 10:07                         ` OGAWA Hirofumi
2011-05-24 10:44                           ` Lukas Czerner
2011-05-24 11:14                             ` OGAWA Hirofumi
2011-05-24 11:32                               ` Lukas Czerner
2011-05-24 12:19                                 ` OGAWA Hirofumi
2011-05-24 13:30                                   ` Lukas Czerner
2011-05-24 14:19                                     ` OGAWA Hirofumi
2011-08-31 13:02                                       ` Kyungmin Park
2011-08-31 17:51                                         ` OGAWA Hirofumi
2011-10-05 14:38                                           ` Lukas Czerner
  -- strict thread matches above, loose matches on Subject: below --
2017-06-15 16:10 Alex Ivanov
2017-06-16  1:50 ` OGAWA Hirofumi

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=BANLkTiktjZ3ezpN0HuviWGzjoWUKqtXjZA@mail.gmail.com \
    --to=kmpark@infradead.org \
    --cc=arnd@arndb.de \
    --cc=hirofumi@mail.parknet.co.jp \
    --cc=lczerner@redhat.com \
    --cc=linux-fsdevel@vger.kernel.org \
    --cc=linux-kernel@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;
as well as URLs for NNTP newsgroup(s).