This patch implements a routine for asynchronous memory reclaim for memorycgroup, which will be triggered when the usage is near to the limit.This patch includes only code codes for memory freeing.

Asynchronous memory reclaim can be a help for reduce latency becausememory reclaim goes while an application need to wait or compute something.

To do memory reclaim in async, we need some thread or worker.Unlike node or zones, memcg can be created on demand and there may bea system with thousands of memcgs. So, the number of jobs for memcgasynchronous memory reclaim can be big number in theory. So, node kswapdcodes doesn't fit well. And some scheduling on memcg layer will beappreciated.

This patch implements a LRU scanning which the number of scan is limited.

When shrink_mem_cgroup_shrink_rate_limited() is called, it scans pages at mostMEMCG_STATIC_SCAN_LIMIT(2Mbytes) pages. By this, round-robin can beimplemented.