From owner-cvs-src-old@FreeBSD.ORG Mon May 24 10:18:37 2010 Return-Path: Delivered-To: cvs-src-old@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 128E31065670 for ; Mon, 24 May 2010 10:18:37 +0000 (UTC) (envelope-from pjd@FreeBSD.org) Received: from repoman.freebsd.org (unknown [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id F229A8FC19 for ; Mon, 24 May 2010 10:18:36 +0000 (UTC) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.3/8.14.3) with ESMTP id o4OAIaO8018844 for ; Mon, 24 May 2010 10:18:36 GMT (envelope-from pjd@repoman.freebsd.org) Received: (from svn2cvs@localhost) by repoman.freebsd.org (8.14.3/8.14.3/Submit) id o4OAIapl018843 for cvs-src-old@freebsd.org; Mon, 24 May 2010 10:18:36 GMT (envelope-from pjd@repoman.freebsd.org) Message-Id: <201005241018.o4OAIapl018843@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: svn2cvs set sender to pjd@repoman.freebsd.org using -f From: Pawel Jakub Dawidek Date: Mon, 24 May 2010 10:09:36 +0000 (UTC) To: cvs-src-old@freebsd.org X-FreeBSD-CVS-Branch: RELENG_8 Subject: cvs commit: src/cddl/contrib/opensolaris/lib/libzpool/common/sys zfs_context.h src/sys/cddl/compat/opensolaris/kern opensolaris_taskq.c src/sys/cddl/compat/opensolaris/sys dnlc.h taskq.h src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs arc.c vdev_geom.c zio.c src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys ... X-BeenThere: cvs-src-old@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: **OBSOLETE** CVS commit messages for the src tree List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 24 May 2010 10:18:37 -0000 pjd 2010-05-24 10:09:36 UTC FreeBSD src repository Modified files: (Branch: RELENG_8) cddl/contrib/opensolaris/lib/libzpool/common/sys zfs_context.h sys/cddl/compat/opensolaris/kern opensolaris_taskq.c sys/cddl/compat/opensolaris/sys dnlc.h sys/cddl/contrib/opensolaris/uts/common/fs/zfs arc.c vdev_geom.c zio.c sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys zio.h sys/kern vfs_subr.c sys/modules/zfs Makefile sys/sys eventhandler.h Added files: (Branch: RELENG_8) sys/cddl/compat/opensolaris/sys taskq.h Log: SVN rev 208487 on 2010-05-24 10:09:36Z by pjd MFC r207920,r207934,r207936,r207937,r207970,r208142,r208147,r208148,r208166, r208454,r208455,r208458: r207920: Back out r205134. It is not stable. r207934: Add missing new line characters to the warnings. r207936: Eventhough r203504 eliminates taste traffic provoked by vdev_geom.c, ZFS still like to open all vdevs, close them and open them again, which in turn provokes taste traffic anyway. I don't know of any clean way to fix it, so do it the hard way - if we can't open provider for writing just retry 5 times with 0.5 pauses. This should elimitate accidental races caused by other classes tasting providers created on top of our vdevs. Reported by: James R. Van Artsdalen Reported by: Yuri Pankov r207937: I added vfs_lowvnodes event, but it was only used for a short while and now it is totally unused. Remove it. r207970: When there is no memory or KVA, try to help by reclaiming some vnodes. This helps with 'kmem_map too small' panics. No objections from: kib Tested by: Alexander V. Ribchansky r208142: The whole point of having dedicated worker thread for each leaf VDEV was to avoid calling zio_interrupt() from geom_up thread context. It turns out that when provider is forcibly removed from the system and we kill worker thread there can still be some ZIOs pending. To complete pending ZIOs when there is no worker thread anymore we still have to call zio_interrupt() from geom_up context. To avoid this race just remove use of worker threads altogether. This should be more or less fine, because I also thought that zio_interrupt() does more work, but it only makes small UMA allocation with M_WAITOK. It also saves one context switch per I/O request. PR: kern/145339 Reported by: Alex Bakhtin r208147: Add task structure to zio and use it instead of allocating one. This eliminates the only place where we can sleep when calling zio_interrupt(). As a side-effect this can actually improve performance a little as we allocate one less thing for every I/O. Prodded by: kib r208148: Allow to configure UMA usage for ZIO data via loader and turn it on by default for amd64. On i386 I saw performance degradation when UMA was used, but for amd64 it should help. r208166: Fix userland build by making io_task available only for the kernel and by providing taskq_dispatch_safe() macro. r208454: Remove ZIO_USE_UMA from arc.c as well. r208455: ZIO_USE_UMA is no longer used. r208458: Create UMA zones unconditionally. Revision Changes Path 1.14.2.2 +3 -0 src/cddl/contrib/opensolaris/lib/libzpool/common/sys/zfs_context.h 1.1.2.4 +29 -6 src/sys/cddl/compat/opensolaris/kern/opensolaris_taskq.c 1.4.2.2 +1 -1 src/sys/cddl/compat/opensolaris/sys/dnlc.h 1.3.2.3 +44 -0 src/sys/cddl/compat/opensolaris/sys/taskq.h (new) 1.22.2.5 +3 -14 src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/arc.c 1.3.2.2 +5 -0 src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zio.h 1.8.2.5 +33 -107 src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/vdev_geom.c 1.8.2.2 +31 -32 src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zio.c 1.767.2.10 +13 -1 src/sys/kern/vfs_subr.c 1.19.2.4 +0 -3 src/sys/modules/zfs/Makefile 1.45.2.3 +0 -4 src/sys/sys/eventhandler.h