]> granicus.if.org Git - zfs/log
zfs
14 years agoMerge commit 'refs/top-bases/fix-branch' into fix-branch
Brian Behlendorf [Tue, 29 Jun 2010 23:57:39 +0000 (16:57 -0700)]
Merge commit 'refs/top-bases/fix-branch' into fix-branch

14 years agoMerge branch 'fix-stack-traverse_visitbp' into refs/top-bases/fix-branch
Brian Behlendorf [Tue, 29 Jun 2010 23:57:39 +0000 (16:57 -0700)]
Merge branch 'fix-stack-traverse_visitbp' into refs/top-bases/fix-branch

14 years agoMinor fix to ensure tv_depth is there when debugging is disabled.
Brian Behlendorf [Tue, 29 Jun 2010 23:50:42 +0000 (16:50 -0700)]
Minor fix to ensure tv_depth is there when debugging is disabled.

14 years agoMerge commit 'refs/top-bases/fix-branch' into fix-branch
Brian Behlendorf [Tue, 29 Jun 2010 21:41:35 +0000 (14:41 -0700)]
Merge commit 'refs/top-bases/fix-branch' into fix-branch

14 years agoMerge branch 'fix-stack-ztest' into refs/top-bases/fix-branch
Brian Behlendorf [Tue, 29 Jun 2010 21:41:35 +0000 (14:41 -0700)]
Merge branch 'fix-stack-ztest' into refs/top-bases/fix-branch

14 years agoMerge commit 'refs/top-bases/fix-stack-ztest' into fix-stack-ztest
Brian Behlendorf [Tue, 29 Jun 2010 21:41:34 +0000 (14:41 -0700)]
Merge commit 'refs/top-bases/fix-stack-ztest' into fix-stack-ztest

14 years agoMerge commit 'refs/top-bases/fix-pthreads' into fix-pthreads
Brian Behlendorf [Tue, 29 Jun 2010 21:41:34 +0000 (14:41 -0700)]
Merge commit 'refs/top-bases/fix-pthreads' into fix-pthreads

14 years agoMerge commit 'refs/top-bases/fix-stack-traverse_visitbp' into fix-stack-traverse_visitbp
Brian Behlendorf [Tue, 29 Jun 2010 21:41:32 +0000 (14:41 -0700)]
Merge commit 'refs/top-bases/fix-stack-traverse_visitbp' into fix-stack-traverse_visitbp

14 years agoMerge branch 'fix-stack-traverse_visitbp' into refs/top-bases/fix-branch
Brian Behlendorf [Tue, 29 Jun 2010 21:41:32 +0000 (14:41 -0700)]
Merge branch 'fix-stack-traverse_visitbp' into refs/top-bases/fix-branch

14 years agoMerge branch 'fix-stack-traverse_impl' into refs/top-bases/fix-branch
Brian Behlendorf [Tue, 29 Jun 2010 21:41:31 +0000 (14:41 -0700)]
Merge branch 'fix-stack-traverse_impl' into refs/top-bases/fix-branch

14 years agoMerge commit 'refs/top-bases/fix-stack-traverse_impl' into fix-stack-traverse_impl
Brian Behlendorf [Tue, 29 Jun 2010 21:41:30 +0000 (14:41 -0700)]
Merge commit 'refs/top-bases/fix-stack-traverse_impl' into fix-stack-traverse_impl

14 years agoMerge branch 'fix-stack-vn_open' into refs/top-bases/fix-branch
Brian Behlendorf [Tue, 29 Jun 2010 21:41:29 +0000 (14:41 -0700)]
Merge branch 'fix-stack-vn_open' into refs/top-bases/fix-branch

14 years agoMerge commit 'refs/top-bases/fix-stack-vn_open' into fix-stack-vn_open
Brian Behlendorf [Tue, 29 Jun 2010 21:41:28 +0000 (14:41 -0700)]
Merge commit 'refs/top-bases/fix-stack-vn_open' into fix-stack-vn_open

14 years agoMerge branch 'fix-stack-dsl_dataset_destroy' into refs/top-bases/fix-branch
Brian Behlendorf [Tue, 29 Jun 2010 21:41:27 +0000 (14:41 -0700)]
Merge branch 'fix-stack-dsl_dataset_destroy' into refs/top-bases/fix-branch

14 years agoMerge commit 'refs/top-bases/fix-stack-dsl_dataset_destroy' into fix-stack-dsl_datase...
Brian Behlendorf [Tue, 29 Jun 2010 21:41:27 +0000 (14:41 -0700)]
Merge commit 'refs/top-bases/fix-stack-dsl_dataset_destroy' into fix-stack-dsl_dataset_destroy

14 years agoMerge branch 'fix-stack-dmu_objset_snapshot' into refs/top-bases/fix-branch
Brian Behlendorf [Tue, 29 Jun 2010 21:41:25 +0000 (14:41 -0700)]
Merge branch 'fix-stack-dmu_objset_snapshot' into refs/top-bases/fix-branch

14 years agoMerge commit 'refs/top-bases/fix-stack-dmu_objset_snapshot' into fix-stack-dmu_objset...
Brian Behlendorf [Tue, 29 Jun 2010 21:41:25 +0000 (14:41 -0700)]
Merge commit 'refs/top-bases/fix-stack-dmu_objset_snapshot' into fix-stack-dmu_objset_snapshot

14 years agoMerge branch 'fix-stack-noinline' into refs/top-bases/fix-branch
Brian Behlendorf [Tue, 29 Jun 2010 21:41:24 +0000 (14:41 -0700)]
Merge branch 'fix-stack-noinline' into refs/top-bases/fix-branch

14 years agoMerge commit 'refs/top-bases/fix-stack-noinline' into fix-stack-noinline
Brian Behlendorf [Tue, 29 Jun 2010 21:41:23 +0000 (14:41 -0700)]
Merge commit 'refs/top-bases/fix-stack-noinline' into fix-stack-noinline

14 years agoMerge branch 'fix-stack-dsl_deleg_get' into refs/top-bases/fix-branch
Brian Behlendorf [Tue, 29 Jun 2010 21:41:22 +0000 (14:41 -0700)]
Merge branch 'fix-stack-dsl_deleg_get' into refs/top-bases/fix-branch

14 years agoMerge commit 'refs/top-bases/fix-stack-dsl_deleg_get' into fix-stack-dsl_deleg_get
Brian Behlendorf [Tue, 29 Jun 2010 21:41:22 +0000 (14:41 -0700)]
Merge commit 'refs/top-bases/fix-stack-dsl_deleg_get' into fix-stack-dsl_deleg_get

14 years agoMerge branch 'fix-stack-dsl_dir_open_spa' into refs/top-bases/fix-branch
Brian Behlendorf [Tue, 29 Jun 2010 21:41:20 +0000 (14:41 -0700)]
Merge branch 'fix-stack-dsl_dir_open_spa' into refs/top-bases/fix-branch

14 years agoMerge commit 'refs/top-bases/fix-stack-dsl_dir_open_spa' into fix-stack-dsl_dir_open_spa
Brian Behlendorf [Tue, 29 Jun 2010 21:41:20 +0000 (14:41 -0700)]
Merge commit 'refs/top-bases/fix-stack-dsl_dir_open_spa' into fix-stack-dsl_dir_open_spa

14 years agoMerge branch 'fix-stack-lzjb' into refs/top-bases/fix-branch
Brian Behlendorf [Tue, 29 Jun 2010 21:41:19 +0000 (14:41 -0700)]
Merge branch 'fix-stack-lzjb' into refs/top-bases/fix-branch

14 years agoMerge commit 'refs/top-bases/fix-stack-lzjb' into fix-stack-lzjb
Brian Behlendorf [Tue, 29 Jun 2010 21:41:18 +0000 (14:41 -0700)]
Merge commit 'refs/top-bases/fix-stack-lzjb' into fix-stack-lzjb

14 years agoMerge branch 'fix-kstat-xuio' into refs/top-bases/fix-branch
Brian Behlendorf [Tue, 29 Jun 2010 21:41:17 +0000 (14:41 -0700)]
Merge branch 'fix-kstat-xuio' into refs/top-bases/fix-branch

14 years agoMerge commit 'refs/top-bases/fix-kstat-xuio' into fix-kstat-xuio
Brian Behlendorf [Tue, 29 Jun 2010 21:41:17 +0000 (14:41 -0700)]
Merge commit 'refs/top-bases/fix-kstat-xuio' into fix-kstat-xuio

14 years agoMerge branch 'fix-metaslab' into refs/top-bases/fix-branch
Brian Behlendorf [Tue, 29 Jun 2010 21:41:16 +0000 (14:41 -0700)]
Merge branch 'fix-metaslab' into refs/top-bases/fix-branch

14 years agoMerge commit 'refs/top-bases/fix-metaslab' into fix-metaslab
Brian Behlendorf [Tue, 29 Jun 2010 21:41:15 +0000 (14:41 -0700)]
Merge commit 'refs/top-bases/fix-metaslab' into fix-metaslab

14 years agoMerge branch 'fix-current' into refs/top-bases/fix-branch
Brian Behlendorf [Tue, 29 Jun 2010 21:41:14 +0000 (14:41 -0700)]
Merge branch 'fix-current' into refs/top-bases/fix-branch

14 years agoMerge commit 'refs/top-bases/fix-current' into fix-current
Brian Behlendorf [Tue, 29 Jun 2010 21:41:14 +0000 (14:41 -0700)]
Merge commit 'refs/top-bases/fix-current' into fix-current

14 years agoMerge branch 'fix-error-handling' into refs/top-bases/fix-branch
Brian Behlendorf [Tue, 29 Jun 2010 21:41:12 +0000 (14:41 -0700)]
Merge branch 'fix-error-handling' into refs/top-bases/fix-branch

14 years agoMerge commit 'refs/top-bases/fix-error-handling' into fix-error-handling
Brian Behlendorf [Tue, 29 Jun 2010 21:41:12 +0000 (14:41 -0700)]
Merge commit 'refs/top-bases/fix-error-handling' into fix-error-handling

14 years agoMerge branch 'fix-acl' into refs/top-bases/fix-branch
Brian Behlendorf [Tue, 29 Jun 2010 21:41:11 +0000 (14:41 -0700)]
Merge branch 'fix-acl' into refs/top-bases/fix-branch

14 years agoMerge commit 'refs/top-bases/fix-acl' into fix-acl
Brian Behlendorf [Tue, 29 Jun 2010 21:41:10 +0000 (14:41 -0700)]
Merge commit 'refs/top-bases/fix-acl' into fix-acl

14 years agoMerge branch 'fix-deadcode' into refs/top-bases/fix-branch
Brian Behlendorf [Tue, 29 Jun 2010 21:41:09 +0000 (14:41 -0700)]
Merge branch 'fix-deadcode' into refs/top-bases/fix-branch

14 years agoMerge commit 'refs/top-bases/fix-deadcode' into fix-deadcode
Brian Behlendorf [Tue, 29 Jun 2010 21:41:09 +0000 (14:41 -0700)]
Merge commit 'refs/top-bases/fix-deadcode' into fix-deadcode

14 years agoMerge branch 'fix-strncat' into refs/top-bases/fix-branch
Brian Behlendorf [Tue, 29 Jun 2010 21:41:07 +0000 (14:41 -0700)]
Merge branch 'fix-strncat' into refs/top-bases/fix-branch

14 years agoMerge commit 'refs/top-bases/fix-strncat' into fix-strncat
Brian Behlendorf [Tue, 29 Jun 2010 21:41:07 +0000 (14:41 -0700)]
Merge commit 'refs/top-bases/fix-strncat' into fix-strncat

14 years agoMerge branch 'fix-list' into refs/top-bases/fix-branch
Brian Behlendorf [Tue, 29 Jun 2010 21:41:06 +0000 (14:41 -0700)]
Merge branch 'fix-list' into refs/top-bases/fix-branch

14 years agoMerge commit 'refs/top-bases/fix-list' into fix-list
Brian Behlendorf [Tue, 29 Jun 2010 21:41:05 +0000 (14:41 -0700)]
Merge commit 'refs/top-bases/fix-list' into fix-list

14 years agoMerge branch 'fix-taskq' into refs/top-bases/fix-branch
Brian Behlendorf [Tue, 29 Jun 2010 21:41:03 +0000 (14:41 -0700)]
Merge branch 'fix-taskq' into refs/top-bases/fix-branch

14 years agoMerge commit 'refs/top-bases/fix-taskq' into fix-taskq
Brian Behlendorf [Tue, 29 Jun 2010 21:41:03 +0000 (14:41 -0700)]
Merge commit 'refs/top-bases/fix-taskq' into fix-taskq

14 years agoMerge branch 'fix-rwlocks' into refs/top-bases/fix-branch
Brian Behlendorf [Tue, 29 Jun 2010 21:41:02 +0000 (14:41 -0700)]
Merge branch 'fix-rwlocks' into refs/top-bases/fix-branch

14 years agoMerge commit 'refs/top-bases/fix-rwlocks' into fix-rwlocks
Brian Behlendorf [Tue, 29 Jun 2010 21:41:01 +0000 (14:41 -0700)]
Merge commit 'refs/top-bases/fix-rwlocks' into fix-rwlocks

14 years agoMerge branch 'fix-no-zmod' into refs/top-bases/fix-branch
Brian Behlendorf [Tue, 29 Jun 2010 21:41:00 +0000 (14:41 -0700)]
Merge branch 'fix-no-zmod' into refs/top-bases/fix-branch

14 years agoMerge commit 'refs/top-bases/fix-no-zmod' into fix-no-zmod
Brian Behlendorf [Tue, 29 Jun 2010 21:41:00 +0000 (14:41 -0700)]
Merge commit 'refs/top-bases/fix-no-zmod' into fix-no-zmod

14 years agoMerge branch 'fix-newlines' into refs/top-bases/fix-branch
Brian Behlendorf [Tue, 29 Jun 2010 21:40:59 +0000 (14:40 -0700)]
Merge branch 'fix-newlines' into refs/top-bases/fix-branch

14 years agoMerge commit 'refs/top-bases/fix-newlines' into fix-newlines
Brian Behlendorf [Tue, 29 Jun 2010 21:40:58 +0000 (14:40 -0700)]
Merge commit 'refs/top-bases/fix-newlines' into fix-newlines

14 years agoMerge branch 'fix-evict-dbufs' into refs/top-bases/fix-branch
Brian Behlendorf [Tue, 29 Jun 2010 21:40:57 +0000 (14:40 -0700)]
Merge branch 'fix-evict-dbufs' into refs/top-bases/fix-branch

14 years agoMerge commit 'refs/top-bases/fix-evict-dbufs' into fix-evict-dbufs
Brian Behlendorf [Tue, 29 Jun 2010 21:40:56 +0000 (14:40 -0700)]
Merge commit 'refs/top-bases/fix-evict-dbufs' into fix-evict-dbufs

14 years agoMerge branch 'fix-dnode-cons' into refs/top-bases/fix-branch
Brian Behlendorf [Tue, 29 Jun 2010 21:40:55 +0000 (14:40 -0700)]
Merge branch 'fix-dnode-cons' into refs/top-bases/fix-branch

14 years agoMerge commit 'refs/top-bases/fix-dnode-cons' into fix-dnode-cons
Brian Behlendorf [Tue, 29 Jun 2010 21:40:55 +0000 (14:40 -0700)]
Merge commit 'refs/top-bases/fix-dnode-cons' into fix-dnode-cons

14 years agoMerge branch 'fix-dbuf_dirty_record_t' into refs/top-bases/fix-branch
Brian Behlendorf [Tue, 29 Jun 2010 21:40:54 +0000 (14:40 -0700)]
Merge branch 'fix-dbuf_dirty_record_t' into refs/top-bases/fix-branch

14 years agoMerge commit 'refs/top-bases/fix-dbuf_dirty_record_t' into fix-dbuf_dirty_record_t
Brian Behlendorf [Tue, 29 Jun 2010 21:40:53 +0000 (14:40 -0700)]
Merge commit 'refs/top-bases/fix-dbuf_dirty_record_t' into fix-dbuf_dirty_record_t

14 years agoAdd basic README
Brian Behlendorf [Tue, 29 Jun 2010 21:35:21 +0000 (14:35 -0700)]
Add basic README

A simple README with a short summary of the project and a link
directing people to the online documentation.

14 years agoMerge commit 'refs/top-bases/fix-branch' into fix-branch
Brian Behlendorf [Tue, 29 Jun 2010 18:28:37 +0000 (11:28 -0700)]
Merge commit 'refs/top-bases/fix-branch' into fix-branch

14 years agoMerge branch 'fix-stack-ztest' into refs/top-bases/fix-branch
Brian Behlendorf [Tue, 29 Jun 2010 18:28:36 +0000 (11:28 -0700)]
Merge branch 'fix-stack-ztest' into refs/top-bases/fix-branch

14 years agoUpdate dependency fix-pthreads changes to fix-stack-ztest
Brian Behlendorf [Tue, 29 Jun 2010 18:27:33 +0000 (11:27 -0700)]
Update dependency fix-pthreads changes to fix-stack-ztest

This was done becaese fix-stack-ztest was added to the stack
in series after fix-pthreads because fix-stack-ztest depends
on many of the pthreads changes.

14 years agoReduce stack used by ztest
Brian Behlendorf [Tue, 29 Jun 2010 18:25:08 +0000 (11:25 -0700)]
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

14 years agoMerge branch 'fix-stack-traverse_visitbp' into refs/top-bases/fix-branch
Brian Behlendorf [Tue, 29 Jun 2010 18:04:51 +0000 (11:04 -0700)]
Merge branch 'fix-stack-traverse_visitbp' into refs/top-bases/fix-branch

14 years agoMerge commit 'refs/top-bases/fix-branch' into fix-branch
Brian Behlendorf [Tue, 29 Jun 2010 18:04:51 +0000 (11:04 -0700)]
Merge commit 'refs/top-bases/fix-branch' into fix-branch

14 years agoNew TopGit dependency: fix-stack-traverse_visitbp
Brian Behlendorf [Tue, 29 Jun 2010 18:04:48 +0000 (11:04 -0700)]
New TopGit dependency: fix-stack-traverse_visitbp

14 years agoReduce stack usage for recursive traverse_visitbp()
Brian Behlendorf [Tue, 29 Jun 2010 18:04:26 +0000 (11:04 -0700)]
Reduce stack usage for recursive traverse_visitbp()

Due to  limited stack space recursive functions are frowned upon in
the Linux kernel.  However, they often are the most elegant solution
to a problem.  The following code preserves the recursive function
traverse_visitbp() but moves the local variables AND function
arguments to the heap to minimize the stack frame size.  Enough
space is initially allocated on the stack for 20 levels of recursion.
This change does ugly-up-the-code but it reduces the worst case
usage from roughly 4160 bytes to 960 bytes on x86_64 archs.

14 years agoMerge branch 'fix-stack-traverse_impl' into refs/top-bases/fix-branch
Brian Behlendorf [Tue, 29 Jun 2010 17:21:53 +0000 (10:21 -0700)]
Merge branch 'fix-stack-traverse_impl' into refs/top-bases/fix-branch

14 years agoMerge commit 'refs/top-bases/fix-branch' into fix-branch
Brian Behlendorf [Tue, 29 Jun 2010 17:21:53 +0000 (10:21 -0700)]
Merge commit 'refs/top-bases/fix-branch' into fix-branch

14 years agoNew TopGit dependency: fix-stack-traverse_impl
Brian Behlendorf [Tue, 29 Jun 2010 17:21:50 +0000 (10:21 -0700)]
New TopGit dependency: fix-stack-traverse_impl

14 years agoReduce stack usage of traverse_impl()
Brian Behlendorf [Tue, 29 Jun 2010 17:21:21 +0000 (10:21 -0700)]
Reduce stack usage of traverse_impl()

Stack use reduced from 560 bytes to 128 bytes.

14 years agoMerge branch 'fix-stack-vn_open' into refs/top-bases/fix-branch
Brian Behlendorf [Tue, 29 Jun 2010 17:15:05 +0000 (10:15 -0700)]
Merge branch 'fix-stack-vn_open' into refs/top-bases/fix-branch

14 years agoMerge commit 'refs/top-bases/fix-branch' into fix-branch
Brian Behlendorf [Tue, 29 Jun 2010 17:15:05 +0000 (10:15 -0700)]
Merge commit 'refs/top-bases/fix-branch' into fix-branch

14 years agoNew TopGit dependency: fix-stack-vn_open
Brian Behlendorf [Tue, 29 Jun 2010 17:15:02 +0000 (10:15 -0700)]
New TopGit dependency: fix-stack-vn_open

14 years agoReduce stack usage by vn_open()
Brian Behlendorf [Tue, 29 Jun 2010 17:14:37 +0000 (10:14 -0700)]
Reduce stack usage by vn_open()

We should not put a 4k maxpathlen buffer on the stack, instead
locate it to the heap.  Even in user space we run ztest with 8K

14 years agoMerge commit 'refs/top-bases/fix-branch' into fix-branch
Brian Behlendorf [Tue, 29 Jun 2010 17:12:04 +0000 (10:12 -0700)]
Merge commit 'refs/top-bases/fix-branch' into fix-branch

14 years agoMerge branch 'fix-stack-dsl_dataset_destroy' into refs/top-bases/fix-branch
Brian Behlendorf [Tue, 29 Jun 2010 17:12:03 +0000 (10:12 -0700)]
Merge branch 'fix-stack-dsl_dataset_destroy' into refs/top-bases/fix-branch

14 years agoMerge branch 'fix-pthreads' into refs/top-bases/fix-branch
Brian Behlendorf [Tue, 29 Jun 2010 17:12:03 +0000 (10:12 -0700)]
Merge branch 'fix-pthreads' into refs/top-bases/fix-branch

14 years agoNew TopGit dependency: fix-stack-dsl_dataset_destroy
Brian Behlendorf [Tue, 29 Jun 2010 17:12:00 +0000 (10:12 -0700)]
New TopGit dependency: fix-stack-dsl_dataset_destroy

14 years agoReduce stack usage by dsl_dataset_destroy()
Brian Behlendorf [Tue, 29 Jun 2010 17:11:32 +0000 (10:11 -0700)]
Reduce stack usage by dsl_dataset_destroy()

Move dsl_dataset_t local variable from the stack to the heap.
This reduces the stack usage of this function from 2048 bytes
to 176 bytes for x84_64 arches.

14 years agoAdditional pthread related fixes for ztest
Brian Behlendorf [Tue, 29 Jun 2010 06:45:08 +0000 (23:45 -0700)]
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.

14 years agoMerge commit 'refs/top-bases/fix-branch' into fix-branch
Brian Behlendorf [Mon, 28 Jun 2010 17:36:18 +0000 (10:36 -0700)]
Merge commit 'refs/top-bases/fix-branch' into fix-branch

14 years agoMerge branch 'fix-stack-dmu_objset_snapshot' into refs/top-bases/fix-branch
Brian Behlendorf [Mon, 28 Jun 2010 17:36:17 +0000 (10:36 -0700)]
Merge branch 'fix-stack-dmu_objset_snapshot' into refs/top-bases/fix-branch

14 years agoMerge branch 'fix-pthreads' into refs/top-bases/fix-branch
Brian Behlendorf [Mon, 28 Jun 2010 17:36:17 +0000 (10:36 -0700)]
Merge branch 'fix-pthreads' into refs/top-bases/fix-branch

14 years agoMerge branch 'fix-taskq' into refs/top-bases/fix-branch
Brian Behlendorf [Mon, 28 Jun 2010 17:36:16 +0000 (10:36 -0700)]
Merge branch 'fix-taskq' into refs/top-bases/fix-branch

14 years agoAllow joinable threads
Brian Behlendorf [Sun, 27 Jun 2010 22:06:49 +0000 (15:06 -0700)]
Allow joinable threads

There was previous discussion of a race with joinable threads but to
be honest I can neither exactly remember the race, or recrease the
issue.  I believe it may have had to do with pthread_create() returning
without having set kt->tid since this was done in the created thread.
If that was the race then I've 'fixed' it by ensuring the thread id
is set in the thread AND as the first pthread_create() argument.  Why
this wasn't done originally I'm not sure, with luck Ricardo remembers.

Additionally, explicitly set a PAGESIZE guard frame at the end of the
stack to aid in detecting stack overflow.  And add some conditional
logic to set STACK_SIZE correctly for Solaris.

14 years agoNever sleep under taskq_dispatch()
Brian Behlendorf [Mon, 28 Jun 2010 17:11:12 +0000 (10:11 -0700)]
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.

14 years agoFix for fix-stack-dmu_objset_snapshot should be 'sn' not '&sn'
Brian Behlendorf [Mon, 28 Jun 2010 17:00:12 +0000 (10:00 -0700)]
Fix for fix-stack-dmu_objset_snapshot should be 'sn' not '&sn'

I missed a instanse of removing the & operator when reducing the
stack usage in this function.  This unfortunately doesn't cause
a compile warning but it is does cause ztest failures.  Anyway,
update the topic branch to correct this mistake.

14 years agoMerge commit 'refs/top-bases/fix-branch' into fix-branch
Brian Behlendorf [Wed, 16 Jun 2010 21:39:41 +0000 (14:39 -0700)]
Merge commit 'refs/top-bases/fix-branch' into fix-branch

14 years agoMerge branch 'fix-stack-dmu_objset_snapshot' into refs/top-bases/fix-branch
Brian Behlendorf [Wed, 16 Jun 2010 21:39:41 +0000 (14:39 -0700)]
Merge branch 'fix-stack-dmu_objset_snapshot' into refs/top-bases/fix-branch

14 years agoNew TopGit dependency: fix-stack-dmu_objset_snapshot
Brian Behlendorf [Wed, 16 Jun 2010 21:39:39 +0000 (14:39 -0700)]
New TopGit dependency: fix-stack-dmu_objset_snapshot

14 years agoAdd fix-stack-dmu_objset_snapshot topic branch
Brian Behlendorf [Wed, 16 Jun 2010 21:39:06 +0000 (14:39 -0700)]
Add fix-stack-dmu_objset_snapshot topic branch

Reduce stack usage by 276 bytes by moving the snaparg struct from the
stack to the heap.  We have limited stack space we must not waste.

14 years agoMerge branch 'fix-stack-noinline' into refs/top-bases/fix-branch
Brian Behlendorf [Wed, 16 Jun 2010 21:35:14 +0000 (14:35 -0700)]
Merge branch 'fix-stack-noinline' into refs/top-bases/fix-branch

14 years agoMerge commit 'refs/top-bases/fix-branch' into fix-branch
Brian Behlendorf [Wed, 16 Jun 2010 21:35:14 +0000 (14:35 -0700)]
Merge commit 'refs/top-bases/fix-branch' into fix-branch

14 years agoNew TopGit dependency: fix-stack-noinline
Brian Behlendorf [Wed, 16 Jun 2010 21:35:11 +0000 (14:35 -0700)]
New TopGit dependency: fix-stack-noinline

14 years agoAdd fix-stack-noinline topic branch
Brian Behlendorf [Wed, 16 Jun 2010 21:34:41 +0000 (14:34 -0700)]
Add fix-stack-noinline topic branch

Certain function must never be automatically inlined by gcc because
they are stack heavy or called recursively.  This patch flags all
such functions I have found as 'noinline' to prevent gcc from making
the optimization.

14 years agoRemove fix-stack dependency from fix-branch
Brian Behlendorf [Wed, 16 Jun 2010 21:30:40 +0000 (14:30 -0700)]
Remove fix-stack dependency from fix-branch

14 years agoMerge branch 'fix-stack' into refs/top-bases/fix-branch
Brian Behlendorf [Wed, 16 Jun 2010 21:27:29 +0000 (14:27 -0700)]
Merge branch 'fix-stack' into refs/top-bases/fix-branch

14 years agoMerge commit 'refs/top-bases/fix-branch' into fix-branch
Brian Behlendorf [Wed, 16 Jun 2010 21:27:29 +0000 (14:27 -0700)]
Merge commit 'refs/top-bases/fix-branch' into fix-branch

14 years agoRevert fix-stack topic branch
Brian Behlendorf [Wed, 16 Jun 2010 21:23:31 +0000 (14:23 -0700)]
Revert fix-stack topic branch

This patch will be broken in to several independent stack reductions
and reapplied as new topic branches.

14 years agoMerge commit 'refs/top-bases/fix-branch' into fix-branch
Brian Behlendorf [Wed, 16 Jun 2010 20:49:56 +0000 (13:49 -0700)]
Merge commit 'refs/top-bases/fix-branch' into fix-branch

14 years agoMerge branch 'fix-stack-dsl_deleg_get' into refs/top-bases/fix-branch
Brian Behlendorf [Wed, 16 Jun 2010 20:49:55 +0000 (13:49 -0700)]
Merge branch 'fix-stack-dsl_deleg_get' into refs/top-bases/fix-branch

14 years agoNew TopGit dependency: fix-stack-dsl_deleg_get
Brian Behlendorf [Wed, 16 Jun 2010 20:49:53 +0000 (13:49 -0700)]
New TopGit dependency: fix-stack-dsl_deleg_get