From owner-p4-projects@FreeBSD.ORG Mon Sep 13 13:58:04 2010 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 194FE1065675; Mon, 13 Sep 2010 13:58:04 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id D00FA1065694 for ; Mon, 13 Sep 2010 13:58:03 +0000 (UTC) (envelope-from trasz@freebsd.org) Received: from skunkworks.freebsd.org (skunkworks.freebsd.org [IPv6:2001:4f8:fff6::2d]) by mx1.freebsd.org (Postfix) with ESMTP id BC7058FC0A for ; Mon, 13 Sep 2010 13:58:03 +0000 (UTC) Received: from skunkworks.freebsd.org (localhost [127.0.0.1]) by skunkworks.freebsd.org (8.14.4/8.14.4) with ESMTP id o8DDw3kj085755 for ; Mon, 13 Sep 2010 13:58:03 GMT (envelope-from trasz@freebsd.org) Received: (from perforce@localhost) by skunkworks.freebsd.org (8.14.4/8.14.4/Submit) id o8DDw39L085752 for perforce@freebsd.org; Mon, 13 Sep 2010 13:58:03 GMT (envelope-from trasz@freebsd.org) Date: Mon, 13 Sep 2010 13:58:03 GMT Message-Id: <201009131358.o8DDw39L085752@skunkworks.freebsd.org> X-Authentication-Warning: skunkworks.freebsd.org: perforce set sender to trasz@freebsd.org using -f From: Edward Tomasz Napierala To: Perforce Change Reviews Precedence: bulk Cc: Subject: PERFORCE change 183712 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 13 Sep 2010 13:58:04 -0000 http://p4web.freebsd.org/@@183712?ac=10 Change 183712 by trasz@trasz_victim on 2010/09/13 13:58:02 Try to fix panics I've been seeing occasionaly. Affected files ... .. //depot/projects/soc2009/trasz_limits/sys/vm/swap_pager.c#8 edit .. //depot/projects/soc2009/trasz_limits/sys/vm/vm_pageout.c#16 edit Differences ... ==== //depot/projects/soc2009/trasz_limits/sys/vm/swap_pager.c#8 (text+ko) ==== @@ -2438,6 +2438,11 @@ vm_map_entry_t cur; int count = 0; +#if 0 + /* Panics the kernel at startup. */ + KASSERT(vm_map_locked(map), ("vm_map not locked")); +#endif + for (cur = map->header.next; cur != &map->header; cur = cur->next) { vm_object_t object; ==== //depot/projects/soc2009/trasz_limits/sys/vm/vm_pageout.c#16 (text+ko) ==== @@ -1722,8 +1722,11 @@ * I want to get a better feeling on how the memory * management works. In other words, it's post-shm task. */ - size = vmspace_swap_count(vm); - rusage_set(p, RUSAGE_SWAP, IDX_TO_OFF(size)); + if (vm_map_trylock_read(&vm->vm_map)) { + size = vmspace_swap_count(vm); + vm_map_unlock_read(&vm->vm_map); + rusage_set(p, RUSAGE_SWAP, IDX_TO_OFF(size)); + } #endif vmspace_free(vm); }