svn commit: r201636 - in stable/7/sys/cddl: compat/opensolaris/sys contrib/opensolaris/uts/common/fs/zfs

Alexander Leidinger netchild at FreeBSD.org
Wed Jan 6 10:21:18 UTC 2010


Author: netchild
Date: Wed Jan  6 10:21:16 2010
New Revision: 201636
URL: http://svn.freebsd.org/changeset/base/201636

Log:
  MFC several ZFS related commits:
  
  r196456:
  ---snip---
      - Give minclsyspri and maxclsyspri real values (consulted with kmacy).
      - Honour 'pri' argument for thread_create().
  ---snip---
  
  r196457:
  ---snip---
  Set priority of vdev_geom threads and zvol threads to PRIBIO.
  ---snip---

Modified:
  stable/7/sys/cddl/compat/opensolaris/sys/mutex.h
  stable/7/sys/cddl/compat/opensolaris/sys/proc.h
  stable/7/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_geom.c
  stable/7/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zvol.c
Directory Properties:
  stable/7/sys/   (props changed)
  stable/7/sys/cddl/contrib/opensolaris/   (props changed)
  stable/7/sys/contrib/dev/acpica/   (props changed)
  stable/7/sys/contrib/pf/   (props changed)

Modified: stable/7/sys/cddl/compat/opensolaris/sys/mutex.h
==============================================================================
--- stable/7/sys/cddl/compat/opensolaris/sys/mutex.h	Wed Jan  6 09:09:30 2010	(r201635)
+++ stable/7/sys/cddl/compat/opensolaris/sys/mutex.h	Wed Jan  6 10:21:16 2010	(r201636)
@@ -32,9 +32,9 @@
 #ifdef _KERNEL
 
 #include <sys/param.h>
-#include <sys/proc.h>
 #include <sys/lock.h>
 #include_next <sys/mutex.h>
+#include <sys/proc.h>
 #include <sys/sx.h>
 
 typedef enum {

Modified: stable/7/sys/cddl/compat/opensolaris/sys/proc.h
==============================================================================
--- stable/7/sys/cddl/compat/opensolaris/sys/proc.h	Wed Jan  6 09:09:30 2010	(r201635)
+++ stable/7/sys/cddl/compat/opensolaris/sys/proc.h	Wed Jan  6 10:21:16 2010	(r201636)
@@ -34,13 +34,16 @@
 #include_next <sys/proc.h>
 #include <sys/stdint.h>
 #include <sys/smp.h>
+#include <sys/sched.h>
+#include <sys/lock.h>
+#include <sys/mutex.h>
 #include <sys/debug.h>
 
 #ifdef _KERNEL
 
 #define	CPU		curcpu
-#define	minclsyspri	0
-#define	maxclsyspri	0
+#define	minclsyspri	PRIBIO
+#define	maxclsyspri	PVM
 #define	max_ncpus	mp_ncpus
 #define	boot_max_ncpus	mp_ncpus
 
@@ -64,6 +67,7 @@ static __inline kthread_t *
 thread_create(caddr_t stk, size_t stksize, void (*proc)(void *), void *arg,
     size_t len, proc_t *pp, int state, pri_t pri)
 {
+	kthread_t *td;
 	proc_t *p;
 	int error;
 
@@ -76,7 +80,15 @@ thread_create(caddr_t stk, size_t stksiz
 
 	error = kthread_create(proc, arg, &p, 0, ZFS_KSTACK_PAGES,
 	    "solthread %p", proc);
-	return (error == 0 ? FIRST_THREAD_IN_PROC(p) : NULL);
+	if (error != 0)
+		td = NULL;
+	else {
+		td = FIRST_THREAD_IN_PROC(p);
+		thread_lock(td);
+		sched_prio(td, pri);
+		thread_unlock(td);
+	}
+	return (td);
 }
 
 #define	thread_exit()	kthread_exit(0)

Modified: stable/7/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_geom.c
==============================================================================
--- stable/7/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_geom.c	Wed Jan  6 09:09:30 2010	(r201635)
+++ stable/7/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_geom.c	Wed Jan  6 10:21:16 2010	(r201636)
@@ -194,6 +194,10 @@ vdev_geom_worker(void *arg)
 	zio_t *zio;
 	struct bio *bp;
 
+	thread_lock(curthread);
+	sched_prio(curthread, PRIBIO);
+	thread_unlock(curthread);
+
 	ctx = arg;
 	for (;;) {
 		mtx_lock(&ctx->gc_queue_mtx);

Modified: stable/7/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zvol.c
==============================================================================
--- stable/7/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zvol.c	Wed Jan  6 09:09:30 2010	(r201635)
+++ stable/7/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zvol.c	Wed Jan  6 10:21:16 2010	(r201636)
@@ -402,6 +402,10 @@ zvol_worker(void *arg)
 	zvol_state_t *zv;
 	struct bio *bp;
 
+	thread_lock(curthread);
+	sched_prio(curthread, PRIBIO);
+	thread_unlock(curthread);
+
 	zv = arg;
 	for (;;) {
 		mtx_lock(&zv->zv_queue_mtx);


More information about the svn-src-stable-7 mailing list