Commit Graph

  • 810db7e0a2 Remove zcommon reference merged in to zpool Brian Behlendorf 2008-12-12 13:41:20 -08:00
  • 6b2c60acca Moving lib/libspl to linux-libspl branch Brian Behlendorf 2008-12-11 15:38:59 -08:00
  • a4076c7544 Script updates Brian Behlendorf 2008-12-11 14:21:14 -08:00
  • c4911ece24 Move library files to lib Brian Behlendorf 2008-12-11 14:16:55 -08:00
  • b453b61272 Fix libspl move to the wrong place Brian Behlendorf 2008-12-11 11:22:02 -08:00
  • 4b7ee081ce Fix typo Brian Behlendorf 2008-12-11 11:16:38 -08:00
  • 77755a5771 Add a few missing files Brian Behlendorf 2008-12-11 11:14:49 -08:00
  • 172bb4bd5e Move the world out of /zfs/ and seperate out module build tree Brian Behlendorf 2008-12-11 11:08:09 -08:00
  • 9e8b1e836c Remove libumem, we will try and remove this dependency entirely. If we can't then the best move will simply be to use the official library, or build it as a convenience library Brian Behlendorf 2008-12-10 12:43:20 -08:00
  • 5e97ed8493 Move vmem* to libumem Brian Behlendorf 2008-12-09 14:14:00 -08:00
  • 48343be6a3 Temporarily move taskq+util to libzpool until that directory is broken in to lib+module Brian Behlendorf 2008-12-09 13:32:01 -08:00
  • 2f40ac4d9e Minor tweak to update script Brian Behlendorf 2008-12-08 16:38:46 -08:00
  • 2b67f51fb6 Attempt move of kernel.c with topgit Brian Behlendorf 2008-12-08 16:20:25 -08:00
  • 2ee63a549a Add struct ddi_strtox functions Brian Behlendorf 2008-12-05 16:23:57 -08:00
  • 857c63f413 Refresh Brian Behlendorf 2008-12-05 16:20:09 -08:00
  • 96072c88e2 Add userspace zfs_context file Brian Behlendorf 2008-12-03 15:43:56 -08:00
  • b128c09fbe Rebase to OpenSolaris b103, in the process we are removing any code which did not originate from the OpenSolaris source. These changes will be reintroduced in topic branches for easier tracking Brian Behlendorf 2008-12-03 12:09:06 -08:00
  • b6097ae55a Remove stray stub kernel files which should be brought in my linux-kernel-module patch Brian Behlendorf 2008-12-02 08:47:21 -08:00
  • 7ebbc0c799 Finish removing all non-upstream bits from master Brian Behlendorf 2008-12-01 16:15:29 -08:00
  • ef76e2f5ea Removed build system from master branch, will relocate to linux-zfs-branch Brian Behlendorf 2008-12-01 15:41:33 -08:00
  • 42baae9615 Removed build system from master branch, will relocate to linux-zfs-branch Brian Behlendorf 2008-12-01 15:38:41 -08:00
  • fe441a9050 Relocate COPYING+COPYRIGHT, remove README cruft Brian Behlendorf 2008-12-01 15:34:53 -08:00
  • ef2e1711d2 Add CDDL license file Brian Behlendorf 2008-12-01 14:49:34 -08:00
  • 100eb88b46 Update zpios for trivial workload Brian Behlendorf 2008-11-26 15:48:14 -08:00
  • 62b749c8c8 Working version of M4 macro config Brian Behlendorf 2008-11-26 15:32:39 -08:00
  • f0e648ca02 Make everything a M4 macro, it's just cleaner that way Brian Behlendorf 2008-11-26 14:29:45 -08:00
  • e833fd4a5c Additional buidl system cleanup. Starting to move all of the kernel specific build info in to config/kernel, likewise and user specific build flags should go in config/user. This seems like a reasonable way to go. Brian Behlendorf 2008-11-26 14:06:23 -08:00
  • dbceaca71d Prefix META_ALIAS with ZFS_ Brian Behlendorf 2008-11-26 13:28:44 -08:00
  • 72e7de6026 Prefix META_ALIAS with SPL_ Brian Behlendorf 2008-11-26 13:26:05 -08:00
  • cb9c044bf6 Add SPL prefix to META_* #defines Brian Behlendorf 2008-11-26 13:11:33 -08:00
  • abc3ca149d Prefix all META_* #defines with SPL to prevent colisions which include our spl_config.h. Dependent packages may do this to leverage the autoconf check we have already run aganst the kernel. Brian Behlendorf 2008-11-26 13:09:37 -08:00
  • c9a9137956 First step of META build system cleanup Brian Behlendorf 2008-11-26 12:53:24 -08:00
  • 895ff83c08 Rebase on Git from SVN as of version 0.4.0. Brian Behlendorf 2008-11-26 09:57:29 -08:00
  • 7860010a72 Tag spl-0.3.5 behlendo 2008-11-26 17:44:40 +00:00
  • 02a794ae3f Add libtool script behlendo 2008-11-26 17:43:44 +00:00
  • 7212e2cd27 Add missing autogen products behlendo 2008-11-26 17:07:59 +00:00
  • dd529a30ac Include META file support. behlendo 2008-11-26 17:01:45 +00:00
  • bf9f3bac95 * : Add autogen.sh products. behlendo 2008-11-24 23:49:18 +00:00
  • 536640fe29 Minor autoconf build fixes: Brian Behlendorf 2008-11-24 11:56:48 -08:00
  • 22b47b5536 Use config directory, enable maintainer mode Brian Behlendorf 2008-11-24 11:29:11 -08:00
  • a54f863a14 Restructure autoconf around ./config directory Brian Behlendorf 2008-11-24 11:16:19 -08:00
  • 5b1a72b342 Update GIT docs, removing remaining patches. They will soon me applies as topic branches Brian Behlendorf 2008-11-21 10:55:10 -08:00
  • 9fc325737b Update GIT documentation to describe the new DAC setup Brian Behlendorf 2008-11-20 16:54:29 -08:00
  • 34dc7c2f25 Initial Linux ZFS GIT Repo Brian Behlendorf 2008-11-20 12:01:55 -08:00
  • 6a1c3d418a * include/sys/sunddi.h, modules/spl/spl-module.c : Removed default udev support from sunddi implementation because it uses GPL-only symbols. This support is optionally available for SPL consumers if they define HAVE_GPL_ONLY_SYMBOLS and license their module as GPL using the MODULE_LICENSE("GPL") macro. behlendo 2008-11-13 21:43:30 +00:00
  • 5457aee1a3 Prep for spl-0.3.4 tag. behlendo 2008-11-06 00:51:31 +00:00
  • 83e5edb47d Remove 3 instances of unused variables. behlendo 2008-11-05 22:06:56 +00:00
  • 7ea1cbf5b2 Add proper error handling for the case where a thread can not be created. Instead of asserting we simply abort the test, wait for any tasks we created to finish, and return -ESRCH back to the user space component. behlendo 2008-11-05 21:43:37 +00:00
  • 36833ea4e4 Slightly increase SPLAT_NAME_SIZE to ensure string is always NULL terminated. behlendo 2008-11-05 21:27:31 +00:00
  • ac569b72a1 Fix a small corner case in the test infrastructure where we might end up with a non-NULL terminated buffer if the test name or desc is too long. Only copy N-1 bytes. behlendo 2008-11-04 23:38:29 +00:00
  • 12018327f5 3 minor fixups where sprintf() was used instead of snprintf() with a known max length. Additionally the function return value is cast to void to make it explicit that the value is not needed. behlendo 2008-11-04 23:30:15 +00:00
  • 0498e6c585 Removed useless check behlendo 2008-11-04 23:18:31 +00:00
  • 3bc9d50eaa Add missing error handling to this case where a memory allocation fails. behlendo 2008-11-04 22:51:31 +00:00
  • 8e80a04c04 Simple ignore the return type which was never used here and cast it to void. behlendo 2008-11-04 22:42:58 +00:00
  • 55c59e6153 Add proper error handling to one of the atomic test cases in the event that a kernel thread cannot be properly spawned. behlendo 2008-11-04 22:39:29 +00:00
  • b02e9b2415 Add missing initializer which is needed in an unlikely error case. behlendo 2008-11-04 22:24:55 +00:00
  • b07335c1a7 Ensure GPL-only symbols are re-exported as GPL-only behlendo 2008-11-04 00:00:16 +00:00
  • c8e60837b7 * spl-09-fix-kmem-track-oops.patch This fixes an oops when unloading the modules, in the case where memory tracking was enabled and there were memory leaks. The comment in the code explains what was the problem. behlendo 2008-11-03 22:02:15 +00:00
  • c22e7a427b Under Solaris KM_SLEEP ensures success (or at least you hang forever). That said when working with a finite resource like memory failure really is always a possibility. It would be far better longer term if the ZFS code could be weened off this assumption and properly handle the cases where an allocation fails. Still I've applied the patch to spl-0.3.4 since this layer is supposed to emulate Solaris as closely as possible. behlendo 2008-11-03 21:51:33 +00:00
  • a0f6da3d95 Add a SPL_AC_TYPE_ATOMIC64_T test to configure for systems which do already supprt atomic64_t types. behlendo 2008-11-03 21:06:04 +00:00
  • 550f170525 Apply two nice improvements caught by Ricardo, behlendo 2008-11-03 20:34:17 +00:00
  • 749045bbfa Apply a nice fix caught by Ricardo, behlendo 2008-11-03 20:21:08 +00:00
  • f6c81c5ea7 Reviewed and applied spl-01-rm-gpl-symbol-set_cpus_allowed.patch from Ricardo which removes a dependency on the GPL-only symbol set_cpus_allowed(). Using this symbol is simpler but in the name of portability we are adopting a spinlock based solution here to remove this dependency. behlendo 2008-11-03 20:07:20 +00:00
  • d50bd9e221 Reviewed and applied spl-00-rm-gpl-symbol-notifier_chain.patch from Ricardo which removes a dependency on the GPL-only symbol needed for a panic time notifier. This funcationality was never used and this improves our portability. behlendo 2008-11-03 19:53:23 +00:00
  • e73187714d Minor tweak to handle systems with restrictive udev rules or older systems which are not using udev at all. behlendo 2008-08-12 05:18:41 +00:00
  • 25557fd884 Sigh more compat fixes, this is almost right for 2.6.9 - 2.6.26 kernels. behlendo 2008-08-11 23:47:44 +00:00
  • b61a6e8bdc Pull in initial 32-bit support patches. behlendo 2008-08-11 22:42:04 +00:00
  • 3d061e9d10 Commit bulk of remaining 2.6.9 and 2.6.26 compat changes. behlendo 2008-08-11 22:13:47 +00:00
  • 322640b7b5 Include linux/uaccess.h compat changes. behlendo 2008-08-11 19:10:14 +00:00
  • 86de8532a9 More 2.6.26 compat changes behlendo 2008-08-11 17:56:40 +00:00
  • 6a6cafbe8d Pull in timespec, list, and type compat changes to support building against a wider range of kernels. behlendo 2008-08-11 17:20:11 +00:00
  • 86149aa255 Resolve incomplete type when building against 2.6.26 behlendo 2008-08-11 16:11:37 +00:00
  • 46c685d0c4 Add class / device portability code. Two autoconf tests were added to cover the 3 possible APIs from 2.6.9 to 2.6.26. We attempt to use the newest interfaces and if not available fallback to the oldest. This a rework of some changes proposed by Ricardo for RHEL4. behlendo 2008-08-10 03:50:36 +00:00
  • 877a32e91e Pull in fls64 compat changes from spl-00-rhel4-compat.patch, to allow greater compatibility with kernels pre 2.6.16. behlendo 2008-08-06 04:52:39 +00:00
  • 7afde631f6 Start bringing in Ricardo's spl-00-rhel4-compat.patch, a few chunks at a time as I audit it. This chunk finishes moving the SPL entirely off the linux slab on to the SPL implementation. It differs slightly from the proposed version in that the spl continues to export to all the Solaris types and functions. These do conflict with the Linux slab so a module usings these interfaces must not include the SPL slab if they also intend to use the linux slab. Or they must explcitly #undef the macros which remap the functioin to their spl_* equivilants. behlendo 2008-08-05 04:16:09 +00:00
  • 73035a29eb Apply Ricardo's spl-02-condvar-poison.patch Fix too early memory poisoning on condvars. behlendo 2008-08-04 23:59:08 +00:00
  • 5587df4d8e Trivial commit to remove whitespace behlendo 2008-07-09 19:11:29 +00:00
  • 97f274d46d Fix race in kmem_locking test Reduce max memory usage for kmem_locking tests (for low memory machines) behlendo 2008-07-07 22:15:04 +00:00
  • f78a933f8a Two easy fixes I caught with debug enabled behlendo 2008-07-01 04:06:09 +00:00
  • 3ba97a6743 Update info to prep for a tag. If all goes well I'll have something I'm not too embarased to distrubute tommorow. behlendo 2008-07-01 03:42:24 +00:00
  • a1502d76ae - Remove hash functionality from slab in favor of direct lookups based of the spl_kmem_obj_t tacked on the end of each object. This actually isn't so back because we are now allocing large chunks for the slab and partitioning it ourselves. So there's not a ton of wasted space. We may suffer a performance hit however due to alignment issues. behlendo 2008-07-01 03:28:54 +00:00
  • 1c3832576d Remove stray call to spl_cache_free() and remove all the cycle count which was costing me overhead. It was hurting performance pretty badly for heavily used caches. I'm also thinking the hash may be hurting me as well and it might be worth sticking a pointer in to a little space after the alloced object. behlendo 2008-06-28 20:03:11 +00:00
  • fece7c99bf Victory! I've reworked caches with large objects which are based by vmalloc()'ed memory. I now alloc a slab which is roughly 32*spl_obj_size and in this block of memory I place the slab descriptor, slab object descriptors, and objects themselves. This greatly reduces vmalloc lock contention. behlendo 2008-06-28 05:04:46 +00:00
  • ff449ac406 Further slab improvements, I'm getting close to something which works well for the expected workloads. Improvement in this commit include: behlendo 2008-06-27 21:40:11 +00:00
  • e9d7a2bef5 Fix for memory corruption caused by overruning the magazine when repopulating it. Plus I fixed a few more suble races in that part of the code which were catching me. Finally I fixed a small race in kmem_test8. behlendo 2008-06-26 19:49:42 +00:00
  • 4afaaefa05 Implement per-cpu local caches. This seems to have bough me another factor of 10x improvement on SMP system due to reduced lock contention. This may put me in the ballpark of what is needed. We can still further improve things on NUMA systems by creating an additional L3 cache per memory node instead of the current global pool. With luck this won't be needed. I should also take another look at the locking now that everything is working. There's a good chance I can tighten it up a little bit and improve things a little more. behlendo 2008-06-25 20:57:45 +00:00
  • d46630e0f3 The first locking issue was due to the semaphore I used. I was trying to be overly clever and the context switch when the semaphore was busy was destroying performance. Converting to a simple spin lock bough me a factor of 50 or so. That said it's still not good enough. Tests show bad performance and we are still CPU bound. The logical fix is I need to implement per-cpu hot caches to minimize the SMP contention. Linux and Solaris both have this, I was hoping to do without but it looks like that's not to be. behlendo 2008-06-24 17:18:15 +00:00
  • 44b8f1769f Add another kmem test to check for lock contention in the slab allocator. I have serious contention issues here and I needed a way to easily measure how much the following batch of changes will improve things. Currently things are quite bad when the allocator is highly contended, and interestingly it seems to get worse in a non-linear fashion... I'm not sure why yet. I'll figure it out tomorrow. behlendo 2008-06-23 23:54:52 +00:00
  • 5cbd57fa91 Fix minor chaos/fc9 kernel discrepencies in build behlendo 2008-06-13 23:56:26 +00:00
  • 2fb9b26a85 * : modules/sys/kmem-slab.c : Re-implemented the slab to no longer be based on the linux slab but to be its own complete implementation. The new slab behaves much more like the Solaris slab than the Linux slab. behlendo 2008-06-13 23:41:06 +00:00
  • cfe5749941 Minor tweak to ensure kstat values are printed correctly on x86_64 at least Additionally fix a minor typo in the .ul ULONG case. behlendo 2008-06-06 23:11:34 +00:00
  • c58f753ddb Prep for 0.3.2 tag behlendo 2008-06-04 23:28:29 +00:00
  • 41cf38df92 Add missing () to quiet warnings in NDEBUG case behlendo 2008-06-04 22:52:13 +00:00
  • 3ce1bc96f9 Fix some bad grammer behlendo 2008-06-04 21:25:57 +00:00
  • 475cdc788e Just use CONFIG_SLUB to detect SLUB use Add ASSERTF to the NDEBUG build Fix minor issue with various debug build flags behlendo 2008-06-04 21:09:25 +00:00
  • a02118a89d Whoops, fix a minor proc issue which slipped through with the recent changes. Ensure the top level spl is removed. behlendo 2008-06-04 06:09:16 +00:00
  • c30df9c863 Fixes: behlendo 2008-06-04 06:00:46 +00:00
  • 691d2bd733 Update utsname to use proper compatible interface to avoid API issues. behlendo 2008-06-03 21:20:18 +00:00
  • 684f787474 Fix missing return resulting in a double unlock of &files->file_lock and a hang on subsequent sys_close. I'm not quite sure why the Fedora kernel caught this bug the Chaos kernel did not, but I'm glad! behlendo 2008-06-03 20:58:55 +00:00
  • fe81cb1c43 Add the minimal set of kernel patches need to for the SPL. Hopefully even these will not be needed over the next few weeks. behlendo 2008-06-02 19:45:04 +00:00