On Thu, Nov 21, 2019 at 05:18:34PM -0800, Darrick J. Wong wrote: > > So in theory, we could do that with dm_flakey --- but that's a pain in > > the tuckus, since you have to specify the LBA for the directory blocks > > that you might want to have fail. > > Funny, I've been working on a fstests helper function to make it easy to > set up dm-flakey based on fiemap/getfsmap output and such. :) Ah, excellent, I'm looking forward to seeing it. :-) > > What might be interesting to do is some kind of eBPF hook where we > > pass in the block #, inode #, and metadata type, and the ePBF program > > could do use a much more complex set of criteria in terms of whether > > or not to trigger an EIO, or how to fuzz a particular block to either > > force a CRC failure, or to try to find bugs ala Hydra[1] (funded via a > > Google Faculty Research Award grant), but using a much more glass-box > > style test approach. > > That would be fun. Attach an arbitrary eBPF program to a range of > sectors. I wonder how loud the howls of protest would be for "can we > let ebpf programs scribble on a kernel io buffer pleeze?"... Well, because the eBPF hook would include the metadata type (an allocation bitmap vs inode table vs htree index vs htree leaf block, etc.) what I was thinking about has to be done in ext4 as a ext4-specific hook. And it would only be enabled if CONFIG_EXT4_DEBUG or a separate Kconfig option is enabled --- and I *hope* no distribution would be so silly/stupid enough to enable it on a product kernel build. :-) - Ted