On Mon, Apr 04, 2016 at 03:17:18PM +0200, John Einar Reitan wrote: > On Wed, Mar 30, 2016 at 04:11:59PM +0900, Minchan Kim wrote: > > Recently, I got many reports about perfermance degradation > > in embedded system(Android mobile phone, webOS TV and so on) > > and failed to fork easily. > > > > The problem was fragmentation caused by zram and GPU driver > > pages. Their pages cannot be migrated so compaction cannot > > work well, either so reclaimer ends up shrinking all of working > > set pages. It made system very slow and even to fail to fork > > easily. > > > > Other pain point is that they cannot work with CMA. > > Most of CMA memory space could be idle(ie, it could be used > > for movable pages unless driver is using) but if driver(i.e., > > zram) cannot migrate his page, that memory space could be > > wasted. In our product which has big CMA memory, it reclaims > > zones too exccessively although there are lots of free space > > in CMA so system was very slow easily. > > > > To solve these problem, this patch try to add facility to > > migrate non-lru pages via introducing new friend functions > > of migratepage in address_space_operation and new page flags. > > > > (isolate_page, putback_page) > > (PG_movable, PG_isolated) > > > > For details, please read description in > > "mm/compaction: support non-lru movable page migration". > > Thanks, this mirrors what we see with the ARM Mali GPU drivers too. > > One thing with the current design which worries me is the potential > for multiple calls due to many separated pages being migrated. > On GPUs (or any other device) which has an IOMMU and L2 cache, which > isn't coherent with the CPU, we must do L2 cache flush & invalidation > per page. I guess batching pages isn't easily possible? > Hmm, I think it seems to cause many code stirring but surely worth to work. So, IMMO, it would be better to add such feature after soft landing of current work. Anyway, I will Cc'ed you in next revision. Thanks. -- 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>