From owner-cvs-src@FreeBSD.ORG Sun Aug 7 18:51:07 2005 Return-Path: X-Original-To: cvs-src@FreeBSD.org 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 2889E16A420; Sun, 7 Aug 2005 18:51:07 +0000 (GMT) (envelope-from marcel@xcllnt.net) Received: from ns1.xcllnt.net (209-128-86-226.bayarea.net [209.128.86.226]) by mx1.FreeBSD.org (Postfix) with ESMTP id 1489443D46; Sun, 7 Aug 2005 18:51:03 +0000 (GMT) (envelope-from marcel@xcllnt.net) Received: from [192.168.4.250] (dhcp50.pn.xcllnt.net [192.168.4.250]) by ns1.xcllnt.net (8.13.4/8.13.4) with ESMTP id j77Ioo3I038262; Sun, 7 Aug 2005 11:50:54 -0700 (PDT) (envelope-from marcel@xcllnt.net) In-Reply-To: <200508070941.33821.dfr@nlsystems.com> References: <200508062028.j76KSJtM019032@repoman.freebsd.org> <200508070941.33821.dfr@nlsystems.com> Mime-Version: 1.0 (Apple Message framework v733) Content-Type: text/plain; charset=US-ASCII; delsp=yes; format=flowed Message-Id: Content-Transfer-Encoding: 7bit From: Marcel Moolenaar Date: Sun, 7 Aug 2005 11:50:49 -0700 To: Doug Rabson X-Mailer: Apple Mail (2.733) Cc: cvs-src@FreeBSD.org, Marcel Moolenaar , cvs-all@FreeBSD.org, src-committers@FreeBSD.org Subject: Re: cvs commit: src/sys/ia64/ia64 exception.S interrupt.c machdep.c mp_machdep.c pmap.c trap.c vm_machdep.c src/sys/ia64/include proc.h smp.h X-BeenThere: cvs-src@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: CVS commit messages for the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 07 Aug 2005 18:51:07 -0000 On Aug 7, 2005, at 1:41 AM, Doug Rabson wrote: > Excellent! When trying to think about per-cpu VHPT in the past, I > could > never quite see how to handle the collision chains sanely. The > solution > described below seems ideal. I'm quite happy with it as well. The hash bucket head structure allows for the collection of per-bucket statistics. I already have a length field that holds the length of the chain (or number of PTEs in the bucket). What I'd like to do is get a better sense of how critical it is if there's a VHPT miss. Maybe we can implement the code that handles it in C, use locks and open the doors to having various different hash bucket implementations to play with. I still have my concerns about the assembly in exception.S and the lack of locking therein. This in the context of having spurious core dumps. In parallel, I'm measuring the effect on performance of bumping up the page size to 16K and 32K. I suspect the cost of a VHPT miss is mostly due to us needing to find the PTE in the hash bucket by walking a linked list. Keeping the average length of the list small may improve our overall performance. Lots to learn... -- Marcel Moolenaar USPA: A-39004 marcel@xcllnt.net