svn commit: r300889 - head/sys/sys

John Baldwin jhb at FreeBSD.org
Fri May 27 23:49:17 UTC 2016


Author: jhb
Date: Fri May 27 23:49:16 2016
New Revision: 300889
URL: https://svnweb.freebsd.org/changeset/base/300889

Log:
  Fix taskqueue groups to work with EARLY_AP_STARTUP.
  
  In the EARLY_AP_STARTUP case the APs are already running when a taskqgroup
  is created, so adjust the group at the same time it is created.
  
  Sponsored by:	Netflix

Modified:
  head/sys/sys/taskqueue.h

Modified: head/sys/sys/taskqueue.h
==============================================================================
--- head/sys/sys/taskqueue.h	Fri May 27 23:44:33 2016	(r300888)
+++ head/sys/sys/taskqueue.h	Fri May 27 23:49:16 2016	(r300889)
@@ -236,6 +236,21 @@ int	taskqgroup_adjust(struct taskqgroup 
 #define TASKQGROUP_DECLARE(name)			\
 extern struct taskqgroup *qgroup_##name
 
+#ifdef EARLY_AP_STARTUP
+#define TASKQGROUP_DEFINE(name, cnt, stride)				\
+									\
+struct taskqgroup *qgroup_##name;					\
+									\
+static void								\
+taskqgroup_define_##name(void *arg)					\
+{									\
+	qgroup_##name = taskqgroup_create(#name);			\
+	taskqgroup_adjust(qgroup_##name, (cnt), (stride));		\
+}									\
+									\
+SYSINIT(taskqgroup_##name, SI_SUB_INIT_IF, SI_ORDER_FIRST,		\
+	taskqgroup_define_##name, NULL)
+#else
 #define TASKQGROUP_DEFINE(name, cnt, stride)				\
 									\
 struct taskqgroup *qgroup_##name;					\
@@ -259,6 +274,7 @@ SYSINIT(taskqgroup_adj_##name, SI_SUB_SM
 	taskqgroup_adjust_##name, NULL);				\
 									\
 struct __hack
+#endif
 
 TASKQGROUP_DECLARE(net);
 


More information about the svn-src-all mailing list