Kostik Belousov wrote: > On Thu, May 15, 2008 at 01:20:32PM +0300, Teemu Rinta-aho wrote: >> Hi all, >> >> is it possible to create a memory object that represents >> anonymous memory pages *and* is copy-on-write? >> >> I have this code in a kernel module: >> >> object = vm_object_allocate(OBJT_DEFAULT, 1); >> >> result = vm_map_find(vmmap_proc, >> object, >> 0, >> &addr, >> len, >> TRUE, >> VM_PROT_ALL, >> VM_PROT_ALL, >> MAP_COPY_ON_WRITE); >> >> Then I pass the addr to the user space, but when >> I write to the addr, I see no shadow objects created, >> i.e. the changes are written to the original memory >> pages no matter if I have the map entry set as >> copy-on-write or not... I am assuming a write fault would >> create a new page and hang it to a shadow object thus >> leaving the original memory untouched. >> >> I'd appreciate any kind of help here. > > I cannot get a complete handle on your problem without full code, but > I guess that you have only one reference to the backing object through > the vm map entry. If this is the case, then the shadow copying actually > does not make sense since no other users of the object need it. > > Look at the vm_object_shadow(), check at the start of the function.
Hi Kostik, thanks, that was a good point. Adding a reference helps! :-) Thanks for your quick reply, Teemu _______________________________________________ freebsd-hackers@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-hackers To unsubscribe, send any mail to "[EMAIL PROTECTED]"