Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 14 Dec 2016 19:00:09 +0000 (UTC)
From:      Mark Johnston <markj@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r310084 - head/sys/x86/x86
Message-ID:  <201612141900.uBEJ090i062344@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: markj
Date: Wed Dec 14 19:00:08 2016
New Revision: 310084
URL: https://svnweb.freebsd.org/changeset/base/310084

Log:
  Don't run the MCA record refill task during boot.
  
  The MCA taskqueue is not initialized until some time after CMCIs are
  enabled on the BSP.
  
  Reviewed by:	cem, jhb
  MFC after:	1 week
  Sponsored by:	Dell EMC Isilon
  Differential Revision:	https://reviews.freebsd.org/D8783

Modified:
  head/sys/x86/x86/mca.c

Modified: head/sys/x86/x86/mca.c
==============================================================================
--- head/sys/x86/x86/mca.c	Wed Dec 14 17:28:55 2016	(r310083)
+++ head/sys/x86/x86/mca.c	Wed Dec 14 19:00:08 2016	(r310084)
@@ -508,7 +508,7 @@ mca_record_entry(enum scan_mode mode, co
 	STAILQ_INSERT_TAIL(&mca_records, rec, link);
 	mca_count++;
 	mtx_unlock_spin(&mca_lock);
-	if (mode == CMCI)
+	if (mode == CMCI && !cold)
 		taskqueue_enqueue(mca_tq, &mca_refill_task);
 }
 
@@ -714,6 +714,9 @@ mca_createtq(void *dummy)
 	mca_tq = taskqueue_create_fast("mca", M_WAITOK,
 	    taskqueue_thread_enqueue, &mca_tq);
 	taskqueue_start_threads(&mca_tq, 1, PI_SWI(SWI_TQ), "mca taskq");
+
+	/* CMCIs during boot may have claimed items from the freelist. */
+	mca_fill_freelist();
 }
 SYSINIT(mca_createtq, SI_SUB_CONFIGURE, SI_ORDER_ANY, mca_createtq, NULL);
 



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