On Fri 13-01-17 14:35:10, Lucas Stach wrote: > Am Freitag, den 13.01.2017, 14:24 +0100 schrieb Vlastimil Babka: > > On 01/13/2017 12:51 PM, Lucas Stach wrote: > > > Commit 73e64c51afc5 (mm, compaction: allow compaction for GFP_NOFS requests) > > > changed compation to skip FS pages if not explicitly allowed to touch them, > > > but missed to update the CMA compact_control. > > > > > > This leads to a very high isolation failure rate, crippling performance of > > > CMA even on a lightly loaded system. Re-allow CMA to compact FS pages by > > > setting the correct GFP flags, restoring CMA behavior and performance to > > > the kernel 4.9 level. > > > > > > Fixes: 73e64c51afc5 (mm, compaction: allow compaction for GFP_NOFS requests) > > > Signed-off-by: Lucas Stach <l.stach@xxxxxxxxxxxxxx> > > > > Acked-by: Vlastimil Babka <vbabka@xxxxxxx> > > > > It's true that this restores the behavior for CMA to 4.9. But it also reveals > > that CMA always implicitly assumed to be called from non-fs context. That's > > expectable for the original CMA use-case of drivers for devices such as cameras, > > but I now wonder if there's danger when CMA gets invoked via dma-cma layer with > > generic cma range for e.g. a disk device... I guess that would be another > > argument for scoped GFP_NOFS, which should then be applied to adjust the > > gfp_mask here. Or we could apply at least memalloc_noio_flags() right now, which > > should already handle the disk device -> dma -> cma scenario? > > That's right. But I don't think we need to fix this for 4.10. The > minimal fix in this patch brings things back to the old assumptions. > > As dma allocations already carry proper GFP flags it's just a matter of > passing them through to CMA, to make things work correctly. I'll cook up > a follow up patch for that, but I think this should wait for the next > merge window to be applied. Agreed. Thanks! -- Michal Hocko SUSE Labs -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxx. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>