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