From owner-freebsd-current@FreeBSD.ORG Sun Jun 3 00:30:41 2007 Return-Path: X-Original-To: current@freeBSD.org Delivered-To: freebsd-current@FreeBSD.ORG Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 9F1EF16A469 for ; Sun, 3 Jun 2007 00:30:41 +0000 (UTC) (envelope-from nate@root.org) Received: from root.org (root.org [67.118.192.226]) by mx1.freebsd.org (Postfix) with ESMTP id 6ABAC13C46A for ; Sun, 3 Jun 2007 00:30:41 +0000 (UTC) (envelope-from nate@root.org) Received: (qmail 52420 invoked from network); 3 Jun 2007 00:30:42 -0000 Received: from udp166215uds.hawaiiantel.net (HELO ?192.168.1.44?) (nate-mail@72.234.230.74) by root.org with ESMTPA; 3 Jun 2007 00:30:42 -0000 Message-ID: <46620B92.8020608@root.org> Date: Sat, 02 Jun 2007 17:30:10 -0700 From: Nate Lawson User-Agent: Thunderbird 2.0.0.0 (X11/20070513) MIME-Version: 1.0 To: Poul-Henning Kamp References: <47223.1180818913@critter.freebsd.dk> In-Reply-To: <47223.1180818913@critter.freebsd.dk> X-Enigmail-Version: 0.95.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Cc: takawata@freeBSD.org, Dag-Erling Sm??rgrav , current@freeBSD.org, Kris Kennaway Subject: Re: HPET vs other timers X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 03 Jun 2007 00:30:41 -0000 Poul-Henning Kamp wrote: > Nate Lawson wrote: >>> Anyone able to speculate why though? HPET only reads 32 bits from a >>> memory mapped region. No locking or other requirements. ACPI_timer >>> does multiple IO ops, which according to bde@ are much slower than >>> memory reads. > > HPET needs to do metastability mitigation and is not "just a read > from a memory mapped region". If it does, then it's not implemented yet: static u_int hpet_get_timecount(struct timecounter *tc) { struct acpi_hpet_softc *sc; sc = tc->tc_priv; return (bus_read_4(sc->mem_res, HPET_OFFSET_VALUE)); } Are you sure you're not thinking of ACPI-safe? -- Nate