On Thu 21-01-21 14:27:20, Mike Rapoport wrote:
From: Mike Rapoport rppt@linux.ibm.com
Account memory consumed by secretmem to memcg. The accounting is updated when the memory is actually allocated and freed.
What does this mean? What are the lifetime rules?
[...]
+static int secretmem_account_pages(struct page *page, gfp_t gfp, int order) +{
- int err;
- err = memcg_kmem_charge_page(page, gfp, order);
- if (err)
return err;
- /*
* seceremem caches are unreclaimable kernel allocations, so treat
* them as unreclaimable slab memory for VM statistics purposes
*/
- mod_lruvec_page_state(page, NR_SLAB_UNRECLAIMABLE_B,
PAGE_SIZE << order);
A lot of memcg accounted memory is not reclaimable. Why do you abuse SLAB counter when this is not a slab owned memory? Why do you use the kmem accounting API when __GFP_ACCOUNT should give you the same without this details?