Re: [PATCH 2/3] vmscan: make mapped executable pages the first class citizen

From: Pekka Enberg
Date: Tue May 19 2009 - 02:39:48 EST


Hi!

On Sat, May 16, 2009 at 12:00 PM, Wu Fengguang <fengguang.wu@xxxxxxxxx> wrote:
> @@ -1272,28 +1273,40 @@ static void shrink_active_list(unsigned
>
>                /* page_referenced clears PageReferenced */
>                if (page_mapping_inuse(page) &&
> -                   page_referenced(page, 0, sc->mem_cgroup, &vm_flags))
> +                   page_referenced(page, 0, sc->mem_cgroup, &vm_flags)) {
>                        pgmoved++;
> +                       /*
> +                        * Identify referenced, file-backed active pages and
> +                        * give them one more trip around the active list. So
> +                        * that executable code get better chances to stay in
> +                        * memory under moderate memory pressure.  Anon pages
> +                        * are ignored, since JVM can create lots of anon
> +                        * VM_EXEC pages.
> +                        */
> +                       if ((vm_flags & VM_EXEC) && !PageAnon(page)) {
> +                               list_add(&page->lru, &l_active);
> +                               continue;
> +                       }

Why do we need to skip JIT'd code? There are plenty of desktop
applications that use Mono, for example, and it would be nice if we
gave them the same treatment as native applications. Likewise, I am
sure all browsers that use JIT for JavaScript need to be considered.

Pekka
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/