Granger wrote:flash_vol_create in /sys/fs/bcache/<cset-uuid> could, according to bcache documentation, be a way to emulate overprovision ex post facto.
Not sure what you mean by that. I don't obviously see what that would have with the Flash provisioning to do.
Granger wrote:Thinking a bit further about online TRIM on the backed filesystem: could also be an answer, as it would tell bcache which blocks got free'd. Without it bcache might see the cache running full and doing a purge of multiple erase blocks all over the cache, the latencies of a bunch of small discards in parallel might add up to the stalls you see... Depends on the discard setting in /sys/block/<cdev>/bcache though.
I would assume that bcache is fundamentally tuned to run with the cache constantly full. Though, just remounting the filesystem with discard support should be an easy enough test that doesn't take any downtime, so I guess there's no reason to not test.