]> granicus.if.org Git - zfs/log
zfs
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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 agoAdd fix-stack-dsl_deleg_get topic branch
Brian Behlendorf [Wed, 16 Jun 2010 20:49:25 +0000 (13:49 -0700)]
Add fix-stack-dsl_deleg_get topic branch

Reduce stack usage in dsl_deleg_get, gcc flagged it as consuming a
whopping 1040 bytes or potentially 1/4 of a 4K stack.  This patch
moves all the large structures and buffer off the stack and on to
the heap.  This includes 2 zap_cursor_t structs each 52 bytes in
size, 2 zap_attribute_t structs each 280 bytes in size, and 1
256 byte char array.  The total saves on the stack is 880 bytes
after you account for the 5 new pointers added.

Also the source buffer length has been increased from MAXNAMELEN
to MAXNAMELEN+strlen(MOS_DIR_NAME)+1 as described by the comment in
dsl_dir_name().  A buffer overrun may have been possible with the
slightly smaller buffer.

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

14 years agoAdd fix-stack-dsl_dir_open_spa topic branch
Brian Behlendorf [Wed, 16 Jun 2010 19:39:44 +0000 (12:39 -0700)]
Add fix-stack-dsl_dir_open_spa topic branch

Reduce stack usage by 256 bytes by moving buf char array from
the stack to the heap.

14 years agoMerge branch 'fix-stack-lzjb' into refs/top-bases/fix-branch
Brian Behlendorf [Mon, 14 Jun 2010 23:45:33 +0000 (16:45 -0700)]
Merge branch 'fix-stack-lzjb' into refs/top-bases/fix-branch

14 years agoAdd fix-stack-lzjb topic branch
Brian Behlendorf [Mon, 14 Jun 2010 23:45:01 +0000 (16:45 -0700)]
Add fix-stack-lzjb topic branch

Reduce kernel stack usage by lzjb_compress() by moving uint16 array
off the stack and on to the heap.  The exact performance implications
of this I have not measured but we absolutely need to keep stack
usage to a minimum.  If/when this becomes and issue we optimize.

14 years agoMerge branch 'fix-kstat-xuio' into refs/top-bases/fix-branch
Brian Behlendorf [Mon, 14 Jun 2010 23:43:32 +0000 (16:43 -0700)]
Merge branch 'fix-kstat-xuio' into refs/top-bases/fix-branch

14 years agoAdd fix-kstat-xuio topic branch
Brian Behlendorf [Mon, 14 Jun 2010 23:43:01 +0000 (16:43 -0700)]
Add fix-kstat-xuio topic branch

Move xiou stat structures from a header to the dmu.c source as is
done with all the other kstat interfaces.  This information is local
to dmu.c registered the xuio kstat and should stay that way.

14 years agoMerge branch 'fix-metaslab' into refs/top-bases/fix-branch
Brian Behlendorf [Mon, 14 Jun 2010 23:40:45 +0000 (16:40 -0700)]
Merge branch 'fix-metaslab' into refs/top-bases/fix-branch

14 years agoAdd fix-metaslab topic branch
Brian Behlendorf [Mon, 14 Jun 2010 23:40:26 +0000 (16:40 -0700)]
Add fix-metaslab topic branch

If your only going to allow one allocator to be used and it is defined
at compile time there is no point including the others in the build.
This patch could/should be refined for Linux to make the metaslab
configurable at run time.  That might be a bit tricky however since
you would need to quiese all IO.  Short of that making it configurable
as a module load option would be a reasonable compromise.

14 years agoMerge branch 'fix-current' into refs/top-bases/fix-branch
Brian Behlendorf [Mon, 14 Jun 2010 23:39:27 +0000 (16:39 -0700)]
Merge branch 'fix-current' into refs/top-bases/fix-branch

14 years agoAdd fix-current topic branch
Brian Behlendorf [Mon, 14 Jun 2010 23:38:56 +0000 (16:38 -0700)]
Add fix-current topic branch

In the linux kernel 'current' is defined to mean the current process
and can never be used as a local variable in a function.  Simply
replace all usage of 'current' with 'curr' in this function.

14 years agoMerge branch 'fix-pthreads' into refs/top-bases/fix-branch
Brian Behlendorf [Mon, 14 Jun 2010 23:22:00 +0000 (16:22 -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, 14 Jun 2010 23:21:59 +0000 (16:21 -0700)]
Merge branch 'fix-taskq' into refs/top-bases/fix-branch

14 years agoAdd fix-pthreads topic branch
Brian Behlendorf [Mon, 14 Jun 2010 23:20:44 +0000 (16:20 -0700)]
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.

14 years agoUpdate fix-taskq to never sleep at interrupt time
Brian Behlendorf [Mon, 14 Jun 2010 23:14:23 +0000 (16:14 -0700)]
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

14 years agoMerge commit 'refs/top-bases/fix-error-handling' into fix-error-handling
Brian Behlendorf [Fri, 28 May 2010 20:54:54 +0000 (13:54 -0700)]
Merge commit 'refs/top-bases/fix-error-handling' into fix-error-handling

14 years agoMerge branch 'fix-error-handling' into refs/top-bases/fix-branch
Brian Behlendorf [Fri, 28 May 2010 20:54:54 +0000 (13:54 -0700)]
Merge branch 'fix-error-handling' into refs/top-bases/fix-branch

14 years agoMerge commit 'refs/top-bases/fix-acl' into fix-acl
Brian Behlendorf [Fri, 28 May 2010 20:54:53 +0000 (13:54 -0700)]
Merge commit 'refs/top-bases/fix-acl' into fix-acl

14 years agoMerge branch 'fix-acl' into refs/top-bases/fix-branch
Brian Behlendorf [Fri, 28 May 2010 20:54:53 +0000 (13:54 -0700)]
Merge branch 'fix-acl' into refs/top-bases/fix-branch

14 years agoMerge branch 'fix-deadcode' into refs/top-bases/fix-branch
Brian Behlendorf [Fri, 28 May 2010 20:54:53 +0000 (13:54 -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 [Fri, 28 May 2010 20:54:52 +0000 (13:54 -0700)]
Merge commit 'refs/top-bases/fix-deadcode' into fix-deadcode