Hey, Ted. On Wed, Jun 17, 2015 at 05:48:52PM -0400, Theodore Ts'o wrote: > On Wed, Jun 17, 2015 at 02:52:37PM -0400, Tejun Heo wrote: > > > > Hmmm... so, overriding things *before* an bio is issued shouldn't be > > too difficult and as long as this sort of operations aren't prevalent > > we might be able to get away with just charging them against root. > > Especially if it's to avoid getting blocked on the journal which we > > already consider a shared overhead which is charged to root. If this > > becomes large enough to require exacting charges, it'll be more > > complex but still way better than trying to raise priority on a bio > > which is already issued, which is likely to be excruciatingly painful > > if possible at all. > > Yeah, just charging the overhead to root seems good enough. I think the easiest way to achieve this bypass would be making jbd mark the inode while waiting in fdatawait so that writeback path can skip attaching the writeback bios for the inode. This isn't perfect but should be able to work around stalls from priority inversion to certain extent. However, I can't come up with a workload to test it. AFAICS, the fdatawait stall path in jbd2 is journal_finish_inode_data_buffers() but the path doesn't trigger reliabley with mixed load of overwriting dd, a bunch of file creations and chmods and different cgroups stay pretty well isolated. Can you please suggest a workload for testing the datawait path? Thanks. -- tejun -- To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in