1 2009-06-22 Brian Behlendorf <behlendorf1@llnl.gov>
5 * : Added SLES10 support. This includes all compatibility
6 changes to support 2.6.16 based kernels and the required
7 build system improvements.
9 * : Build System changes for SLES10:
10 - Exclude -obj when detecting installed kernel source.
11 - Detect -obj directory for out of tree kernel builds.
12 - Allow kernel build system to set CC to ensure -m64 is set properly.
13 This is an issue on 64-bit SLES systems which by default always
14 build 32-bit binaries (unlike RHEL/Fedora which default to 64-bit)
16 * : Configure Checks added for SLES10:
17 - div64_64() renamed to div64_u64() as of 2.6.26.
18 - global_page_state() fuction was introduced in 2.6.18 kernels.
19 The earlier 2.6.16 based SLES10 must not try and use it,
20 thankfully get_zone_counts() is still available.
21 - monotonic_clock() is unavailable __gethrtime() must perform the
22 HZ division as an 'unsigned long long' because the SPL only
23 implements __udivdi3(), and not __divdi3() for 'long long'
24 division on 32-bit arches.
25 - mutex_lock_nested() was introduced as part of the mutex
26 validator in 2.6.18, when it is unavailable it is safe to
27 fallback to using a plain mutex_lock().
28 - SLES specific API change to vfs_unlink() and vfs_rename() which
29 added a 'struct vfsmount *' argument. This was for something
30 called the linux-security-module, but it appears that it was
31 never adopted upstream.
32 - spl_device_create() correctly mapped to class_device_create()
33 for 2.6.13 to 2.6.17 based kernels, this is the preferred API.
34 - Prior to 2.6.17 there were no *_pgdat helper functions in
35 mm/mmzone.c. Instead for_each_zone() operated directly on
36 pgdat_list which may or may not have been exported depending on
37 how your kernel was compiled. A configure check was added to
38 determine if you have the helpers or not, and if the needed
39 symbols are exported. If they are not exported then they are
40 dynamically aquired at runtime by kallsyms_lookup_name().
42 * : Packaging changes for SLES10
43 - Properly honor --prefix in build system and rpm spec file.
44 - Add '--define require_kdir' to spec file to support building
45 rpms against kernel sources installed in non-default locations.
46 - Add '--define require_kobj' to spec file to support building
47 rpms against kernel object installed in non-default locations.
48 - Stop suppressing errors in autogen.sh script.
49 - Improved logic to detect missing kernel objects when they are
50 not located with the source. This is the common case for SLES
51 as well as in-tree chaos kernel builds and is done to simply
52 support for multiple arches.
53 - Moved spl-devel build products to /usr/src/spl-<version>, a
54 spl symlink is created to reference the last installed version.
55 - Allow checking for exported symbols in both Module.symvers
56 and Module.symvers. My stock SLES kernel ships an objects
57 directory with Module.symvers, yet produces a Module.symvers
58 in the local build directory.
60 * : Added powerpc64 support.
61 - Enable builds for powerpc64 ISA type.
62 - Add DIV_ROUND_UP and roundup macros if unavailable.
63 - Cast 64-bit values for %lld format string to (long long) to
64 quiet compile warning.
66 * module/splat/splat-ctl.c: Proper ioctl() 32/64-bit binary
67 compatibility. We need to ensure the ioctl data itself is always
68 packed the same for 32/64-bit binaries. Additionally, the correct
69 thing to do is encode this size in bytes as part of the command
72 * modules/spl/spl-kmem.c: Fixed a long standing bug in the debug
73 tracing. The tcd_for_each() macro expected a NULL to terminate
74 the trace_data[i] array but this was only ever true due to luck.
75 All trace_data[] iterators are now properly capped by TCD_TYPE_MAX.
77 * modules/spl/spl-kmem.c: To simplify debugging all symbols aquired
78 dynamically using spl_kallsyms_lookup_name() are initially poisoned
81 2009-03-20 Brian Behlendorf <behlendorf1@llnl.gov>
85 * configure.ac, *Makefile.am: Build system update. This includes
86 resolving various build issues and adding support for the remaining
87 common build targets. Available targets now include:
89 - make all # Build everything
90 - make install # Install everything
91 - make clean # Clean up build products
92 - make distclean # Clean up everything
93 - make dist # Create package tarball
94 - make srpm # Create package source RPM
95 - make rpm # Create package binary RPMs
96 - make tags # Create ctags and etags for everything
98 Extra care was taken to ensure that the source RPMs are fully
99 rebuildable against Fedora/RHEL/Chaos kernels. To build binary
100 RPMs from the source RPM for your system simply run:
102 rpmbuild --rebuild spl-x.y.z-1.src.rpm
104 This will produce two binary RPMs with correct 'requires'
105 dependencies for your kernel. One will contain all zpl modules
106 and support utilities, the other is a devel package for compiling
107 additional kernel modules which are dependent on the spl.
109 spl-x.y.z-1_<kernel version>.x86_64.rpm
110 spl-devel-x.y.2-1_<kernel version>.x86_64.rpm
112 * : FC10 (linux-2.6.27.19) and i686 compatibility update. The
113 list of support platforms has been extended to include FC10
114 systems and x86 architectures. It should be noted that kernels
115 older the 2.6.27.19 should work but have not have not been tested.
117 * configure.ac: Fix build issue preventing spl_config.h from being
118 cleanly included by dependent packages.
120 * module/spl/spl-taskq.c: Fix taskq_wait() not waiting bug.
122 * module/spl/spl-xdr.c: Add XDR implementation provided by Ricardo
125 * module/spl/spl-kmem.c: Linux VM integration cleanup.
127 * module/spl/spl-kmem.c: Slab cache improvements and fixes.
129 * modules/splat/*: Include additional SPLAT regression tests.
131 * : Various bug fixes are more clearly detailed in the git
132 commit logs. For a detailed summary of changes post version
133 0.4.2 check the git commit logs.
137 2009-02-05 Brian Behlendorf <behlendorf1@llnl.gov>
141 * module/spl/spl-kmem.c include/sys/kmem.h: Slab cache improvements:
142 - Implement kmem cache alignment.
143 - Implement slab ageing.
144 - Optimized slab packing algorithm.
145 - Fixed deadlock due to calling call kv_free() under the skc_lock.
146 - Added additional SPLAT test cases
147 - Performance optimizations
149 * module/spl/spl-kmem.c include/sys/kmem.h: Linux VM integration.
150 The Solaris global VM symbols minfree, desfree, lotsfree, needfree,
151 swapfs_minfree, swapfs_reserve, availrmem, freemem, and physmem are
152 now available and loosely integrating with the Linux VM. Some
153 tuning will undoubtably be needed and these tunables are available
154 in /proc/sys/kernel/spl/vm/* for this very reason.
156 * config/spl-build.m4: New configure checks needed when building
157 against 2.6.27+ kernels. More work is needed here.
159 * : Minor cleanup see the 'git log' for full details.
161 2009-01-21 Brian Behlendorf <behlendorf1@llnl.gov>
165 * : Implement ksid_*, ddi_strto*, and system taskq functionality.
166 In addition, several other small Solaris compatibility changes
167 were made, see the 'git log' for full details.
169 2008-11-26 Brian Behlendorf <behlendorf1@llnl.gov>
171 * : Tag spl-0.4.0 (Development now done with Git)
173 * : Imported SPL SVN repo in to Git Repo for core development.
175 2008-11-26 Brian Behlendorf <behlendorf1@llnl.gov>
179 * : Include META file support.
181 2008-11-05 Jim Garlick <garlick@llnl.gov>
183 * : Add autogen.sh products.
185 * configure.ac : Use AC_CONFIG_AUX_DIR to put autograph products
188 * autogen.sh : Use --copy to avoid symlinks, remove error
189 redirection, run aclocal before libtoolize.
191 2008-11-13 Brian Behlendorf <behlendorf1@llnl.gov>
193 * include/sys/sunddi.h, modules/spl/spl-module.c : Removed default
194 udev support from sunddi implementation because it uses GPL-only
195 symbols. This support is optionally available for SPL consumers
196 if they define HAVE_GPL_ONLY_SYMBOLS and license their module as
197 GPL using the MODULE_LICENSE("GPL") macro.
199 2008-11-05 Brian Behlendorf <behlendorf1@llnl.gov>
205 * : Patches from Ricardo M. Correia <Ricardo.M.Correia@sun.com>
206 applied with minor revisions:
208 spl-00-rm-gpl-symbol-notifier_chain.patch
209 spl-01-rm-gpl-symbol-set_cpus_allowed.patch
210 spl-02-rm-gpl-symbols-device.patch
211 spl-03-rm-gpl-symbol-ktime_get_ts.patch
212 spl-04-fix-taskq-spinlock-lockup.patch
214 spl-06-atomic64.patch
215 spl-07-kmem-cleanup.patch
216 spl-08-km-sleep-nofail.patch
217 spl-09-fix-kmem-track-oops.patch
218 spl-10-fix-assert-verify-ndebug.patch
220 2008-06-30 Brian Behlendorf <behlendorf1@llnl.gov>
224 * : modules/sys/kmem-slab.c : Refined SPL slab to include
225 per-cpu caches, removed internal hash, other general
226 performance improvements. Much work remain but it's pretty
227 good for an initial implementation.
229 2008-06-13 Brian Behlendorf <behlendorf1@llnl.gov>
231 * : modules/sys/kmem-slab.c : Re-implemented the slab to no
232 longer be based on the linux slab but to be it's own complete
233 implementation. The new slab behaves much more like the
234 Solaris slab than the Linux slab.
236 2008-06-04 Brian Behlendorf <behlendorf1@llnl.gov>
240 * : Extensive improvements to the build system to detect kernel
241 API changes so we can flexibly build with a wider range of kernel
242 versions. The code has now been testing with the 2.6.18-32chaos
243 and 2.6.25.3-18.fc9 kernels, however we should also be compatible
244 with other kernels in the range of 2.6.18-2.6.25.
246 2008-05-25 Brian Behlendorf <behlendorf1@llnl.gov>
248 * configure.ac, autoconf/* : Initial pass at resolving
249 API changes introduced by kernels newer than 2.6.18.
251 2008-05-21 Brian Behlendorf <behlendorf1@llnl.gov>
255 * : License headers including URCL added for release.
257 2008-05-21 Brian Behlendorf <behlendorf1@llnl.gov>
261 * configure.ac: Improved autotools support.
263 2008-04-26 Brian Behlendorf <behlendorf1@llnl.gov>
265 * include/sys/mutex.h : Implemented a close approximation
266 of adaptive mutexes. These changes however required me to
267 export a new symbol from the kernel proper 'task_curr()'
268 which means we are now dependant on a patched kernel.
270 2008-04-24 Brian Behlendorf <behlendorf1@llnl.gov>
274 * modules/spl/spl-proc.c : Add /proc/sys/spl/version.
276 2008-04-24 Herb Wartens <wartens2@llnl.gov>
278 * include/sys/kmem.h : Make sure that when calling __vmem_alloc
279 that we do not have __GFP_ZERO set. Once the memory is allocated
280 then zero out the memory if __GFP_ZERO is passed to
283 2008-04-16 Herb Wartens <wartens2@llnl.gov>
285 * modules/spl/spl-kmem.c : Make sure to disable interrupts
286 when necessary to avoid deadlocks. We were seeing the deadlock
287 when calling kmem_cache_generic_constructor() and then an interrupt
288 forced us to end up calling kmem_cache_generic_destructor()
289 which caused our deadlock.
291 2008-02-26 Brian Behlendorf <behlendorf1@llnl.gov>
293 : Initial commit of the solaris porting layer (spl). Included
294 in addition to the source is an initial autoconf / configure