Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
mm: compaction: avoid GFP_NOFS deadlock
Sync compaction takes the page lock and buffer locks in migration. If the caller is a filesystem, this deadlocks. The too_many_isolated() check can also cause a deadlock if all regular compactors are stuck on an fs lock and the fs compactor is stuck on too_many_isolated(). Fix this up by making NOFS allocations only do async migration with trylocks, and copy the too_many_isolated() exemption from reclaim. It appears this currently doesn't happen in practice. It might become more likely with folios making it into the filesystems. It triggers with the next patches that have order-0 requests defragment blocks. Signed-off-by: Johannes Weiner <[email protected]>
- Loading branch information