From owner-freebsd-current Thu Apr 3 06:04:26 1997 Return-Path: Received: (from root@localhost) by freefall.freebsd.org (8.8.5/8.8.5) id GAA23915 for current-outgoing; Thu, 3 Apr 1997 06:04:26 -0800 (PST) Received: from life.eecs.umich.edu (pmchen@life.eecs.umich.edu [141.213.8.32]) by freefall.freebsd.org (8.8.5/8.8.5) with ESMTP id GAA23910 for ; Thu, 3 Apr 1997 06:04:21 -0800 (PST) Received: (from pmchen@localhost) by life.eecs.umich.edu (8.8.5/8.8.0) id JAA20132; Thu, 3 Apr 1997 09:03:05 -0500 (EST) Date: Thu, 3 Apr 1997 09:03:05 -0500 (EST) From: "Peter M. Chen" Message-Id: <199704031403.JAA20132@life.eecs.umich.edu> To: koshy@india.hp.com, pmchen@eecs.umich.edu Subject: Re: question on buffer cache and VMIO Cc: freebsd-current@freebsd.org Sender: owner-current@freebsd.org X-Loop: FreeBSD.org Precedence: bulk >From koshy@india.hp.com Thu Apr 3 04:01:03 1997 > >If I understood the paper correctly, Vista first copies out the protected >address range to RIO protected memory prior to allowing the application >to proceed with its changes. > >Would some form of copy-on-write scheme help to eliminate this initial >copy? Whether there would be a performance benefit from this would depend >on the relative costs of copying vs creating a set of mappings, I guess. Vista is a library that implements transactional memory on top of Rio (like RVM out of Carnegie Mellon, only 2000 times faster and 10 times smaller because of reliable memory). The initial copy is needed for transactions to implement atomicity. Copy-on-write wouldn't help because the transaction only copies the range of addresses it intends on modifying. We've actually implemented a copy-on-write scheme to ease the programming of transactions (implicit transactions), but this is really slow because of the extra mprotects and VM traps. Vista has only 5 usec overhead per transaction, so even 1 system call hurts a lot. Pete