svn commit: r333983 - head/sys/kern

Mark Johnston markj at FreeBSD.org
Mon May 21 16:03:53 UTC 2018


Author: markj
Date: Mon May 21 16:03:51 2018
New Revision: 333983
URL: https://svnweb.freebsd.org/changeset/base/333983

Log:
  Don't pass a section cookie to CK for non-preemptible epoch sections.
  
  They're only useful when multiple threads may share an epoch record,
  and that can't happen with non-preemptible sections.
  
  Reviewed by:	mmacy
  Differential Revision:	https://reviews.freebsd.org/D15507

Modified:
  head/sys/kern/subr_epoch.c

Modified: head/sys/kern/subr_epoch.c
==============================================================================
--- head/sys/kern/subr_epoch.c	Mon May 21 15:06:19 2018	(r333982)
+++ head/sys/kern/subr_epoch.c	Mon May 21 16:03:51 2018	(r333983)
@@ -298,18 +298,15 @@ void
 epoch_enter(epoch_t epoch)
 {
 	ck_epoch_record_t *record;
-	ck_epoch_section_t *section;
 	struct thread *td;
 
 	MPASS(cold || epoch != NULL);
-	section = NULL;
 	td = curthread;
-	critical_enter();
-	if (__predict_true(td->td_epochnest++ == 0))
-		section = (ck_epoch_section_t*)&td->td_epoch_section;
 
+	critical_enter();
+	td->td_epochnest++;
 	record = &epoch->e_pcpu[curcpu]->eps_record.er_record;
-	ck_epoch_begin(record, section);
+	ck_epoch_begin(record, NULL);
 }
 
 void
@@ -339,16 +336,12 @@ void
 epoch_exit(epoch_t epoch)
 {
 	ck_epoch_record_t *record;
-	ck_epoch_section_t *section;
 	struct thread *td;
 
-	section = NULL;
 	td = curthread;
-	MPASS(td->td_critnest);
-	if (__predict_true(td->td_epochnest-- == 1))
-		section = (ck_epoch_section_t*)&td->td_epoch_section;
+	td->td_epochnest--;
 	record = &epoch->e_pcpu[curcpu]->eps_record.er_record;
-	ck_epoch_end(record, section);
+	ck_epoch_end(record, NULL);
 	critical_exit();
 }
 


More information about the svn-src-head mailing list