Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 2 Feb 2008 00:04:36 GMT
From:      John Birrell <jb@FreeBSD.org>
To:        Perforce Change Reviews <perforce@freebsd.org>
Subject:   PERFORCE change 134611 for review
Message-ID:  <200802020004.m1204aHn022895@repoman.freebsd.org>

next in thread | raw e-mail | index | archive | help
http://perforce.freebsd.org/chv.cgi?CH=134611

Change 134611 by jb@jb_freebsd1 on 2008/02/02 00:03:45

	Is there any documentation for cloning devices on FreeBSD? :-(
	
	We don't need to allocate a cloned device number... we get told
	that.

Affected files ...

.. //depot/projects/dtrace/src/sys/cddl/dev/dtrace/dtrace_clone.c#8 edit
.. //depot/projects/dtrace/src/sys/cddl/dev/dtrace/dtrace_load.c#29 edit
.. //depot/projects/dtrace/src/sys/cddl/dev/dtrace/dtrace_unload.c#25 edit
.. //depot/projects/dtrace/src/sys/contrib/opensolaris/uts/common/dtrace/dtrace.c#29 edit
.. //depot/projects/dtrace7/src/sys/cddl/dev/dtrace/dtrace_clone.c#2 edit
.. //depot/projects/dtrace7/src/sys/cddl/dev/dtrace/dtrace_load.c#2 edit
.. //depot/projects/dtrace7/src/sys/cddl/dev/dtrace/dtrace_unload.c#2 edit
.. //depot/projects/dtrace7/src/sys/contrib/opensolaris/uts/common/dtrace/dtrace.c#4 edit

Differences ...

==== //depot/projects/dtrace/src/sys/cddl/dev/dtrace/dtrace_clone.c#8 (text+ko) ====

@@ -49,9 +49,6 @@
 	if (len == 13 && bcmp(name,"dtrace/dtrace",13) != 0)
 		return;
 
-	/* Allocate a unique minor number. */
-	u = alloc_unr(dtrace_minor);
-
 	/* Clone the device to the new minor number. */
 	if (clone_create(&dtrace_clones, &dtrace_cdevsw, &u, dev, 0) != 0)
 		/* Create the /dev/dtrace/dtraceNN entry. */

==== //depot/projects/dtrace/src/sys/cddl/dev/dtrace/dtrace_load.c#29 (text+ko) ====

@@ -98,7 +98,6 @@
 #endif
 
 	dtrace_arena = new_unrhdr(1, INT_MAX, &dtrace_unr_mtx);
-	dtrace_minor = new_unrhdr(1, INT_MAX, &dtrace_unr_mtx);
 
 	dtrace_state_cache = kmem_cache_create("dtrace_state_cache",
 	    sizeof (dtrace_dstate_percpu_t) * NCPU, DTRACE_STATE_ALIGN,

==== //depot/projects/dtrace/src/sys/cddl/dev/dtrace/dtrace_unload.c#25 (text+ko) ====

@@ -123,7 +123,6 @@
 	kmem_cache_destroy(dtrace_state_cache);
 
 	delete_unrhdr(dtrace_arena);
-	delete_unrhdr(dtrace_minor);
 
 	if (dtrace_toxrange != NULL) {
 		kmem_free(dtrace_toxrange, 0);

==== //depot/projects/dtrace/src/sys/contrib/opensolaris/uts/common/dtrace/dtrace.c#29 (text) ====

@@ -197,7 +197,6 @@
 static taskq_t		*dtrace_taskq;		/* task queue */
 #else
 static struct unrhdr	*dtrace_arena;		/* Probe ID number.     */
-static struct unrhdr	*dtrace_minor;		/* Minor number.     */
 #endif
 static dtrace_probe_t	**dtrace_probes;	/* array of all probes */
 static int		dtrace_nprobes;		/* number of probes */
@@ -14957,6 +14956,7 @@
 	/* Check if this is not a cloned device. */
 	if (minor(dev) == 0)
 		return (0);
+
 #endif
 
 	mutex_enter(&cpu_lock);
@@ -14990,6 +14990,9 @@
 	mutex_exit(&dtrace_lock);
 	mutex_exit(&cpu_lock);
 
+	/* Schedule this cloned device to be destroyed. */
+	destroy_dev_sched(dev);
+
 	return (0);
 }
 

==== //depot/projects/dtrace7/src/sys/cddl/dev/dtrace/dtrace_clone.c#2 (text+ko) ====

@@ -49,9 +49,6 @@
 	if (len == 13 && bcmp(name,"dtrace/dtrace",13) != 0)
 		return;
 
-	/* Allocate a unique minor number. */
-	u = alloc_unr(dtrace_minor);
-
 	/* Clone the device to the new minor number. */
 	if (clone_create(&dtrace_clones, &dtrace_cdevsw, &u, dev, 0) != 0)
 		/* Create the /dev/dtrace/dtraceNN entry. */

==== //depot/projects/dtrace7/src/sys/cddl/dev/dtrace/dtrace_load.c#2 (text+ko) ====

@@ -98,7 +98,6 @@
 #endif
 
 	dtrace_arena = new_unrhdr(1, INT_MAX, &dtrace_unr_mtx);
-	dtrace_minor = new_unrhdr(1, INT_MAX, &dtrace_unr_mtx);
 
 	dtrace_state_cache = kmem_cache_create("dtrace_state_cache",
 	    sizeof (dtrace_dstate_percpu_t) * NCPU, DTRACE_STATE_ALIGN,

==== //depot/projects/dtrace7/src/sys/cddl/dev/dtrace/dtrace_unload.c#2 (text+ko) ====

@@ -123,7 +123,6 @@
 	kmem_cache_destroy(dtrace_state_cache);
 
 	delete_unrhdr(dtrace_arena);
-	delete_unrhdr(dtrace_minor);
 
 	if (dtrace_toxrange != NULL) {
 		kmem_free(dtrace_toxrange, 0);

==== //depot/projects/dtrace7/src/sys/contrib/opensolaris/uts/common/dtrace/dtrace.c#4 (text) ====

@@ -197,7 +197,6 @@
 static taskq_t		*dtrace_taskq;		/* task queue */
 #else
 static struct unrhdr	*dtrace_arena;		/* Probe ID number.     */
-static struct unrhdr	*dtrace_minor;		/* Minor number.     */
 #endif
 static dtrace_probe_t	**dtrace_probes;	/* array of all probes */
 static int		dtrace_nprobes;		/* number of probes */



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