Performance of ext4 batched discard patch

PostMark test

Parametres of the Postmark test

set number 50000
set transactions 50000
set read 4096
set write 4096
set bias read 5
set bias create 5
set report terse
set size 1000 200000
set buffering true|false

I have run this particular test with -o discard mount option 10 times for each minimum extent size and once more with -o nodiscard to get values to comare. In each test with discard option I have run ioctl in loop whithou any sleep between its invocations, so I runs all time the postmark test was running. This is rather extreme situation, because in real use it should not be run so often, but I want to show the worst case scenario.

Testing order

1. mkfs.ext4
2. mount -o discard
3. run ioctl in loop at background
4. ./postmark
5. stop ioctl loop
6. repeat 1. - 5. ten times

vendor1 device


[Buffering enabled] [Buffering disabled]

Result tables for vendor1 device

Click to show/hide tables and compare results with current solution here

vendor2 device

[Buffering enabled] [Buffering disabled]

Result tables for vendor2 device

Click to show/hide tables and compare results with current solution here

Results seems very promising despite the fact that ioctl was run so often. Also results showed that 400kB is very reasonable size for minimum extent size, at least in this postmark test.