From: Nikolay Borisov <nborisov@suse.com>
To: Josef Bacik <josef@toxicpanda.com>,
Chris Murphy <lists@colorremedies.com>,
Btrfs BTRFS <linux-btrfs@vger.kernel.org>
Subject: Re: fstrim is takes a long time on Btrfs and NVMe
Date: Sun, 22 Dec 2019 20:06:57 +0200 [thread overview]
Message-ID: <a6488349-301f-1071-0d96-4970ca50c3cd@suse.com> (raw)
In-Reply-To: <5e910a0e-2da8-72a0-fa36-7d48f2454ca4@toxicpanda.com>
On 22.12.19 г. 20:00 ч., Josef Bacik wrote:
> On 12/22/19 12:49 PM, Nikolay Borisov wrote:
>>
>>
>> On 22.12.19 г. 19:43 ч., Josef Bacik wrote:
>>> On 12/21/19 1:24 AM, Chris Murphy wrote:
>>>> Hi,
>>>>
>>>> Recent kernels, I think since 5.1 or 5.2, but tested today on 5.3.18,
>>>> 5.4.5, 5.5.0rc2, takes quite a long time for `fstrim /` to complete,
>>>> just over 1 minute.
>>>>
>>>> Filesystem Size Used Avail Use% Mounted on
>>>> /dev/nvme0n1p7 178G 16G 161G 9% /
>>>>
>>>> fstrim stops on this for pretty much the entire time:
>>>> ioctl(3, FITRIM, {start=0, len=0xffffffffffffffff, minlen=0}) = 0
>>>>
>>>> top shows the fstrim process itself isn't consuming much CPU, about
>>>> 2-3%. Top five items in per top, not much more revealing.
>>>>
>>>> Samples: 220K of event 'cycles', 4000 Hz, Event count (approx.):
>>>> 3463316966 lost: 0/0 drop: 0/0
>>>> Overhead Shared Object Symbol
>>>> 1.62% [kernel] [k] find_next_zero_bit
>>>> 1.59% perf [.] 0x00000000002ae063
>>>> 1.52% [kernel] [k] psi_task_change
>>>> 1.41% [kernel] [k]
>>>> update_blocked_averages
>>>> 1.33% [unknown] [.] 0000000000000000
>>>>
>>>> On a different system, with older Samsung 840 SATA SSD, and a fresh
>>>> Btrfs, I can't reproduce. It takes less than 1s. Not sure how to get
>>>> more information.
>>>>
>>>>
>>>
>>> You want to try Dennis's async discard stuff? That should fix these
>>> problems for you, the patches are in Dave's tree. Thanks,
>>
>> But aren't those only for inline discards e.g. when you have explicitly
>> mounted with discard. The use case here is using FITRIM ioctl, does
>> Dennis' stuff fix this?
>>
>
> I definitely misread the email, I thought he was talking about the
> commits being slow. The async discard stuff won't help with fitrim
> taking forever, there's only so much we can do in the face of shitty
> ssd's. Thanks,
Well, if we rework how fitrim is implemented - e.g. make discards async
and have some sort of locking to exclude queued extents being allocated
we can alleviate the problem somewhat.
>
> Josef
next prev parent reply other threads:[~2019-12-22 18:07 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-12-21 6:24 fstrim is takes a long time on Btrfs and NVMe Chris Murphy
2019-12-21 8:38 ` Andrea Gelmini
2019-12-21 9:27 ` Nikolay Borisov
2019-12-22 3:43 ` Chris Murphy
2019-12-22 3:59 ` Chris Murphy
2019-12-22 10:40 ` Nikolay Borisov
2019-12-22 17:43 ` Josef Bacik
2019-12-22 17:49 ` Nikolay Borisov
2019-12-22 18:00 ` Josef Bacik
2019-12-22 18:06 ` Nikolay Borisov [this message]
2019-12-22 19:08 ` Chris Murphy
2019-12-22 19:15 ` Roman Mamedov
2019-12-22 22:11 ` Chris Murphy
2019-12-22 22:29 ` Nikolay Borisov
2019-12-22 23:14 ` Chris Murphy
2019-12-22 23:23 ` Chris Murphy
2019-12-22 18:50 ` Chris Murphy
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=a6488349-301f-1071-0d96-4970ca50c3cd@suse.com \
--to=nborisov@suse.com \
--cc=josef@toxicpanda.com \
--cc=linux-btrfs@vger.kernel.org \
--cc=lists@colorremedies.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