From owner-cvs-src Fri Mar 7 22:58:20 2003 Delivered-To: cvs-src@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 174D037B401; Fri, 7 Mar 2003 22:58:19 -0800 (PST) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id BE3F843FAF; Fri, 7 Mar 2003 22:58:18 -0800 (PST) (envelope-from ken@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.12.6/8.12.6) with ESMTP id h286wI0U036497; Fri, 7 Mar 2003 22:58:18 -0800 (PST) (envelope-from ken@repoman.freebsd.org) Received: (from ken@localhost) by repoman.freebsd.org (8.12.6/8.12.6/Submit) id h286wIPa036496; Fri, 7 Mar 2003 22:58:18 -0800 (PST) Message-Id: <200303080658.h286wIPa036496@repoman.freebsd.org> From: "Kenneth D. Merry" Date: Fri, 7 Mar 2003 22:58:18 -0800 (PST) To: src-committers@FreeBSD.org, cvs-src@FreeBSD.org, cvs-all@FreeBSD.org Subject: cvs commit: src/sys/kern kern_subr.c src/sys/vm vm_fault.c X-FreeBSD-CVS-Branch: HEAD Sender: owner-cvs-src@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.ORG ken 2003/03/07 22:58:18 PST FreeBSD src repository Modified files: sys/kern kern_subr.c sys/vm vm_fault.c Log: Zero copy send and receive fixes: - On receive, vm_map_lookup() needs to trigger the creation of a shadow object. To make that happen, call vm_map_lookup() with PROT_WRITE instead of PROT_READ in vm_pgmoveco(). - On send, a shadow object will be created by the vm_map_lookup() in vm_fault(), but vm_page_cowfault() will delete the original page from the backing object rather than simply letting the legacy COW mechanism take over. In other words, the new page should be added to the shadow object rather than replacing the old page in the backing object. (i.e. vm_page_cowfault() should not be called in this case.) We accomplish this by making sure fs.object == fs.first_object before calling vm_page_cowfault() in vm_fault(). Submitted by: gallatin, alc Tested by: ken Revision Changes Path 1.72 +1 -1 src/sys/kern/kern_subr.c 1.163 +9 -2 src/sys/vm/vm_fault.c To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe cvs-src" in the body of the message