[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-ID: <20201229054143epcms2p15ae3cce43bb3c503adf94528f354ba78@epcms2p1>
Date: Tue, 29 Dec 2020 14:41:43 +0900
From: Daejun Park <daejun7.park@...sung.com>
To: "mcroce@...ux.microsoft.com" <mcroce@...ux.microsoft.com>,
"tytso@....edu" <tytso@....edu>
CC: "linux-ext4@...r.kernel.org" <linux-ext4@...r.kernel.org>
Subject: Re: discard and data=writeback
Hi,
> # dmesg |grep EXT4-fs |tail -1
> [ 1594.829833] EXT4-fs (nvme0n1p1): mounted filesystem with ordered
> data mode. Opts: data=ordered,discard
> # blktrace /dev/nvme0n1 & sleep 1 ; time rm -rf /media/linux-5.10/ ; kill $!
> [1] 3032
>
> real 0m1.328s
> user 0m0.063s
> sys 0m1.231s
> # === nvme0n1 ===
> CPU 0: 0 events, 0 KiB data
> CPU 1: 0 events, 0 KiB data
> CPU 2: 0 events, 0 KiB data
> CPU 3: 1461 events, 69 KiB data
> CPU 4: 1 events, 1 KiB data
> CPU 5: 0 events, 0 KiB data
> CPU 6: 0 events, 0 KiB data
> CPU 7: 0 events, 0 KiB data
> Total: 1462 events (dropped 0), 69 KiB data
>
>
> # dmesg |grep EXT4-fs |tail -1
> [ 1734.837651] EXT4-fs (nvme0n1p1): mounted filesystem with writeback
> data mode. Opts: data=writeback,discard
> # blktrace /dev/nvme0n1 & sleep 1 ; time rm -rf /media/linux-5.10/ ; kill $!
> [1] 3069
>
> real 1m30.273s
> user 0m0.139s
> sys 0m3.084s
> # === nvme0n1 ===
> CPU 0: 133830 events, 6274 KiB data
> CPU 1: 21878 events, 1026 KiB data
> CPU 2: 46365 events, 2174 KiB data
> CPU 3: 98116 events, 4600 KiB data
> CPU 4: 290902 events, 13637 KiB data
> CPU 5: 10926 events, 513 KiB data
> CPU 6: 76861 events, 3603 KiB data
> CPU 7: 17855 events, 837 KiB data
> Total: 696733 events (dropped 0), 32660 KiB data
>
In this result, there is few IO in ordered mode.
As I understand (please correct this if I am wrong), with writeback +
discard, ext4_issue_discard is called immediately at each rm command.
However, with ordered mode, ext4_issue_discard is called when end of
committing a transaction to pace with the corresponding transaction.
It means, they are not discarded yet.
Even with ordered mode, if sync is called after rm command,
ext4_issue_discard can be called due to transaction commit.
So, I think you will get similar results form writeback mode with sync
command.
Thanks,
Daejun
Powered by blists - more mailing lists