Brian Behlendorf
be5b2d1154
Merge branch 'linux-have-mntent' into refs/top-bases/linux-zfs-branch
2010-08-13 11:01:29 -07:00
Brian Behlendorf
946cb083b2
Merge branch 'fix-branch' into refs/top-bases/zfs-branch
2010-08-13 11:01:25 -07:00
Brian Behlendorf
c3e541b62c
Merge branch 'fix-stack-zio_execute' into refs/top-bases/fix-branch
2010-08-13 10:56:51 -07:00
Brian Behlendorf
a9b244704c
Merge branch 'linux-have-mntent' into refs/top-bases/linux-zfs-branch
2010-08-12 15:53:54 -07:00
Brian Behlendorf
775b428dfb
Merge branch 'fix-branch' into refs/top-bases/zfs-branch
2010-08-12 15:53:51 -07:00
Brian Behlendorf
afd34c561c
Merge branch 'fix-taskq' into refs/top-bases/fix-branch
2010-08-12 15:53:49 -07:00
Brian Behlendorf
abb4708772
Revert "Use inline version of __zio_execute"
...
This reverts commit 49177b6ab7
.
2010-08-12 15:49:31 -07:00
Brian Behlendorf
9df7de4475
Merge branch 'linux-have-mntent' into refs/top-bases/linux-zfs-branch
2010-08-12 15:23:13 -07:00
Brian Behlendorf
baac50219c
Merge branch 'fix-branch' into refs/top-bases/zfs-branch
2010-08-12 15:23:10 -07:00
Brian Behlendorf
6821ba2bbc
Merge branch 'fix-taskq' into refs/top-bases/fix-branch
2010-08-12 15:23:08 -07:00
Ned Bass
49177b6ab7
Use inline version of __zio_execute
...
Explicitly call to inline version to minimize stack usage.
Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
2010-08-12 15:18:43 -07:00
Ned Bass
2e3c7a06c2
Wrap zio_execute() to enable inlining
...
Implement zio_execute() as a wrapper around the static function
__zio_execute() so that we can force __zio_execute() to be inlined.
This reduces stack overhead which is important because __zio_execute()
is called recursively in several zio code paths. zio_execute() itself
cannot be inlined because it is externally visible.
Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
2010-08-12 15:18:18 -07:00
Brian Behlendorf
c6e0144f79
Merge branch 'linux-have-mntent' into refs/top-bases/linux-zfs-branch
2010-08-02 15:29:31 -07:00
Brian Behlendorf
7e9bdac1a8
Merge branch 'fix-branch' into refs/top-bases/zfs-branch
2010-08-02 15:29:27 -07:00
Brian Behlendorf
8bf0a4e79c
Merge branch 'fix-stack-inline' into refs/top-bases/fix-branch
2010-08-02 15:29:25 -07:00
Brian Behlendorf
52c23142d4
Revert "Inline zio_execute() to reduce stack use"
...
This reverts commit 411dd65af1
.
gcc version 4.1.2 does not like having differing prototypes
for zio_execute, one version in the .c with inline and one
version in the .h without. Thus I'm reverting this change
and we'll see how critical this particular stack reduction is.
2010-08-02 15:22:11 -07:00
Brian Behlendorf
472cba82e2
Merge branch 'linux-have-mntent' into refs/top-bases/linux-zfs-branch
2010-08-02 14:17:21 -07:00
Brian Behlendorf
3de149b962
Merge branch 'fix-branch' into refs/top-bases/zfs-branch
2010-08-02 14:17:16 -07:00
Brian Behlendorf
425b8742a5
Merge branch 'fix-stack-zio_done' into refs/top-bases/fix-branch
2010-08-02 14:06:32 -07:00
Ned Bass
d5658668e0
Reduce stack usage of zio_done
...
Eliminated local variables pointing to members of the zio struct.
Just refer to the struct members directly. This saved about 32 bytes per
call, but this function can be called recurisvely up to 19 levels deep,
so we potentially save up to 608 bytes.
Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
2010-08-02 14:05:49 -07:00
Brian Behlendorf
ec04ed0fbb
Merge branch 'linux-have-mntent' into refs/top-bases/linux-zfs-branch
2010-08-02 13:53:00 -07:00
Brian Behlendorf
5d145c70f1
Merge branch 'fix-branch' into refs/top-bases/zfs-branch
2010-08-02 13:52:56 -07:00
Brian Behlendorf
215b84f12f
Merge branch 'fix-stack-inline' into refs/top-bases/fix-branch
2010-08-02 13:49:05 -07:00
Ned Bass
411dd65af1
Inline zio_execute() to reduce stack use
...
Deep recursive call chains are contributing to segfaults in ztest due to
heavy stack use. Inlining zio_execute() helps reduce the stack depth of
the zio_notify_parent() -> zio_execute() -> zio_wait() recursive cycle.
I am no longer seeing ztest segfaults in this code path with this change.
Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
2010-08-02 13:47:49 -07:00
Ned Bass
dd72f3d647
Inline zio_notify_parent() to reduce stack use
...
Deep recursive call chains are contributing to segfaults in ztest due
to heavy stack use. Inlining zio_notify_parent() helps reduce the
stack depth of the zio_notify_parent() -> zio_execute() -> zio_done()
recursive cycle. I am no longer seeing ztest segfaults in this code
path with this change combined with the zio_done() stack reduction in
the previous commit.
Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
2010-08-02 13:46:48 -07:00
Brian Behlendorf
37e5e668d6
Merge branch 'linux-have-mntent' into refs/top-bases/linux-zfs-branch
2010-08-02 13:21:57 -07:00
Brian Behlendorf
7b8a233029
Merge branch 'fix-branch' into refs/top-bases/zfs-branch
2010-08-02 13:21:52 -07:00
Ricardo M. Correia
4ca4dfe9bb
Fix taskq_dispatch() call in zio_taskq_dispatch().
...
The feature branch 'fix-taskq' in Linux's ZFS tree changes the taskq_dispatch()
flag from TQ_SLEEP to TQ_NOSLEEP to avoid sleeping in some circumstances.
However, this has the side effect that taskq_dispatch() now may fail, and since
the return code was not even being checked, it could lead to zio's not being
scheduled to execute.
I'm fixing this in a simplistic but not very elegant way, by just looping until
taskq_dispatch() succeeds.
Signed-off-by: Ricardo M. Correia <ricardo.correia@oracle.com>
Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
2010-08-02 13:12:54 -07:00
Brian Behlendorf
712dbf737f
Merge branch 'linux-have-mntent' into refs/top-bases/linux-zfs-branch
2010-06-28 10:36:24 -07:00
Brian Behlendorf
191d5e833a
Merge branch 'fix-branch' into refs/top-bases/zfs-branch
2010-06-28 10:36:19 -07:00
Brian Behlendorf
6914386b85
Never sleep under taskq_dispatch()
...
There are cases where under Linux it is not safe to sleep in
taskq_dispatch(). Rather than adding Linux specific code to
detect these cases I opted to keep it simple and just never
allow a sleep here. The impact of this should be minimal.
2010-06-28 10:11:12 -07:00
Brian Behlendorf
1aeae83705
Merge branch 'linux-have-mntent' into refs/top-bases/linux-zfs-branch
2010-06-14 16:27:50 -07:00
Brian Behlendorf
eb894076a4
Merge branch 'fix-branch' into refs/top-bases/zfs-branch
...
Conflicts:
cmd/ztest/ztest.c
2010-06-14 16:24:45 -07:00
Brian Behlendorf
49ad53c46f
Update fix-taskq to never sleep at interrupt time
...
Updated fix to detect if we are in an interrupt and only sleep if it
is safe to do some. I guess it must be safe to sleep under Solaris
this must be handled in a sort interrupt handler there
2010-06-14 16:14:23 -07:00
Brian Behlendorf
e796e2a03e
Merge branch 'linux-have-mntent' into refs/top-bases/linux-zfs-branch
2010-06-14 15:37:10 -07:00
Brian Behlendorf
dfe881c0ef
Merge branch 'gcc-unused' into refs/top-bases/gcc-branch
2010-06-14 15:37:01 -07:00
Brian Behlendorf
2c95012288
Merge branch 'gcc-c90' into refs/top-bases/gcc-branch
2010-06-14 15:36:59 -07:00
Brian Behlendorf
d8e123dc27
Update gcc-unused
...
Fix new instances or changes in gcc flagged unused code. These are
mostly related to variables which are not used when debugging is
disabled and the ASSERTs are compiled out.
2010-06-14 15:29:48 -07:00
Brian Behlendorf
48bd88f014
Update gcc-c90
...
Additional c90 fixes required due to ZFS update, these include fixing new
places c99 specific things have been done and some cleanup of old usage.
2010-06-14 15:15:26 -07:00
Brian Behlendorf
b41143632b
Merge branch 'linux-have-mntent' into refs/top-bases/linux-zfs-branch
...
Conflicts:
cmd/zpool/zpool_main.c
cmd/zpool/zpool_vdev.c
cmd/ztest/ztest.c
lib/libzfs/libzfs_dataset.c
lib/libzfs/libzfs_import.c
lib/libzfs/libzfs_mount.c
lib/libzfs/libzfs_pool.c
lib/libzfs/libzfs_sendrecv.c
lib/libzpool/include/sys/zfs_context.h
module/zcommon/include/sys/fs/zfs.h
module/zcommon/zfs_comutil.c
module/zfs/arc.c
module/zfs/dmu.c
module/zfs/dmu_objset.c
module/zfs/dmu_send.c
module/zfs/dmu_tx.c
module/zfs/dsl_dataset.c
module/zfs/dsl_dir.c
module/zfs/dsl_scrub.c
module/zfs/fm.c
module/zfs/include/sys/dmu.h
module/zfs/include/sys/fm/fs/zfs.h
module/zfs/include/sys/fm/protocol.h
module/zfs/include/sys/spa.h
module/zfs/include/sys/zfs_context.h
module/zfs/include/sys/zfs_ioctl.h
module/zfs/include/sys/zvol.h
module/zfs/spa.c
module/zfs/spa_boot.c
module/zfs/spa_history.c
module/zfs/spa_misc.c
module/zfs/txg.c
module/zfs/vdev.c
module/zfs/zfs_fm.c
module/zfs/zfs_ioctl.c
module/zfs/zfs_replay.c
module/zfs/zfs_znode.c
module/zfs/zil.c
module/zfs/zio.c
2010-05-28 22:14:39 -07:00
Brian Behlendorf
3e2be634a5
Merge branch 'gcc-c90' into refs/top-bases/gcc-branch
...
Conflicts:
cmd/zdb/zdb.c
cmd/zdb/zdb_il.c
cmd/zfs/zfs_main.c
cmd/zfs/zfs_util.h
cmd/zinject/zinject.h
cmd/zpool/zpool_main.c
cmd/zpool/zpool_util.c
cmd/ztest/ztest.c
lib/libnvpair/include/libnvpair.h
lib/libnvpair/libnvpair.c
lib/libzfs/libzfs_changelist.c
lib/libzfs/libzfs_config.c
lib/libzfs/libzfs_dataset.c
lib/libzfs/libzfs_import.c
lib/libzfs/libzfs_mount.c
lib/libzfs/libzfs_pool.c
lib/libzfs/libzfs_sendrecv.c
module/avl/avl.c
module/avl/include/sys/avl.h
module/nvpair/include/sys/nvpair.h
module/nvpair/nvpair.c
module/zcommon/include/zfs_comutil.h
module/zcommon/include/zfs_prop.h
module/zcommon/zfs_comutil.c
module/zfs/arc.c
module/zfs/dbuf.c
module/zfs/dmu.c
module/zfs/dmu_objset.c
module/zfs/dmu_zfetch.c
module/zfs/dnode_sync.c
module/zfs/dsl_dataset.c
module/zfs/dsl_pool.c
module/zfs/dsl_prop.c
module/zfs/dsl_synctask.c
module/zfs/include/sys/dmu_tx.h
module/zfs/include/sys/dmu_zfetch.h
module/zfs/include/sys/dsl_synctask.h
module/zfs/include/sys/refcount.h
module/zfs/include/sys/txg.h
module/zfs/include/sys/uberblock.h
module/zfs/include/sys/zap_leaf.h
module/zfs/include/sys/zfs_debug.h
module/zfs/include/sys/zfs_znode.h
module/zfs/include/sys/zio_compress.h
module/zfs/include/sys/zvol.h
module/zfs/lzjb.c
module/zfs/metaslab.c
module/zfs/refcount.c
module/zfs/sha256.c
module/zfs/spa.c
module/zfs/spa_boot.c
module/zfs/uberblock.c
module/zfs/vdev.c
module/zfs/zap_micro.c
module/zfs/zfs_ioctl.c
module/zfs/zfs_replay.c
module/zfs/zio.c
module/zfs/zio_compress.c
2010-05-28 15:34:57 -07:00
Brian Behlendorf
d60fc5ca30
Merge commit 'refs/top-bases/gcc-unused' into gcc-unused
...
Conflicts:
module/zfs/dbuf.c
module/zfs/dmu.c
module/zfs/dmu_objset.c
module/zfs/dnode_sync.c
module/zfs/dsl_dataset.c
module/zfs/dsl_prop.c
module/zfs/metaslab.c
module/zfs/spa.c
module/zfs/vdev.c
module/zfs/zap_micro.c
2010-05-28 15:07:36 -07:00
Brian Behlendorf
957b7b41d4
Merge commit 'refs/top-bases/gcc-c90' into gcc-c90
...
Conflicts:
cmd/zdb/zdb.c
cmd/ztest/ztest.c
module/zfs/dbuf.c
module/zfs/dsl_dataset.c
module/zfs/dsl_scrub.c
module/zfs/spa.c
module/zfs/vdev.c
module/zfs/zio.c
2010-05-28 14:19:22 -07:00
Brian Behlendorf
428870ff73
Update core ZFS code from build 121 to build 141.
2010-05-28 13:45:14 -07:00
Brian Behlendorf
410adb5765
Merge branch 'linux-have-mntent' into refs/top-bases/linux-zfs-branch
2010-05-28 10:00:46 -07:00
Brian Behlendorf
11510b3513
Merge branch 'fix-branch' into refs/top-bases/zfs-branch
2010-05-28 10:00:44 -07:00
Brian Behlendorf
11a9bfc7f8
Revert fix-taskq changes reevaluate after update.
2010-05-28 09:54:03 -07:00
Brian Behlendorf
37e6d3e769
Merge branch 'linux-arc' into refs/top-bases/linux-zfs-branch
2009-07-10 10:50:18 -07:00
Brian Behlendorf
cfec48619c
Merge branch 'gcc-branch' into refs/top-bases/zfs-branch
2009-07-10 10:50:12 -07:00
Brian Behlendorf
84b52133f3
Merge branch 'gcc-unused' into refs/top-bases/gcc-branch
2009-07-10 10:50:10 -07:00