Re: [PATCH 5/5] add ksm kernel shared memory driver.

From: Izik Eidus
Date: Mon Apr 27 2009 - 19:13:49 EST


Andrew Morton wrote:
On Mon, 20 Apr 2009 04:36:06 +0300
Izik Eidus <ieidus@xxxxxxxxxx> wrote:

Ksm is driver that allow merging identical pages between one or more
applications in way unvisible to the application that use it.
Pages that are merged are marked as readonly and are COWed when any
application try to change them.

Breaks sparc64 and probably lots of other architectures:

mm/ksm.c: In function `try_to_merge_two_pages_alloc':
mm/ksm.c:697: error: `_PAGE_RW' undeclared (first use in this function)

there should be an official arch-independent way of manipulating
vma->vm_page_prot, but I'm not immediately finding it.
Hi,

vm_get_page_prot() will probably do the work.

I will send you patch that fix it,
but first i am waiting for Andrea and Chris to say they are happy with small changes that i made to the api after conversation i had with them
(about checking if this api is robust enough so we wont have to change it later)

When i will get their acks, i will send you patch against this togather with the api (until then it is ok to just leave it only for x86)

changes are:
1) limiting the number of memory regions registered per file descriptor - so while (1){ (ioctl(KSM_REGISTER_MEMORY_REGION()) ) wont omm the host

2) checking if memory is overlap in registration (more effective to ignore such cases)

3) allow removing specific memoy regions inside fd.

Thanks.


An alternative (and quite inferior) "fix" would be to disable ksm on
architectures which don't implement _PAGE_RW. That's most of them.


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