Re: [PATCH v3 3/7] mm/lru: replace pgdat lru_lock with lruvec lock

From: Alex Shi
Date: Tue Nov 19 2019 - 05:08:18 EST




å 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!