在 2019/11/18 下午8:31, Matthew Wilcox 写道: >> Thanks for comments, Shakeel. >> >> lruvec lifetime is same as memcg, which allocted in mem_cgroup_alloc()->alloc_mem_cgroup_per_node_info() >> I have read Hugh's patchset, even not every lines. But what's point of you here? > I believe Shakeel's point is that here: > > struct lruvec *mem_cgroup_page_lruvec(struct page *page, struct pglist_data *pgdat) > { > ... > memcg = page->mem_cgroup; > > there is nothing pinning the memcg, and it could be freed before > dereferencing memcg->nodeinfo in mem_cgroup_page_nodeinfo(). That's right! I will send the fix patches for review. Thanks a lot!