From owner-cvs-src-old@FreeBSD.ORG Thu Mar 19 14:14:38 2009 Return-Path: Delivered-To: cvs-src-old@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 1F2DE1065689 for ; Thu, 19 Mar 2009 14:14:38 +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 E3BE08FC2D for ; Thu, 19 Mar 2009 14:14:37 +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 n2JEEb9J067125 for ; Thu, 19 Mar 2009 14:14:37 GMT (envelope-from marius@repoman.freebsd.org) Received: (from svn2cvs@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id n2JEEbtc067124 for cvs-src-old@freebsd.org; Thu, 19 Mar 2009 14:14:37 GMT (envelope-from marius@repoman.freebsd.org) Message-Id: <200903191414.n2JEEbtc067124@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: svn2cvs set sender to marius@repoman.freebsd.org using -f From: Marius Strobl Date: Thu, 19 Mar 2009 14:11:03 +0000 (UTC) To: cvs-src-old@freebsd.org X-FreeBSD-CVS-Branch: RELENG_7 Subject: cvs commit: src/sys/boot/sparc64/loader main.c src/sys/sparc64/include vmparam.h src/sys/sparc64/sparc64 exception.S mp_exception.S pmap.c support.S swtch.S tlb.c src/sys/sun4v/include vmparam.h X-BeenThere: cvs-src-old@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: **OBSOLETE** CVS commit messages for the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 19 Mar 2009 14:14:38 -0000 marius 2009-03-19 14:11:03 UTC FreeBSD src repository Modified files: (Branch: RELENG_7) sys/boot/sparc64/loader main.c sys/sparc64/include vmparam.h sys/sparc64/sparc64 exception.S mp_exception.S pmap.c support.S swtch.S tlb.c sys/sun4v/include vmparam.h Log: SVN rev 190051 on 2009-03-19 14:11:03Z by marius MFC: r182877, r188455, r188477 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 in the kernel and the newly introduced PROMBASE for the loader as the addresses to FLUSH as these are 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.32.2.5 +4 -3 src/sys/boot/sparc64/loader/main.c 1.18.2.3 +1 -1 src/sys/sparc64/include/vmparam.h 1.75.2.4 +12 -1 src/sys/sparc64/sparc64/exception.S 1.13.2.2 +7 -5 src/sys/sparc64/sparc64/mp_exception.S 1.166.2.7 +2 -2 src/sys/sparc64/sparc64/pmap.c 1.32.2.2 +2 -1 src/sys/sparc64/sparc64/support.S 1.34.2.2 +2 -1 src/sys/sparc64/sparc64/swtch.S 1.8.20.3 +4 -3 src/sys/sparc64/sparc64/tlb.c 1.5.2.2 +1 -1 src/sys/sun4v/include/vmparam.h