From owner-svn-src-stable@FreeBSD.ORG Wed Jan 6 10:21:18 2010 Return-Path: Delivered-To: svn-src-stable@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id E734510656A3; Wed, 6 Jan 2010 10:21:17 +0000 (UTC) (envelope-from netchild@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id AB97B8FC29; Wed, 6 Jan 2010 10:21:17 +0000 (UTC) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id o06ALHEf092586; Wed, 6 Jan 2010 10:21:17 GMT (envelope-from netchild@svn.freebsd.org) Received: (from netchild@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id o06ALHKS092584; Wed, 6 Jan 2010 10:21:17 GMT (envelope-from netchild@svn.freebsd.org) Message-Id: <201001061021.o06ALHKS092584@svn.freebsd.org> From: Alexander Leidinger Date: Wed, 6 Jan 2010 10:21:17 +0000 (UTC) To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-stable@freebsd.org, svn-src-stable-7@freebsd.org X-SVN-Group: stable-7 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r201636 - in stable/7/sys/cddl: compat/opensolaris/sys contrib/opensolaris/uts/common/fs/zfs X-BeenThere: svn-src-stable@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: SVN commit messages for all the -stable branches of the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 06 Jan 2010 10:21:18 -0000 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 -#include #include #include_next +#include #include 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 #include #include +#include +#include +#include #include #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);