From owner-cvs-all@FreeBSD.ORG Mon Sep 8 20:39:24 2008 Return-Path: Delivered-To: cvs-all@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 30A121065678; Mon, 8 Sep 2008 20:39:24 +0000 (UTC) (envelope-from marius@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 20D428FC16; Mon, 8 Sep 2008 20:39:24 +0000 (UTC) (envelope-from marius@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id m88KdN1u061929; Mon, 8 Sep 2008 20:39:23 GMT (envelope-from marius@repoman.freebsd.org) Received: (from svn2cvs@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id m88KdNqQ061923; Mon, 8 Sep 2008 20:39:23 GMT (envelope-from marius@repoman.freebsd.org) Message-Id: <200809082039.m88KdNqQ061923@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: svn2cvs set sender to marius@repoman.freebsd.org using -f From: Marius Strobl Date: Mon, 8 Sep 2008 20:38:48 +0000 (UTC) To: src-committers@FreeBSD.org, cvs-src@FreeBSD.org, cvs-all@FreeBSD.org X-FreeBSD-CVS-Branch: HEAD Cc: Subject: cvs commit: src/sys/boot/sparc64/loader main.c src/sys/sparc64/sparc64 exception.S mp_exception.S pmap.c support.S swtch.S tlb.c X-BeenThere: cvs-all@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: CVS commit messages for the entire tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 08 Sep 2008 20:39:24 -0000 marius 2008-09-08 20:38:48 UTC FreeBSD src repository Modified files: sys/boot/sparc64/loader main.c sys/sparc64/sparc64 exception.S mp_exception.S pmap.c support.S swtch.S tlb.c Log: SVN rev 182877 on 2008-09-08 20:38:48Z by marius USIII and beyond CPUs have stricter requirements when it comes to synchronization needed after stores to internal ASIs in order to make side-effects visible. This mainly requires the MEMBAR #Sync after such stores to be replaced with a FLUSH. We use KERNBASE as the address to FLUSH as it is guaranteed to not trap. Actually, the USII synchronization rules also already require a FLUSH in pretty much all of the cases changed. We're also hitting an additional USIII synchronization rule which requires stores to AA_IMMU_SFSR to be immediately followed by a DONE, FLUSH or RETRY. Doing so triggers a RED state exception though so leave the MEMBAR #Sync. Linux apparently also has gotten away with doing the same for quite some time now, apart from the fact that it's not clear to me why we need to clear the valid bit from the SFSR in the first place. Reviewed by: nwhitehorn Revision Changes Path 1.37 +2 -1 src/sys/boot/sparc64/loader/main.c 1.80 +12 -1 src/sys/sparc64/sparc64/exception.S 1.15 +7 -5 src/sys/sparc64/sparc64/mp_exception.S 1.176 +2 -2 src/sys/sparc64/sparc64/pmap.c 1.34 +2 -1 src/sys/sparc64/sparc64/support.S 1.36 +2 -1 src/sys/sparc64/sparc64/swtch.S 1.11 +4 -3 src/sys/sparc64/sparc64/tlb.c