Re: [PATCH 2/2] vmscan: activate executable pages after first usage

From: Minchan Kim
Date: Mon Aug 08 2011 - 20:26:54 EST


Hi, Kame.

On Tue, Aug 9, 2011 at 9:04 AM, KAMEZAWA Hiroyuki
<kamezawa.hiroyu@xxxxxxxxxxxxxx> wrote:
> On Tue, 9 Aug 2011 09:02:28 +0900
> Minchan Kim <minchan.kim@xxxxxxxxx> wrote:
>
>> On Mon, Aug 8, 2011 at 8:07 PM, Konstantin Khlebnikov
>> <khlebnikov@xxxxxxxxxx> wrote:
>> > Logic added in commit v2.6.30-5507-g8cab475
>> > (vmscan: make mapped executable pages the first class citizen)
>> > was noticeably weakened in commit v2.6.33-5448-g6457474
>> > (vmscan: detect mapped file pages used only once)
>> >
>> > Currently these pages can become "first class citizens" only after second usage.
>> >
>> > After this patch page_check_references() will activate they after first usage,
>> > and executable code gets yet better chance to stay in memory.
>> >
>> > TODO:
>> > run some cool tests like in v2.6.30-5507-g8cab475 =)
>> >
>> > Signed-off-by: Konstantin Khlebnikov <khlebnikov@xxxxxxxxxx>
>> > ---
>>
>> It might be a very controversial topic.
>> AFAIR, at least, we did when vmscan: make mapped executable pages the
>> first class citizen was merged. :)
>>
>> You try to change behavior.
>>
>> Old : protect *working set* executable page
>> New: protect executable page *unconditionally*.
>>
>
> Hmm ? I thought
> Old: protect pages if referenced twice
> New: protect executable page if referenced once.
>
> IIUC, ANON is proteced if it's referenced once.
>
> So, this patch changes EXECUTABLE file to the same class as ANON pages.

"Working set" means two reference in implementation of the moment. But
it can change in future as many as we want.

"Unconditionally" means that all of mapped page starts from referenced
pte so it would activate all of executable pages.

>
> Anyway, I agree test/measurement is required.

Absolutely.

--
Kind regards,
Minchan Kim
--
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/