Re: [PATCH 2/6] ksm: dont allow overlap memory addresses registrations.

From: Izik Eidus
Date: Wed May 06 2009 - 08:47:13 EST


Rik van Riel wrote:
Izik Eidus wrote:
Rik van Riel wrote:
Izik Eidus wrote:
subjects say it all.

Not a very useful commit message.

This makes me wonder, though.

What happens if a user mmaps a 30MB memory region, registers it
with KSM and then unmaps the middle 10MB?

User cant break 30MB into smaller one.

The user can break up the underlying VMAs though.

So? KSM work on contigiouns virtual address, if user will break its virtual address and will leave it to be registered inside ksm
get_user_pages() will just fail, and ksm will skip scanning this addresses...

Normal usage of ksm is:

1) Allocating big chunck of memory.

2) registering it inside ksm

3) free the memory and remove it from ksm...


I am just wondering out loud if we really want two
VMA-like objects in the kernel, the VMA itself and
a separate KSM object, with different semantics.

Maybe this is fine, but I do think it's a question
that needs to be thought about.


Yea, we had some talk about that issue, considering the fact that user register its memory using ioctl and not systemcall, and considering the fact that ksm is loadable module that the kernel doesnt depend on,

How would you prefer to see the interface?


--
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/