Re: [LSF/MM TOPIC] More async operations for file systems - async discard?
From: Ric Wheeler <hidden>
Date: 2019-02-18 22:30:54
Also in:
linux-block, linux-btrfs, linux-fsdevel, linux-xfs
On 2/17/19 9:22 PM, Dave Chinner wrote:
On Sun, Feb 17, 2019 at 06:42:59PM -0500, Ric Wheeler wrote:quoted
On 2/17/19 4:09 PM, Dave Chinner wrote:quoted
On Sun, Feb 17, 2019 at 03:36:10PM -0500, Ric Wheeler wrote:quoted
One proposal for btrfs was that we should look at getting discard out of the synchronous path in order to minimize the slowdown associated with enabling discard at mount time. Seems like an obvious win for "hint" like operations like discard.We already have support for that. blkdev_issue_discard() is synchornous, yes, but __blkdev_issue_discard() will only build the discard bio chain - it is up to the caller to submit and wait for it. Some callers (XFS, dm-thinp, nvmet, etc) use a bio completion to handle the discard IO completion, hence allowing async dispatch and processing of the discard chain without blocking the caller. Others (like ext4) simply call submit_bio_wait() to do wait synchronously on completion of the discard bio chain.quoted
I do wonder where we stand now with the cost of the various discard commands - how painful is it for modern SSD's?AIUI, it still depends on the SSD implementation, unfortunately.I think the variability makes life really miserable for layers above it.Yup, that it does.quoted
Might be worth constructing some tooling that we can use to validate or shame vendors overThat doesn't seem to work.quoted
- testing things like a full device discard, discard of fs block size and big chunks, discard against already discarded, etc.We did that many years ago because discard on SSDs sucked: https://people.redhat.com/lczerner/discard/test_discard.html https://sourceforge.net/projects/test-discard/files/ And, really, that didn't changed a thing - discard still sucks... Cheers, Dave.
Totally forgot about that work - maybe it is time to try again and poke some vendors. Ric