On Tue, Dec 29, 2020 at 6:41 AM Daejun Park <daejun7.park@xxxxxxxxxxx> wrote: > > 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. > Hi, that's what I get with data=ordered if I issue a sync after the removal: # time rm -rf /media/linux-5.10/ ; sync ; kill $! real 0m1.569s user 0m0.044s sys 0m1.508s # === nvme0n1 === CPU 0: 10980 events, 515 KiB data CPU 1: 0 events, 0 KiB data CPU 2: 0 events, 0 KiB data CPU 3: 26 events, 2 KiB data CPU 4: 3601 events, 169 KiB data CPU 5: 0 events, 0 KiB data CPU 6: 21786 events, 1022 KiB data CPU 7: 0 events, 0 KiB data Total: 36393 events (dropped 0), 1706 KiB data Still way less transactions than writeback. Cheers, -- per aspera ad upstream