Thread (30 messages) 30 messages, 6 authors, 2019-11-22

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

From: Alex Shi <hidden>
Date: 2019-11-18 12:23:23
Also in: linux-mm, lkml


在 2019/11/16 下午3:03, Shakeel Butt 写道:
quoted
+reget_lruvec:
+               lruvec = mem_cgroup_page_lruvec(page, pgdat);
+
                /* If we already hold the lock, we can skip some rechecking */
-               if (!locked) {
-                       locked = compact_lock_irqsave(&pgdat->lru_lock,
-                                                               &flags, cc);
+               if (lruvec != locked_lruvec) {
+                       if (locked_lruvec) {
+                               spin_unlock_irqrestore(&locked_lruvec->lru_lock,
+                                               locked_lruvec->irqflags);
+                               locked_lruvec = NULL;
+                       }
What guarantees the lifetime of lruvec? You should read the comment on
mem_cgroup_page_lruvec(). Have you seen the patches Hugh had shared?
Please look at the  trylock_page_lruvec().
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?
BTW have you tested Hugh's patches?
yes, I have tried the case-lru-file-readtwice on my machine w/o containers, it show a bit more regression.

Thanks
Alex
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help