/* Batch_start/batch_end is called in unmap_page_range/invlidate/trucate. In that cases, pages are freed continuously and we can expect pages are in the same memcg. All these calls itself limits the number of pages freed at once, then uncharge_start/end() is called properly. This may be called prural(2) times in a context,  */
void mem_cgroup_uncharge_start(void)
/* Batch_start/batch_end is called in unmap_page_range/invlidate/trucate. In that cases, pages are freed continuously and we can expect pages are in the same memcg. All these calls itself limits the number of pages freed at once, then uncharge_start/end() is called properly. This may be called prural(2) times in a context,  */
void mem_cgroup_uncharge_start(void)
{
	current->memcg_batch.do_batch++;
	if (current->memcg_batch.do_batch == 1) {
		current->memcg_batch.memcg = NULL;
		current->memcg_batch.bytes = 0;
		current->memcg_batch.memsw_bytes = 0;
	}
}