From owner-svn-src-user@FreeBSD.ORG Tue Mar 12 06:14:32 2013 Return-Path: Delivered-To: svn-src-user@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by hub.freebsd.org (Postfix) with ESMTP id C37D8AB7; Tue, 12 Mar 2013 06:14:32 +0000 (UTC) (envelope-from alc@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) by mx1.freebsd.org (Postfix) with ESMTP id AC6D3A08; Tue, 12 Mar 2013 06:14:32 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.6/8.14.6) with ESMTP id r2C6EWH9058966; Tue, 12 Mar 2013 06:14:32 GMT (envelope-from alc@svn.freebsd.org) Received: (from alc@localhost) by svn.freebsd.org (8.14.6/8.14.5/Submit) id r2C6EWve058965; Tue, 12 Mar 2013 06:14:32 GMT (envelope-from alc@svn.freebsd.org) Message-Id: <201303120614.r2C6EWve058965@svn.freebsd.org> From: Alan Cox Date: Tue, 12 Mar 2013 06:14:32 +0000 (UTC) To: src-committers@freebsd.org, svn-src-user@freebsd.org Subject: svn commit: r248185 - user/attilio/vmcontention/sys/vm X-SVN-Group: user MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-src-user@freebsd.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "SVN commit messages for the experimental " user" src tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 12 Mar 2013 06:14:32 -0000 Author: alc Date: Tue Mar 12 06:14:31 2013 New Revision: 248185 URL: http://svnweb.freebsd.org/changeset/base/248185 Log: When transferring the page from one object to another, don't insert the page into its new object until the page's pindex has been updated. Otherwise, one code path within vm_radix_insert() may use the wrong pindex value. Sponsored by: EMC / Isilon Storage Division Modified: user/attilio/vmcontention/sys/vm/vm_page.c Modified: user/attilio/vmcontention/sys/vm/vm_page.c ============================================================================== --- user/attilio/vmcontention/sys/vm/vm_page.c Tue Mar 12 04:37:04 2013 (r248184) +++ user/attilio/vmcontention/sys/vm/vm_page.c Tue Mar 12 06:14:31 2013 (r248185) @@ -1110,10 +1110,10 @@ vm_page_cache_transfer(vm_object_t orig_ if ((m->pindex - offidxstart) >= new_object->size) break; vm_radix_remove(&orig_object->cache, m->pindex); - vm_radix_insert(&new_object->cache, m->pindex - offidxstart, m); /* Update the page's object and offset. */ m->object = new_object; m->pindex -= offidxstart; + vm_radix_insert(&new_object->cache, m->pindex, m); } mtx_unlock(&vm_page_queue_free_mtx); }