Messages in this thread | | | Date | Wed, 6 May 2009 17:26:55 +0100 (BST) | From | Hugh Dickins <> | Subject | Re: [PATCH 3/6] ksm: change the KSM_REMOVE_MEMORY_REGION ioctl. |
| |
On Wed, 6 May 2009, Izik Eidus wrote: > > We can first start with this ioctl interface, later when we add swapping to > the pages, we can have madvice, and still (probably easily) support the ioctls > by just calling from inside ksm the madvice functions for that specific > address) > > I want to see ksm use madvice, but i believe it require some more changes to > mm/*.c, so it probably better to start with merging it when it doesnt touch > alot of stuff outisde ksm.c, and then to add swapping and after that add > madvice support (when the pages are swappable, everyone can use it) > > What you think about that?
I think it's the wrong order to follow.
The /dev/ksm interface is fine for your use while it's out of tree, but we want to get the user interface right when bringing it into mainline. I recall Chris being very clear on that too.
Changing from /dev/ksm to madvise() is not a lot of work, it's mainly a matter of deleting code, and tidying up interfaces which would need more work anyway (I haven't commented on your curious -EPERMs yet!).
It doesn't involve whether you've enabled swapping or not - let's forget the CAP_IPC_LOCK idea, and delegate that issue to limitation via sysfs, along with the ability to limit wild overuse of the feature - permissions on a sysfs node or something else?
It does nudge towards making some decisions which need to be made anyway - that tends to be what a correct interface forces upon you. Like the issue of whether to go on covering unmapped areas or not - though possibly we could put off that decision, if it's doc'ed for now.
And if it only covers mapped areas, then there will need to be a VM_flag for it, mainly so mm can call into ksm.c when it's unmapped; but I don't see it sinking hooks deeply into mm/*.c.
Hugh
| |