Commit Graph

66 Commits

Author SHA1 Message Date
Brian Behlendorf 5d145c70f1 Merge branch 'fix-branch' into refs/top-bases/zfs-branch 2010-08-02 13:52:56 -07:00
Ned Bass bb20b03060 Move ztest_od_t structures to the heap
A number of ztest functions create one or more 312B ztest_od_t data
structures.  To conserve stack usage, this commit moves all of these data
structures to the heap.  However, I am still seeing ztest segfaults due
to heavy stack usage of the dbuf_findbp() -> dbuf_hold_impl() recursion.

Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
2010-08-02 13:42:25 -07:00
Brian Behlendorf 428d8d8a9b Merge branch 'gcc-branch' into refs/top-bases/zfs-branch 2010-07-01 10:42:00 -07:00
Brian Behlendorf 049a26b800 Merge branch 'gcc-fortify-source' into refs/top-bases/gcc-branch 2010-07-01 10:41:59 -07:00
Brian Behlendorf 3b54f5030e Use VERIFY() for asprintf due to rpm -D_FORTIFY_SOURCE=2
This check is part of ztest and a memory failure here is unlikely.
However, if this does occur simply exiting is an perfectly valid
way to handle the issue and it resulves the compiler warning.

        ztest.c:5522: error: ignoring return value of 'asprintf',
        declared with attribute warn_unused_result
2010-07-01 10:35:11 -07:00
Brian Behlendorf a0796cadf7 Merge branch 'fix-branch' into refs/top-bases/zfs-branch
Conflicts:

	cmd/ztest/ztest.c
2010-06-29 11:34:31 -07:00
Brian Behlendorf ef01098ef4 Reduce stack used by ztest
While ztest does run in user space we run it with the same stack
restrictions it would have in kernel space.  This ensures that any
stack related issues which would be hit in the kernel can be caught
and debugged in user space instead.

This patch is a first pass to limit the stack usage of every ztest
function to 1024 bytes.  Subsequent updates can further reduce this
2010-06-29 11:25:08 -07:00
Brian Behlendorf ffeafc898e Merge branch 'fix-branch' into refs/top-bases/zfs-branch
Conflicts:

	cmd/ztest/ztest.c
2010-06-29 10:55:38 -07:00
Brian Behlendorf 6fe1e37a5e Additional pthread related fixes for ztest
There are 3 fixes in thie commit.  First, update ztest_run() to store
the thread id and not the address of the kthread_t.  This will be freed
on thread exit and is not safe to use.  This is pretty close to how
things were done in the original ztest code before I got there.

Second, for extra paranoia update thread_exit() to return a special
TS_MAGIC value via pthread_exit().  This value is then verified in
pthread_join() to ensure the thread exited cleanly.  This can be
done cleanly because the kthread doesn't provide a return code
mechanism we need to worry about.

Third, replace the ztest deadman thread with a signal handler.  We
cannot use the previous approach because the correct behavior for
pthreads is to wait for all threads to exit before terminating the
process.  Since the deadman thread won't call exit by design we
end up hanging in kernel_exit().  To avoid this we just setup a
SIGALRM signal handle and register a deadman alarm.  IMHO this
is simpler and cleaner anyway.
2010-06-29 10:06:09 -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 f9f342c5f2 Add fix-pthreads topic branch
This is a portability change which removes the dependence of the Solaris
thread library.  All locations where Solaris thread API was used before
have been replaced with equivilant Solaris kernel style thread calls.
In user space the kernel style threading API is implemented in term of
the portable pthreads library.  This includes all threads, mutexs,
condition variables, reader/writer locks, and taskqs.
2010-06-14 16:20:44 -07:00
Brian Behlendorf d9f910d423 Merge branch 'gcc-missing-case' into refs/top-bases/gcc-branch 2010-06-14 15:36:59 -07:00
Brian Behlendorf 993fa8c15c Merge branch 'gcc-invalid-prototype' into refs/top-bases/gcc-branch 2010-06-14 15:36:59 -07:00
Brian Behlendorf b41463f5e8 Update gcc-invalid-prototypes
Fix new invalid prototypes, typically just a missing void arg.
2010-06-14 15:25:49 -07:00
Brian Behlendorf 0a8593375e Update gcc-missing-case
Fix new locations of an incomplete case statement.
2010-06-14 15:19:09 -07:00
Brian Behlendorf fc490c18b6 Merge branch 'gcc-cast' into refs/top-bases/gcc-branch 2010-06-14 14:42:56 -07:00
Brian Behlendorf dd8f6da3da Update gcc-cast
Fix new instances of missing casts or assumed types.
2010-06-14 14:40:10 -07:00
Brian Behlendorf 97352d5103 Merge branch 'gcc-cast' into refs/top-bases/gcc-branch
Conflicts:
	cmd/zpool/zpool_main.c
	cmd/ztest/ztest.c
2010-05-28 15:37:31 -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 2591cac812 Merge commit 'refs/top-bases/gcc-invalid-prototype' into gcc-invalid-prototype
Conflicts:
	cmd/zdb/zdb_il.c
	cmd/ztest/ztest.c
	lib/libzfs/libzfs_mount.c
2010-05-28 14:42:40 -07:00
Brian Behlendorf 1be88bcba0 Merge commit 'refs/top-bases/gcc-fortify-source' into gcc-fortify-source
Conflicts:
	cmd/zdb/zdb.c
2010-05-28 14:37:39 -07:00
Brian Behlendorf 475bf41d1c Merge commit 'refs/top-bases/gcc-cast' into gcc-cast
Conflicts:
	cmd/zfs/zfs_main.c
	cmd/zpool/zpool_main.c
	cmd/ztest/ztest.c
2010-05-28 14:36:18 -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 b45c6064bb Merge commit 'refs/top-bases/gcc-fortify-source' into gcc-fortify-source 2010-01-08 11:39:13 -08:00
Brian Behlendorf aeb5db5cbc Merge commit 'refs/top-bases/gcc-invalid-prototype' into gcc-invalid-prototype 2010-01-08 11:39:04 -08:00
Brian Behlendorf 8d4f979e7f Merge commit 'refs/top-bases/gcc-cast' into gcc-cast 2010-01-08 11:39:01 -08:00
Brian Behlendorf 69804965e9 Merge commit 'refs/top-bases/gcc-c90' into gcc-c90 2010-01-08 11:39:00 -08:00
Brian Behlendorf e69572c1b5 Merge branch 'gcc-c90' into refs/top-bases/gcc-branch 2010-01-08 11:39:00 -08:00
Brian Behlendorf 4cd8e49a69 Add .gitignore files to exclude build products 2010-01-08 11:35:17 -08:00
Brian Behlendorf cadd2ec869 Merge commit 'refs/top-bases/gcc-fortify-source' into gcc-fortify-source 2009-08-18 12:08:52 -07:00
Brian Behlendorf 38cc41b5fe Merge commit 'refs/top-bases/gcc-invalid-prototype' into gcc-invalid-prototype 2009-08-18 12:05:26 -07:00
Brian Behlendorf 9e903015fd Merge commit 'refs/top-bases/gcc-cast' into gcc-cast 2009-08-18 12:05:07 -07:00
Brian Behlendorf e5e4fadc34 Merge branch 'gcc-c90' into refs/top-bases/gcc-branch
Conflicts:

	module/zfs/dmu.c
	module/zfs/dsl_deleg.c
	module/zfs/rrwlock.c
	module/zfs/vdev_raidz.c
2009-08-18 12:04:53 -07:00
Brian Behlendorf 0f80e41c89 Merge commit 'refs/top-bases/gcc-c90' into gcc-c90
Conflicts:

	module/zfs/spa_misc.c
	module/zfs/vdev_label.c
2009-08-18 11:55:36 -07:00
Brian Behlendorf 45d1cae3b8 Rebase master to b121 2009-08-18 11:43:27 -07:00
Brian Behlendorf f9bab26542 Merge branch 'gcc-fortify-source' into refs/top-bases/gcc-branch 2009-08-14 10:22:07 -07:00
Brian Behlendorf e6b541db64 All calls to ftruncate() must have their return code checked.
Under FC11 rpm builds by default add the --fortify-source option which
ensures that functions flagged with certain attributes must have their
return codes checked.  Normally this is just a warning but we always
build with -Werror so this is fatal.  Simply wrap the function in a
verify call to ensure we catch a failure if there is one.
2009-08-14 10:11:03 -07:00
Brian Behlendorf 76bf02aebb Merge branch 'gcc-unused' into refs/top-bases/gcc-branch 2009-07-09 12:23:36 -07:00
Brian Behlendorf f1d99c0653 Revert to original debugging code and wrap any variabled used only
within an ASSERT with the ASSERTV macro which will ensure it will
be removed when the ASSERTs are commented out.  This makes gcc much
happier, makes the variables usage explicit, and removes the need
for the compiler to detect it is unused and do the right thing.
2009-07-09 12:10:52 -07:00
Brian Behlendorf 23cff295e2 Merge branch 'gcc-cast' into refs/top-bases/gcc-branch 2009-07-08 09:16:02 -07:00
Brian Behlendorf 5fc46112cb Merge branch 'gcc-c90' into refs/top-bases/gcc-branch 2009-07-08 09:16:01 -07:00
Brian Behlendorf b2e459dab0 Add explicit casts for (u_longlong_t) when printing uint64_t. 2009-07-08 09:07:13 -07:00
Brian Behlendorf b2dcbdf490 Resolve a 2 new cases of for loop variable declared in for() 2009-07-08 09:04:21 -07:00
Brian Behlendorf 5a2a5d64a5 Merge commit 'refs/top-bases/gcc-invalid-prototype' into gcc-invalid-prototype 2009-07-02 16:51:09 -07:00
Brian Behlendorf e2b2597751 Merge branch 'gcc-c90' into refs/top-bases/gcc-branch
Conflicts:

	cmd/zdb/zdb_il.c
	cmd/zfs/zfs_main.c
	cmd/zinject/zinject.c
	cmd/ztest/ztest.c
	lib/libzfs/libzfs_dataset.c
	lib/libzfs/libzfs_graph.c
	module/zcommon/include/sys/fm/fs/zfs.h
	module/zcommon/include/zfs_deleg.h
	module/zcommon/include/zfs_namecheck.h
	module/zcommon/zfs_deleg.c
	module/zcommon/zfs_namecheck.c
	module/zcommon/zprop_common.c
	module/zfs/arc.c
	module/zfs/dmu.c
	module/zfs/dmu_object.c
	module/zfs/dmu_objset.c
	module/zfs/dsl_pool.c
	module/zfs/dsl_prop.c
	module/zfs/fletcher.c
	module/zfs/include/sys/dsl_deleg.h
	module/zfs/include/sys/dsl_prop.h
	module/zfs/include/sys/metaslab_impl.h
	module/zfs/include/sys/spa_boot.h
	module/zfs/include/sys/zap.h
	module/zfs/include/sys/zap_impl.h
	module/zfs/include/sys/zfs_context.h
	module/zfs/include/sys/zfs_ctldir.h
	module/zfs/include/sys/zfs_dir.h
	module/zfs/include/sys/zfs_fuid.h
	module/zfs/include/sys/zfs_ioctl.h
	module/zfs/spa.c
	module/zfs/spa_errlog.c
	module/zfs/spa_history.c
	module/zfs/zap.c
	module/zfs/zap_leaf.c
	module/zfs/zap_micro.c
	module/zfs/zfs_ioctl.c
	module/zfs/zio.c
2009-07-02 16:49:11 -07:00
Brian Behlendorf e9f14862a5 Merge commit 'refs/top-bases/gcc-c90' into gcc-c90
Conflicts:

	module/zfs/dmu_objset.c
	module/zfs/spa.c
	module/zfs/vdev.c
	module/zfs/vdev_label.c
	module/zfs/zio.c
2009-07-02 16:18:03 -07:00
Brian Behlendorf 9babb37438 Rebase master to b117 2009-07-02 15:44:48 -07:00
Brian Behlendorf 9fe5b916e2 Merge branch 'gcc-fortify-source' into refs/top-bases/gcc-branch 2009-03-12 15:39:27 -07:00
Brian Behlendorf 9e49df6b20 Add gcc-fortify-source branch 2009-03-12 15:38:51 -07:00