Thread (122 messages) 122 messages, 11 authors, 2009-09-13

Re: [RFC] respect the referenced bit of KVM guest pages?

From: Minchan Kim <hidden>
Date: 2009-08-19 12:25:57
Also in: lkml

On Wed, Aug 19, 2009 at 9:10 PM, Wu Fengguang[off-list ref] wrote:
On Wed, Aug 19, 2009 at 08:05:19PM +0800, KOSAKI Motohiro wrote:
quoted
quoted
quoted
page_referenced_file?
I think we should change page_referenced().
Yeah, good catch.
quoted
Instead, How about this?
==============================================

Subject: [PATCH] mm: stop circulating of referenced mlocked pages

Currently, mlock() systemcall doesn't gurantee to mark the page PG_Mlocked
                                                   mark PG_mlocked
quoted
because some race prevent page grabbing.
In that case, instead vmscan move the page to unevictable lru.

However, Recently Wu Fengguang pointed out current vmscan logic isn't so
efficient.
mlocked page can move circulatly active and inactive list because
vmscan check the page is referenced _before_ cull mlocked page.

Plus, vmscan should mark PG_Mlocked when cull mlocked page.
                          PG_mlocked
quoted
Otherwise vm stastics show strange number.

This patch does that.
Reviewed-by: Wu Fengguang <redacted>
Thanks.


quoted
quoted
Index: b/mm/rmap.c
===================================================================
--- a/mm/rmap.c       2009-08-18 19:48:14.000000000 +0900
+++ b/mm/rmap.c       2009-08-18 23:47:34.000000000 +0900
@@ -362,7 +362,9 @@ static int page_referenced_one(struct pa
       * unevictable list.
       */
      if (vma->vm_flags & VM_LOCKED) {
-             *mapcount = 1;  /* break early from loop */
+             *mapcount = 1;          /* break early from loop */
+             *vm_flags |= VM_LOCKED; /* for prevent to move active list */
quoted
+             try_set_page_mlocked(vma, page);
That call is not absolutely necessary?
Why? I haven't catch your point.
Because we'll eventually hit another try_set_page_mlocked() when
trying to unmap the page. Ie. duplicated with another call you added
in this patch.
Yes. we don't have to call it and we can make patch simple.
I already sent patch on yesterday.

http://marc.info/?l=linux-mm&m=125059325722370&w=2

I think It's more simple than KOSAKI's idea.
Is any problem in my patch ?

Thanks,
Fengguang

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>


-- 
Kind regards,
Minchan Kim

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help