|
@@ -2433,9 +2433,7 @@ void __memcg_kmem_uncharge(struct page *page, int order)
|
|
|
|
|
|
/*
|
|
|
* Because tail pages are not marked as "used", set it. We're under
|
|
|
- * zone->lru_lock, 'splitting on pmd' and compound_lock.
|
|
|
- * charge/uncharge will be never happen and move_account() is done under
|
|
|
- * compound_lock(), so we don't have to take care of races.
|
|
|
+ * zone->lru_lock and migration entries setup in all page mappings.
|
|
|
*/
|
|
|
void mem_cgroup_split_huge_fixup(struct page *head)
|
|
|
{
|
|
@@ -4507,9 +4505,7 @@ static struct page *mc_handle_file_pte(struct vm_area_struct *vma,
|
|
|
* @from: mem_cgroup which the page is moved from.
|
|
|
* @to: mem_cgroup which the page is moved to. @from != @to.
|
|
|
*
|
|
|
- * The caller must confirm following.
|
|
|
- * - page is not on LRU (isolate_page() is useful.)
|
|
|
- * - compound_lock is held when nr_pages > 1
|
|
|
+ * The caller must make sure the page is not on LRU (isolate_page() is useful.)
|
|
|
*
|
|
|
* This function doesn't do "charge" to new cgroup and doesn't do "uncharge"
|
|
|
* from old cgroup.
|
|
@@ -4868,8 +4864,7 @@ static int mem_cgroup_move_charge_pte_range(pmd_t *pmd,
|
|
|
struct page *page;
|
|
|
|
|
|
/*
|
|
|
- * We don't take compound_lock() here but no race with splitting thp
|
|
|
- * happens because:
|
|
|
+ * No race with splitting thp happens because:
|
|
|
* - if pmd_trans_huge_lock() returns 1, the relevant thp is not
|
|
|
* under splitting, which means there's no concurrent thp split,
|
|
|
* - if another thread runs into split_huge_page() just after we
|