From owner-freebsd-hackers@FreeBSD.ORG Sun Apr 20 22:53:34 2003 Return-Path: Delivered-To: freebsd-hackers@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 5415137B401 for ; Sun, 20 Apr 2003 22:53:34 -0700 (PDT) Received: from ns1.xcllnt.net (209-128-86-226.BAYAREA.NET [209.128.86.226]) by mx1.FreeBSD.org (Postfix) with ESMTP id 1998543FA3 for ; Sun, 20 Apr 2003 22:53:33 -0700 (PDT) (envelope-from marcel@xcllnt.net) Received: from dhcp01.pn.xcllnt.net (dhcp01.pn.xcllnt.net [192.168.4.201]) by ns1.xcllnt.net (8.12.9/8.12.9) with ESMTP id h3L5rWwk088832 for ; Sun, 20 Apr 2003 22:53:32 -0700 (PDT) (envelope-from marcel@piii.pn.xcllnt.net) Received: from dhcp01.pn.xcllnt.net (localhost [127.0.0.1]) by dhcp01.pn.xcllnt.net (8.12.9/8.12.9) with ESMTP id h3L5rWqW004735 for ; Sun, 20 Apr 2003 22:53:32 -0700 (PDT) (envelope-from marcel@dhcp01.pn.xcllnt.net) Received: (from marcel@localhost) by dhcp01.pn.xcllnt.net (8.12.9/8.12.9/Submit) id h3L5rWpY004734 for freebsd-hackers@FreeBSD.org; Sun, 20 Apr 2003 22:53:32 -0700 (PDT) Date: Sun, 20 Apr 2003 22:53:32 -0700 From: Marcel Moolenaar To: freebsd-hackers@FreeBSD.org Message-ID: <20030421055332.GA4680@dhcp01.pn.xcllnt.net> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.5.3i Subject: Is pmap_kextract() allowed to fault? X-BeenThere: freebsd-hackers@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: Technical Discussions relating to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 21 Apr 2003 05:53:34 -0000 Gang, On ia64 pmap_kextract() uses the tpa instruction which given a virtual address returns the physical address based on the translation registers and cache (ie TLB). This can fault when there's currently no mapping for the virtual address. Since all other architectures have a non-faulting implementation (AFAICT), I'm a bit worried that we might get into trouble on ia64. I couldn't find anything about pmap_kextract(), so maybe anybody can enlighten me: 1. Is pmap_kextract() allowed to fault? 2. Is pmap_kextract() used often enough that using the cpu's TLB is a possible performance speedup even if there are costly faults that can sometimes happen? Note: an implementation not based on the tpa instruction would look pretty much the same as the current sparc64 implementation. Just so you know... Thanks, -- Marcel Moolenaar USPA: A-39004 marcel@xcllnt.net