On Fri, Aug 02, 2019 at 02:11:53PM +0000, Chris Mason wrote: > Yes and no. At some point important FS threads have the potential to > wait on every single REQ_META IO on the box, so every single REQ_META IO > has the potential to create priority inversions. [...] > Tejun reminded me that in a lot of ways, swap is user IO and it's > actually fine to have it prioritized at the same level as user IO. We > don't want to let a low prio app thrash the drive swapping things in and > out all the time, and it's actually fine to make them wait as long as > other higher priority processes aren't waiting for the memory. This > depends on the cgroup config, so wrt your current patches it probably > sounds crazy, but we have a lot of data around this from the fleet. swap is only user IO if we're doing the swapping in response to an allocation done on behalf of a user thread. If one of the above-mentioned important FS threads does a memory allocation which causes swapping, that priority needs to be inherited by the IO.