From owner-svn-src-all@FreeBSD.ORG Thu Nov 18 20:46:29 2010 Return-Path: Delivered-To: svn-src-all@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 45EA9106564A; Thu, 18 Nov 2010 20:46:29 +0000 (UTC) (envelope-from kib@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 388B68FC12; Thu, 18 Nov 2010 20:46:29 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id oAIKkTFx044374; Thu, 18 Nov 2010 20:46:29 GMT (envelope-from kib@svn.freebsd.org) Received: (from kib@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id oAIKkTUe044371; Thu, 18 Nov 2010 20:46:29 GMT (envelope-from kib@svn.freebsd.org) Message-Id: <201011182046.oAIKkTUe044371@svn.freebsd.org> From: Konstantin Belousov Date: Thu, 18 Nov 2010 20:46:29 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org X-SVN-Group: head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r215469 - head/sys/vm X-BeenThere: svn-src-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the entire src tree \(except for " user" and " projects" \)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 18 Nov 2010 20:46:29 -0000 Author: kib Date: Thu Nov 18 20:46:28 2010 New Revision: 215469 URL: http://svn.freebsd.org/changeset/base/215469 Log: Only increment object generation count when inserting the page into object page list. The only use of object generation count now is a restart of the scan in vm_object_page_clean(), which makes sense to do on the page addition. Page removals do not affect the dirtiness of the object, as well as manipulations with the shadow chain. Suggested and reviewed by: alc MFC after: 1 week Modified: head/sys/vm/vm_object.c head/sys/vm/vm_page.c Modified: head/sys/vm/vm_object.c ============================================================================== --- head/sys/vm/vm_object.c Thu Nov 18 19:28:45 2010 (r215468) +++ head/sys/vm/vm_object.c Thu Nov 18 20:46:28 2010 (r215469) @@ -600,7 +600,6 @@ doterm: VM_OBJECT_LOCK(temp); LIST_REMOVE(object, shadow_list); temp->shadow_count--; - temp->generation++; VM_OBJECT_UNLOCK(temp); object->backing_object = NULL; } @@ -1192,7 +1191,6 @@ vm_object_shadow( VM_OBJECT_LOCK(source); LIST_INSERT_HEAD(&source->shadow_head, result, shadow_list); source->shadow_count++; - source->generation++; #if VM_NRESERVLEVEL > 0 result->flags |= source->flags & OBJ_COLORED; result->pg_color = (source->pg_color + OFF_TO_IDX(*offset)) & @@ -1260,7 +1258,6 @@ vm_object_split(vm_map_entry_t entry) LIST_INSERT_HEAD(&source->shadow_head, new_object, shadow_list); source->shadow_count++; - source->generation++; vm_object_reference_locked(source); /* for new_object */ vm_object_clear_flag(source, OBJ_ONEMAPPING); VM_OBJECT_UNLOCK(source); @@ -1651,7 +1648,6 @@ vm_object_collapse(vm_object_t object) */ LIST_REMOVE(object, shadow_list); backing_object->shadow_count--; - backing_object->generation++; if (backing_object->backing_object) { VM_OBJECT_LOCK(backing_object->backing_object); LIST_REMOVE(backing_object, shadow_list); @@ -1661,7 +1657,6 @@ vm_object_collapse(vm_object_t object) /* * The shadow_count has not changed. */ - backing_object->backing_object->generation++; VM_OBJECT_UNLOCK(backing_object->backing_object); } object->backing_object = backing_object->backing_object; @@ -1703,7 +1698,6 @@ vm_object_collapse(vm_object_t object) */ LIST_REMOVE(object, shadow_list); backing_object->shadow_count--; - backing_object->generation++; new_backing_object = backing_object->backing_object; if ((object->backing_object = new_backing_object) != NULL) { @@ -1714,7 +1708,6 @@ vm_object_collapse(vm_object_t object) shadow_list ); new_backing_object->shadow_count++; - new_backing_object->generation++; vm_object_reference_locked(new_backing_object); VM_OBJECT_UNLOCK(new_backing_object); object->backing_object_offset += Modified: head/sys/vm/vm_page.c ============================================================================== --- head/sys/vm/vm_page.c Thu Nov 18 19:28:45 2010 (r215468) +++ head/sys/vm/vm_page.c Thu Nov 18 20:46:28 2010 (r215469) @@ -846,7 +846,6 @@ vm_page_remove(vm_page_t m) * And show that the object has one fewer resident page. */ object->resident_page_count--; - object->generation++; /* * The vnode may now be recycled. */ @@ -1983,7 +1982,6 @@ vm_page_cache(vm_page_t m) object->root = root; TAILQ_REMOVE(&object->memq, m, listq); object->resident_page_count--; - object->generation++; /* * Restore the default memory attribute to the page. @@ -2395,7 +2393,6 @@ vm_page_set_invalid(vm_page_t m, int bas ("vm_page_set_invalid: page %p is mapped", m)); m->valid &= ~bits; m->dirty &= ~bits; - m->object->generation++; } /*