Date: Wed, 6 Jan 2010 08:18:49 +0000 (UTC) From: Alexander Leidinger <netchild@FreeBSD.org> To: cvs-src-old@freebsd.org Subject: cvs commit: src/sys/cddl/compat/opensolaris/kern opensolaris_kobj.c opensolaris_taskq.c src/sys/cddl/compat/opensolaris/sys taskq.h taskq_impl.h vnode.h src/sys/cddl/contrib/opensolaris/common/nvpair nvpair.c src/sys/cddl/contrib/opensolaris/uts/common/fs gfs.c vnode.c src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs ... Message-ID: <201001060819.o068JWEt025945@repoman.freebsd.org>
next in thread | raw e-mail | index | archive | help
netchild 2010-01-06 08:18:49 UTC FreeBSD src repository Modified files: (Branch: RELENG_7) sys/cddl/compat/opensolaris/kern opensolaris_kobj.c sys/cddl/compat/opensolaris/sys vnode.h sys/cddl/contrib/opensolaris/common/nvpair nvpair.c sys/cddl/contrib/opensolaris/uts/common/fs gfs.c vnode.c sys/cddl/contrib/opensolaris/uts/common/fs/zfs dmu.c dsl_pool.c zfs_ioctl.c zfs_vfsops.c zfs_vnops.c sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys dsl_pool.h zfs_context.h zfs_znode.h sys/cddl/contrib/opensolaris/uts/common/sys vnode.h sys/cddl/dev/cyclic cyclic.c sys/cddl/dev/dtrace/i386 dtrace_subr.c sys/kern subr_taskqueue.c vfs_vnops.c sys/modules/zfs Makefile sys/sys mount.h taskqueue.h Added files: (Branch: RELENG_7) sys/cddl/compat/opensolaris/kern opensolaris_taskq.c sys/cddl/contrib/opensolaris/uts/common/sys taskq.h Removed files: (Branch: RELENG_7) sys/cddl/compat/opensolaris/sys taskq.h taskq_impl.h sys/cddl/contrib/opensolaris/uts/common/os taskq.c Log: SVN rev 201633 on 2010-01-06 08:18:49Z by netchild MFC several ZFS related commits: - taskq changes - fixes for race conditions - locking fixes - bug fixes - ... r185310: ---snip--- Remove unused variable. Found with: Coverity Prevent(tm) CID: 3669,3671 ---snip--- r185319: ---snip--- Fix locking (file descriptor table and Giant around VFS). Most submitted by: kib Reviewed by: kib ---snip--- r192689: ---snip--- Fix comment. ---snip--- r193110: ---snip--- work around snapshot shutdown race reported by Henri Hennebert ---snip--- r193440: ---snip--- Support shared vnode locks for write operations when the offset is provided on filesystems that support it. This really improves mysql + innodb performance on ZFS. Reviewed by: jhb, kmacy, jeffr ---snip--- ATTENTION: this commit to releng7 does not allow shared vnode locks (there are some VFS changes needed before it can be enabled), it only provides the infrastructure and serves mostly as a diff reduction in the ZFS code. A comment has been added to the locking part to explain why no shared locks are used. r195627: ---snip--- In nvpair_native_embedded_array(), meaningless pointers are zeroed. The programmer was aware that alignment was not guaranteed in the packed structure and used bzero() to NULL out the pointers. However, on ia64, the compiler is quite agressive in finding ILP and calls to bzero() are often replaced by simple assignments (i.e. stores). Especially when the width or size in question corresponds with a store instruction (i.e. st1, st2, st4 or st8). The problem here is not a compiler bug. The address of the memory to zero-out was given by '&packed->nvl_priv' and given the type of the 'packed' pointer the compiler could assume proper alignment for the replacement of bzero() with an 8-byte wide store to be valid. The problem is with the programmer. The programmer knew that the address did not have the alignment guarantees needed for a regular assignment, but failed to inform the compiler of that fact. In fact, the programmer told the compiler the opposite: alignment is guaranteed. The fix is to avoid using a pointer of type "nvlist_t *" and instead use a "char *" pointer as the basis for calculating the address. This tells the compiler that only 1-byte alignment can be assumed and the compiler will either keep the bzero() call or instead replace it with a sequence of byte-wise stores. Both are valid. ---snip--- r195822: ---snip--- Fix extattr_list_file(2) on ZFS in case the attribute directory doesn't exist and user doesn't have write access to the file. Without this fix, it returns bogus value instead of 0. For some reason this didn't manifest on my kernel compiled with -O0. PR: kern/136601 Submitted by: Jaakko Heinonen <jh at saunalahti dot fi> ---snip--- r195909 ---snip--- We don't support ephemeral IDs in FreeBSD and without this fix ZFS can panic when in zfs_fuid_create_cred() when userid is negative. It is converted to unsigned value which makes IS_EPHEMERAL() macro to incorrectly report that this is ephemeral ID. The most reasonable solution for now is to always report that the given ID is not ephemeral. PR: kern/132337 Submitted by: Matthew West <freebsd@r.zeeb.org> Tested by: Thomas Backman <serenity@exscape.org>, Michael Reifenberger <mike@reifenberger.com> ---snip--- r196291: ---snip--- - Fix a race where /dev/zfs control device is created before ZFS is fully initialized. Also destroy /dev/zfs before doing other deinitializations. - Initialization through taskq is no longer needed and there is a race where one of the zpool/zfs command loads zfs.ko and tries to do some work immediately, but /dev/zfs is not there yet. Reported by: pav ---snip--- r196269: ---snip--- Fix misalignment in nvpair_native_embedded() caused by the compiler replacing the bzero(). See also revision 195627, which fixed the misalignment in nvpair_native_embedded_array(). ---snip--- r196295: ---snip--- Remove OpenSolaris taskq port (it performs very poorly in our kernel) and replace it with wrappers around our taskqueue(9). To make it possible implement taskqueue_member() function which returns 1 if the given thread was created by the given taskqueue. ---snip--- The taskqueue_member() function is different due to kproc/kthread changes in releng8 and head, the function was... Revieved by: jhb r196297: ---snip--- Fix panic in zfs recv code. The last vnode (mountpoint's vnode) can have 0 usecount. Reported by: Thomas Backman <serenity@exscape.org> ---snip--- r196299: ---snip--- - We need to recycle vnode instead of freeing znode. Submitted by: avg - Add missing vnode interlock unlock. - Remove redundant znode locking. ---snip--- r196301: ---snip--- If z_buf is NULL, we should free znode immediately. Noticed by: avg ---snip--- r196307: ---snip--- Manage asynchronous vnode release just like Solaris. Discussed with: kmacy ---snip--- Revision Changes Path 1.7.2.2 +25 -11 src/sys/cddl/compat/opensolaris/kern/opensolaris_kobj.c 1.1.4.2 +135 -0 src/sys/cddl/compat/opensolaris/kern/opensolaris_taskq.c (new) 1.2.2.3 +0 -86 src/sys/cddl/compat/opensolaris/sys/taskq.h (dead) 1.2.2.3 +0 -137 src/sys/cddl/compat/opensolaris/sys/taskq_impl.h (dead) 1.6.2.3 +0 -1 src/sys/cddl/compat/opensolaris/sys/vnode.h 1.3.2.4 +9 -5 src/sys/cddl/contrib/opensolaris/common/nvpair/nvpair.c 1.5.2.4 +7 -2 src/sys/cddl/contrib/opensolaris/uts/common/fs/gfs.c 1.2.2.2 +14 -121 src/sys/cddl/contrib/opensolaris/uts/common/fs/vnode.c 1.2.2.3 +0 -3 src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu.c 1.3.2.3 +10 -0 src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dsl_pool.c 1.2.2.3 +3 -0 src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/dsl_pool.h 1.4.2.3 +1 -0 src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_context.h 1.3.2.4 +4 -0 src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/sys/zfs_znode.h 1.7.2.4 +21 -25 src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_ioctl.c 1.14.2.3 +2 -1 src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vfsops.c 1.31.2.6 +20 -18 src/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c 1.4.2.4 +0 -1041 src/sys/cddl/contrib/opensolaris/uts/common/os/taskq.c (dead) 1.1.4.2 +90 -0 src/sys/cddl/contrib/opensolaris/uts/common/sys/taskq.h (new) 1.3.2.3 +18 -4 src/sys/cddl/contrib/opensolaris/uts/common/sys/vnode.h 1.1.2.2 +1 -2 src/sys/cddl/dev/cyclic/cyclic.c 1.1.2.3 +1 -2 src/sys/cddl/dev/dtrace/i386/dtrace_subr.c 1.39.2.3 +29 -0 src/sys/kern/subr_taskqueue.c 1.252.2.9 +32 -8 src/sys/kern/vfs_vnops.c 1.6.2.5 +1 -1 src/sys/modules/zfs/Makefile 1.228.2.9 +1 -0 src/sys/sys/mount.h 1.16.2.3 +2 -0 src/sys/sys/taskqueue.h
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201001060819.o068JWEt025945>