Commit Graph

771 Commits

Author SHA1 Message Date
Brian Behlendorf a58b4008c5 Merge commit 'refs/top-bases/linux-have-uio-rw' into linux-have-uio-rw 2009-08-04 14:41:12 -07:00
Brian Behlendorf 2665b9a863 Merge commit 'refs/top-bases/linux-debug-zerocopy' into linux-debug-zerocopy 2009-08-04 14:41:11 -07:00
Brian Behlendorf ed3e845798 Merge commit 'refs/top-bases/linux-kernel-module' into linux-kernel-module 2009-08-04 14:40:48 -07:00
Brian Behlendorf 3e5388907b Merge commit 'refs/top-bases/zfs-branch' into zfs-branch 2009-08-04 14:39:07 -07:00
Brian Behlendorf 9aedfd95f6 Merge branch 'feature-branch' into refs/top-bases/zfs-branch 2009-08-04 14:39:06 -07:00
Brian Behlendorf 0741d789d2 Merge branch 'feature-pthreads' into refs/top-bases/feature-branch 2009-08-04 14:39:04 -07:00
Ricardo M. Correia c0ce3b40f2 Reimplement user kthreads based on pthread thread specific data.
This resolves previous scalabily concerns about the cost of calling
curthread which previously required a list walk.  The kthread address
is now tracked as thread specific data which can be quickly returned.

Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
2009-08-04 13:55:15 -07:00
Brian Behlendorf 22f4ee3398 Merge commit 'refs/top-bases/linux-have-uio-rw' into linux-have-uio-rw 2009-08-03 16:30:21 -07:00
Brian Behlendorf b8e8d02bf9 Merge commit 'refs/top-bases/linux-debug-zerocopy' into linux-debug-zerocopy 2009-08-03 16:30:20 -07:00
Brian Behlendorf 102ab49042 Merge commit 'refs/top-bases/linux-kernel-module' into linux-kernel-module 2009-08-03 16:30:03 -07:00
Brian Behlendorf 48cbfae8bd Merge commit 'refs/top-bases/zfs-branch' into zfs-branch 2009-08-03 16:28:49 -07:00
Brian Behlendorf f2f52087f3 Merge branch 'gcc-branch' into refs/top-bases/zfs-branch 2009-08-03 16:28:48 -07:00
Brian Behlendorf 6cb98ae6b9 Merge branch 'gcc-unused' into refs/top-bases/gcc-branch 2009-08-03 16:28:46 -07:00
Brian Behlendorf 68a80a8b87 refcount_add() mistakenly moved to ASSERT() breaks --disable-debug builds. 2009-08-03 16:20:27 -07:00
Brian Behlendorf 833c4d1d74 Merge commit 'refs/top-bases/linux-have-uio-rw' into linux-have-uio-rw 2009-07-29 21:29:16 -07:00
Brian Behlendorf db9f4d423b Merge commit 'refs/top-bases/linux-debug-zerocopy' into linux-debug-zerocopy 2009-07-29 21:29:15 -07:00
Brian Behlendorf 4f6e1daa09 Merge commit 'refs/top-bases/linux-kernel-module' into linux-kernel-module 2009-07-29 21:28:53 -07:00
Brian Behlendorf 2d86fb2788 Merge commit 'refs/top-bases/zfs-branch' into zfs-branch 2009-07-29 21:27:13 -07:00
Brian Behlendorf 3185bb677e Merge branch 'fix-branch' into refs/top-bases/zfs-branch 2009-07-29 21:27:12 -07:00
Brian Behlendorf 653cd5153a Merge branch 'fix-stack' into refs/top-bases/fix-branch 2009-07-29 21:27:10 -07:00
Brian Behlendorf ee435f260c Excessively large stack frames detected.
The 2.6.30 kernel build systems sets -Wframe-larger-than=2048 which causes
a warning to be generated when an individual stack frame exceeds 2048.
This caught the spa_history_log() and dmu_objset_snapshot() functions
which declared a data structure on the stack which contained a char
array of MAXPATHLEN.  This in defined to be 4096 in the linux kernel
and I imagine it is quite large under Solaris as well.  Regardless, the
offending data structures were moved to the heap to correctly keep the
stack depth to a minimum.  We might consider setting this value even
lower to catch additional offenders because we are expecting deep stacks.
2009-07-29 21:18:48 -07:00
Brian Behlendorf 998d11b698 Merge commit 'refs/top-bases/linux-have-uio-rw' into linux-have-uio-rw 2009-07-14 14:37:05 -07:00
Brian Behlendorf 438a7e63e9 Merge commit 'refs/top-bases/linux-debug-zerocopy' into linux-debug-zerocopy 2009-07-14 14:37:03 -07:00
Brian Behlendorf 4727a58497 Merge commit 'refs/top-bases/linux-kernel-module' into linux-kernel-module 2009-07-14 14:36:36 -07:00
Brian Behlendorf fef9a2c571 Merge commit 'refs/top-bases/zfs-branch' into zfs-branch 2009-07-14 14:34:39 -07:00
Brian Behlendorf 9b9f17a585 Merge branch 'feature-branch' into refs/top-bases/zfs-branch 2009-07-14 14:34:37 -07:00
Brian Behlendorf 605a501311 Merge branch 'feature-pthreads' into refs/top-bases/feature-branch 2009-07-14 14:34:35 -07:00
Brian Behlendorf 864e44e7e0 Provide correct kthread API semantics using pthreads.
The intent here is to fully remove the previous Solaris thread
implementation so we don't need to simulate both Solaris kernel
and user space thread APIs.  The few user space consumers of the
thread API have been updated to use the kthread API.  In order
to support this we needed to more fully support the kthread API
and that means not doing crazy things like casting a thread id
to a pointer and using that as was done before.  This first
implementation is not effecient but it does provide all the
corrent semantics.  If/when performance becomes and issue we
can and should just natively adopt pthreads which is portable.

Let me finish by saying I'm not proud of any of this and I would
love to see it improved.  However, this slow implementation does
at least provide all the correct kthread API semantics whereas
the previous method of casting the thread ID to a pointer was
dodgy at best.
2009-07-14 14:16:26 -07:00
Brian Behlendorf 91fcf9d661 Merge commit 'refs/top-bases/linux-have-uio-rw' into linux-have-uio-rw 2009-07-10 11:51:11 -07:00
Brian Behlendorf 9ffbe8f428 Merge commit 'refs/top-bases/linux-debug-zerocopy' into linux-debug-zerocopy 2009-07-10 11:51:09 -07:00
Brian Behlendorf 8a5b47ebb5 Add dmu_write_impl() prototype needed by zpios until a clean
zerocopy interface is available.
2009-07-10 11:39:37 -07:00
Brian Behlendorf 8bb9b8305a Export new quota related symbols. 2009-07-10 11:38:53 -07:00
Brian Behlendorf 925fa57107 Merge commit 'refs/top-bases/linux-have-uio-rw' into linux-have-uio-rw 2009-07-10 10:52:37 -07:00
Brian Behlendorf df59544928 Merge commit 'refs/top-bases/linux-debug-zerocopy' into linux-debug-zerocopy 2009-07-10 10:52:36 -07:00
Brian Behlendorf ca2e8a0a7f Merge commit 'refs/top-bases/linux-kernel-module' into linux-kernel-module 2009-07-10 10:52:11 -07:00
Brian Behlendorf 4baa59ce44 Merge commit 'refs/top-bases/zfs-branch' into zfs-branch 2009-07-10 10:50:13 -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
Brian Behlendorf f3c55459b0 Pull ; in to macro to ensure it get's entirely removed, C90 issue. 2009-07-10 10:40:55 -07:00
Brian Behlendorf bfcab44eb7 Merge commit 'refs/top-bases/linux-have-uio-rw' into linux-have-uio-rw 2009-07-09 15:10:14 -07:00
Brian Behlendorf 2ec527b793 Merge commit 'refs/top-bases/linux-debug-zerocopy' into linux-debug-zerocopy 2009-07-09 15:10:12 -07:00
Brian Behlendorf f8938a398f Merge commit 'refs/top-bases/linux-kernel-module' into linux-kernel-module 2009-07-09 15:09:50 -07:00
Brian Behlendorf 24662d61d9 Merge commit 'refs/top-bases/zfs-branch' into zfs-branch 2009-07-09 15:08:06 -07:00
Brian Behlendorf 2f4e745a09 Merge branch 'gcc-branch' into refs/top-bases/zfs-branch 2009-07-09 15:08:04 -07:00
Brian Behlendorf bed14af385 Merge branch 'gcc-no-parenthesis' into refs/top-bases/gcc-branch 2009-07-09 15:08:03 -07:00
Brian Behlendorf ae132945b4 Add suggested paranthesis. 2009-07-09 14:59:10 -07:00
Brian Behlendorf f99ad7f4c3 Merge commit 'refs/top-bases/linux-have-uio-rw' into linux-have-uio-rw 2009-07-09 13:19:41 -07:00
Brian Behlendorf ebb013f2dd Merge commit 'refs/top-bases/linux-debug-zerocopy' into linux-debug-zerocopy 2009-07-09 13:19:39 -07:00
Brian Behlendorf db193d4ca9 Merge commit 'refs/top-bases/linux-kernel-module' into linux-kernel-module 2009-07-09 13:19:15 -07:00
Brian Behlendorf 17d368fa5f Merge commit 'refs/top-bases/zfs-branch' into zfs-branch 2009-07-09 13:17:27 -07:00