Author: avg
Date: Mon Feb 17 13:33:42 2014
New Revision: 262053
URL: http://svnweb.freebsd.org/changeset/base/262053

Log:
  MFC r256148: Initialize and free the DTrace taskqueue in the dtrace
  module load/unload handlers

Modified:
  stable/9/sys/cddl/contrib/opensolaris/uts/common/dtrace/dtrace.c
  stable/9/sys/cddl/dev/dtrace/dtrace_load.c
  stable/9/sys/cddl/dev/dtrace/dtrace_unload.c
Directory Properties:
  stable/9/sys/   (props changed)
  stable/9/sys/cddl/contrib/opensolaris/   (props changed)

Modified: stable/9/sys/cddl/contrib/opensolaris/uts/common/dtrace/dtrace.c
==============================================================================
--- stable/9/sys/cddl/contrib/opensolaris/uts/common/dtrace/dtrace.c    Mon Feb 
17 13:29:48 2014        (r262052)
+++ stable/9/sys/cddl/contrib/opensolaris/uts/common/dtrace/dtrace.c    Mon Feb 
17 13:33:42 2014        (r262053)
@@ -15754,10 +15754,6 @@ dtrace_open(struct cdev *dev, int oflags
 #else
        devfs_set_cdevpriv(state, dtrace_dtr);
 #endif
-       /* This code actually belongs in dtrace_attach() */
-       if (dtrace_opens == 1)
-               dtrace_taskq = taskq_create("dtrace_taskq", 1, maxclsyspri,
-                   1, INT_MAX, 0);
 #endif
 
        mutex_exit(&cpu_lock);
@@ -15842,11 +15838,6 @@ dtrace_close(struct cdev *dev, int flags
                (void) kdi_dtrace_set(KDI_DTSET_DTRACE_DEACTIVATE);
 #else
        --dtrace_opens;
-       /* This code actually belongs in dtrace_detach() */
-       if ((dtrace_opens == 0) && (dtrace_taskq != NULL)) {
-               taskq_destroy(dtrace_taskq);
-               dtrace_taskq = NULL;
-       }
 #endif
 
        mutex_exit(&dtrace_lock);

Modified: stable/9/sys/cddl/dev/dtrace/dtrace_load.c
==============================================================================
--- stable/9/sys/cddl/dev/dtrace/dtrace_load.c  Mon Feb 17 13:29:48 2014        
(r262052)
+++ stable/9/sys/cddl/dev/dtrace/dtrace_load.c  Mon Feb 17 13:33:42 2014        
(r262053)
@@ -56,6 +56,8 @@ dtrace_load(void *dummy)
        /* Hang our hook for exceptions. */
        dtrace_invop_init();
 
+       dtrace_taskq = taskq_create("dtrace_taskq", 1, maxclsyspri, 0, 0, 0);
+
        /* Register callbacks for linker file load and unload events. */
        dtrace_kld_load_tag = EVENTHANDLER_REGISTER(kld_load,
            dtrace_kld_load, NULL, EVENTHANDLER_PRI_ANY);

Modified: stable/9/sys/cddl/dev/dtrace/dtrace_unload.c
==============================================================================
--- stable/9/sys/cddl/dev/dtrace/dtrace_unload.c        Mon Feb 17 13:29:48 
2014        (r262052)
+++ stable/9/sys/cddl/dev/dtrace/dtrace_unload.c        Mon Feb 17 13:33:42 
2014        (r262053)
@@ -127,6 +127,8 @@ dtrace_unload()
        mutex_destroy(&dtrace_errlock);
 #endif
 
+       taskq_destroy(dtrace_taskq);
+
        /* Reset our hook for exceptions. */
        dtrace_invop_uninit();
 
_______________________________________________
svn-src-stable-9@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-stable-9
To unsubscribe, send any mail to "svn-src-stable-9-unsubscr...@freebsd.org"

Reply via email to