> @@ -1892,3 +1892,36 @@ int valid_swaphandles(swp_entry_t entry, unsigned long > *offset) > *offset = ++toff; > return nr_pages? ++nr_pages: 0; > } > + > +#ifdef CONFIG_CGROUP_SWAP_RES_CTLR > +int swap_cgroup_vm_swap_full(struct page *page) > +{ > + int ret; > + struct swap_info_struct *p; > + struct mem_cgroup *mem; > + u64 usage; > + u64 limit; > + swp_entry_t entry; > + > + VM_BUG_ON(!PageLocked(page)); > + VM_BUG_ON(!PageSwapCache(page)); > + > + ret = 0; > + entry.val = page_private(page); > + p = swap_info_get(entry); > + if (!p) > + goto out; > + > + mem = p->memcg[swp_offset(entry)]; > + usage = swap_cgroup_read_usage(mem) / PAGE_SIZE; > + limit = swap_cgroup_read_limit(mem) / PAGE_SIZE; > + limit = (limit < total_swap_pages) ? limit : total_swap_pages; > + > + ret = usage * 2 > limit; > + > + spin_unlock(&swap_lock); > + > +out: > + return ret; > +} > +#endif
shouldn't it check the global usage (nr_swap_pages) as well? YAMAMOTO Takashi _______________________________________________ Containers mailing list [EMAIL PROTECTED] https://lists.linux-foundation.org/mailman/listinfo/containers _______________________________________________ Devel mailing list Devel@openvz.org https://openvz.org/mailman/listinfo/devel