Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 5 Feb 2006 12:38:38 +0100
From:      Marius Strobl <marius@alchemy.franken.de>
To:        Andrew Belashov <bel@orel.ru>
Cc:        freebsd-sparc64@freebsd.org
Subject:   Re: some questions
Message-ID:  <20060205123838.A5136@newtrinity.zeist.de>
In-Reply-To: <43E48DC2.3050904@orel.ru>; from bel@orel.ru on Sat, Feb 04, 2006 at 02:19:30PM %2B0300
References:  <43E3B35B.90409@unixfreak.org> <1138996676.26027.16.camel@lmail.bathnetworks.co.uk> <oqpsm456zc.fsf@castrovalva.Ivy.NET> <43E48DC2.3050904@orel.ru>

next in thread | previous in thread | raw e-mail | index | archive | help

--zYM0uCDKw75PZbzx
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline

On Sat, Feb 04, 2006 at 02:19:30PM +0300, Andrew Belashov wrote:
> 
> My system have two hacks, related to following problems:
> 
> 1. SMP kernel panic: ipi_send: couldn't send ipi
> <http://www.freebsd.org/cgi/query-pr.cgi?pr=sparc64/66314>;
> (src/sys/sparc64/include/smp.h v1.17 does not resolve problem,
> I bump IPI_RETRIES to high value).
> 

Could you please try whether the attached patch fixes this
(using the original value for IPI_RETRIES)?

Marius


-- 
This mail was scanned by AntiVir Milter.
This product is licensed for non-commercial use.
See www.antivir.de for details.
--zYM0uCDKw75PZbzx
Content-Type: text/plain; charset=us-ascii
Content-Disposition: attachment; filename="mp_mackdep.c.diff"

Index: mp_machdep.c
===================================================================
RCS file: /mnt/futile/usr/data/bsd/cvs/fbsd/src/sys/sparc64/sparc64/mp_machdep.c,v
retrieving revision 1.30
diff -u -r1.30 mp_machdep.c
--- mp_machdep.c	3 Nov 2005 21:08:20 -0000	1.30
+++ mp_machdep.c	5 Feb 2006 11:04:21 -0000
@@ -87,6 +87,7 @@
 #include <machine/tick.h>
 #include <machine/tlb.h>
 #include <machine/tte.h>
+#include <machine/ver.h>
 
 static ih_func_t cpu_ipi_ast;
 static ih_func_t cpu_ipi_stop;
@@ -438,6 +439,10 @@
 		stxa(AA_SDB_INTR_D1, ASI_SDB_INTR_W, d1);
 		stxa(AA_SDB_INTR_D2, ASI_SDB_INTR_W, d2);
 		stxa(AA_INTR_SEND | (mid << 14), ASI_SDB_INTR_W, 0);
+		if (cpu_impl < CPU_IMPL_ULTRASPARCIII) {
+			membar(Sync);
+			(void)ldxa(0x20, ASI_SDB_INTR_R);
+		}
 		membar(Sync);
 		while (ldxa(0, ASI_INTR_DISPATCH_STATUS) & IDR_BUSY)
 			;


--zYM0uCDKw75PZbzx--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20060205123838.A5136>