Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 25 Nov 2017 22:03:25 +0000 (UTC)
From:      Nathan Whitehorn <nwhitehorn@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r326207 - head/sys/powerpc/aim
Message-ID:  <201711252203.vAPM3P31060047@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: nwhitehorn
Date: Sat Nov 25 22:03:25 2017
New Revision: 326207
URL: https://svnweb.freebsd.org/changeset/base/326207

Log:
  Preserve the LPCR on new-ish (POWER7 and POWER8) CPUs, preventing exceptions
  and such from ending on the wrong CPU on SMP systems. It would be good to
  have this be more generic somehow as POWER9s appear, but PPC does not
  have features bits, unfortunately.
  
  MFC after:	3 weeks

Modified:
  head/sys/powerpc/aim/mp_cpudep.c

Modified: head/sys/powerpc/aim/mp_cpudep.c
==============================================================================
--- head/sys/powerpc/aim/mp_cpudep.c	Sat Nov 25 22:01:55 2017	(r326206)
+++ head/sys/powerpc/aim/mp_cpudep.c	Sat Nov 25 22:03:25 2017	(r326207)
@@ -374,6 +374,13 @@ cpudep_ap_setup()
 		reg = mpc74xx_l1i_enable();
 
 		break;
+	case IBMPOWER7:
+	case IBMPOWER7PLUS:
+	case IBMPOWER8:
+	case IBMPOWER8E:
+		if (mfmsr() & PSL_HV)
+			mtspr(SPR_LPCR, mfspr(SPR_LPCR) | LPCR_LPES);
+		break;
 	default:
 #ifdef __powerpc64__
 		if (!(mfmsr() & PSL_HV)) /* Rely on HV to have set things up */



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