Lines Matching refs:page
240 static inline struct obj_cgroup **page_obj_cgroups(struct page *page)
243 * page->mem_cgroup and page->obj_cgroups are sharing the same
245 * that the page is a slab page (e.g. page_cgroup_ino()), let's
249 ((unsigned long)page->obj_cgroups & ~0x1UL);
252 static inline bool page_has_obj_cgroups(struct page *page)
254 return ((unsigned long)page->obj_cgroups & 0x1UL);
257 int memcg_alloc_page_obj_cgroups(struct page *page, struct kmem_cache *s,
260 static inline void memcg_free_page_obj_cgroups(struct page *page)
262 kfree(page_obj_cgroups(page));
263 page->obj_cgroups = NULL;
322 struct page *page;
331 page = virt_to_head_page(p[i]);
333 if (!page_has_obj_cgroups(page) &&
334 memcg_alloc_page_obj_cgroups(page, s, flags)) {
339 off = obj_to_index(s, page, p[i]);
341 page_obj_cgroups(page)[off] = objcg;
342 mod_objcg_state(objcg, page_pgdat(page),
356 struct page *page;
367 page = virt_to_head_page(p[i]);
368 if (!page_has_obj_cgroups(page))
372 s = page->slab_cache;
376 off = obj_to_index(s, page, p[i]);
377 objcg = page_obj_cgroups(page)[off];
381 page_obj_cgroups(page)[off] = NULL;
383 mod_objcg_state(objcg, page_pgdat(page), cache_vmstat_idx(s),
390 static inline bool page_has_obj_cgroups(struct page *page)
400 static inline int memcg_alloc_page_obj_cgroups(struct page *page,
406 static inline void memcg_free_page_obj_cgroups(struct page *page)
432 struct page *page;
434 page = virt_to_head_page(obj);
435 if (WARN_ONCE(!PageSlab(page), "%s: Object is not a Slab page!\n",
438 return page->slab_cache;
441 static __always_inline void account_slab_page(struct page *page, int order,
444 mod_node_page_state(page_pgdat(page), cache_vmstat_idx(s),
448 static __always_inline void unaccount_slab_page(struct page *page, int order,
452 memcg_free_page_obj_cgroups(page);
454 mod_node_page_state(page_pgdat(page), cache_vmstat_idx(s),