From owner-freebsd-hackers@FreeBSD.ORG Thu May 15 10:20:36 2008 Return-Path: Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 746131065671 for ; Thu, 15 May 2008 10:20:36 +0000 (UTC) (envelope-from teemu@rinta-aho.org) Received: from smtp.piuha.net (p130.piuha.net [IPv6:2001:14b8:400::130]) by mx1.freebsd.org (Postfix) with ESMTP id 17C478FC30 for ; Thu, 15 May 2008 10:20:35 +0000 (UTC) (envelope-from teemu@rinta-aho.org) Received: from smtp.piuha.net (localhost [127.0.0.1]) by smtp.piuha.net (Postfix) with ESMTP id 2BF2C1987F3 for ; Thu, 15 May 2008 13:20:33 +0300 (EEST) Received: from [127.0.0.1] (unknown [IPv6:2001:14b8:400::130]) by smtp.piuha.net (Postfix) with ESMTP id EC97B198665 for ; Thu, 15 May 2008 13:20:32 +0300 (EEST) Message-ID: <482C0E70.4020305@rinta-aho.org> Date: Thu, 15 May 2008 13:20:32 +0300 From: Teemu Rinta-aho User-Agent: Thunderbird 2.0.0.14 (X11/20080505) MIME-Version: 1.0 To: freebsd-hackers@freebsd.org X-Enigmail-Version: 0.95.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Virus-Scanned: ClamAV using ClamSMTP Subject: copy-on-write anonymous memory? X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 15 May 2008 10:20:36 -0000 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. Best regards, Teemu Rinta-aho