]> git.proxmox.com Git - mirror_spl-debian.git/blob - ChangeLog
Spec file update, for some reason the following shorthand syntax
[mirror_spl-debian.git] / ChangeLog
1 2009-06-22 Brian Behlendorf <behlendorf1@llnl.gov>
2
3 * : Tag spl-0.4.4
4
5 * : Added SLES10 support. This includes all compatibility
6 changes to support 2.6.16 based kernels and the required
7 build system improvements.
8
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)
15
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().
41
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.
59
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.
65
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
70 using _IOC_SIZE().
71
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.
76
77 * modules/spl/spl-kmem.c: To simplify debugging all symbols aquired
78 dynamically using spl_kallsyms_lookup_name() are initially poisoned
79 with SYMBOL_POISON.
80
81 2009-03-20 Brian Behlendorf <behlendorf1@llnl.gov>
82
83 * : Tag spl-0.4.3
84
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:
88
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
97
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:
101
102 rpmbuild --rebuild spl-x.y.z-1.src.rpm
103
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.
108
109 spl-x.y.z-1_<kernel version>.x86_64.rpm
110 spl-devel-x.y.2-1_<kernel version>.x86_64.rpm
111
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.
116
117 * configure.ac: Fix build issue preventing spl_config.h from being
118 cleanly included by dependent packages.
119
120 * module/spl/spl-taskq.c: Fix taskq_wait() not waiting bug.
121
122 * module/spl/spl-xdr.c: Add XDR implementation provided by Ricardo
123 Correia from Sun.
124
125 * module/spl/spl-kmem.c: Linux VM integration cleanup.
126
127 * module/spl/spl-kmem.c: Slab cache improvements and fixes.
128
129 * modules/splat/*: Include additional SPLAT regression tests.
130
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.
134
135 git log -35
136
137 2009-02-05 Brian Behlendorf <behlendorf1@llnl.gov>
138
139 * : Tag spl-0.4.2
140
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
148
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.
155
156 * config/spl-build.m4: New configure checks needed when building
157 against 2.6.27+ kernels. More work is needed here.
158
159 * : Minor cleanup see the 'git log' for full details.
160
161 2009-01-21 Brian Behlendorf <behlendorf1@llnl.gov>
162
163 * : Tag spl-0.4.1
164
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.
168
169 2008-11-26 Brian Behlendorf <behlendorf1@llnl.gov>
170
171 * : Tag spl-0.4.0 (Development now done with Git)
172
173 * : Imported SPL SVN repo in to Git Repo for core development.
174
175 2008-11-26 Brian Behlendorf <behlendorf1@llnl.gov>
176
177 * : Tag spl-0.3.5
178
179 * : Include META file support.
180
181 2008-11-05 Jim Garlick <garlick@llnl.gov>
182
183 * : Add autogen.sh products.
184
185 * configure.ac : Use AC_CONFIG_AUX_DIR to put autograph products
186 in ./auotconf.
187
188 * autogen.sh : Use --copy to avoid symlinks, remove error
189 redirection, run aclocal before libtoolize.
190
191 2008-11-13 Brian Behlendorf <behlendorf1@llnl.gov>
192
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.
198
199 2008-11-05 Brian Behlendorf <behlendorf1@llnl.gov>
200
201 * : Tag spl-0.3.4
202
203 * : Coverity clean.
204
205 * : Patches from Ricardo M. Correia <Ricardo.M.Correia@sun.com>
206 applied with minor revisions:
207
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
213 spl-05-div64.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
219
220 2008-06-30 Brian Behlendorf <behlendorf1@llnl.gov>
221
222 * : Tag spl-0.3.3
223
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.
228
229 2008-06-13 Brian Behlendorf <behlendorf1@llnl.gov>
230
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.
235
236 2008-06-04 Brian Behlendorf <behlendorf1@llnl.gov>
237
238 * : Tag spl-0.3.2
239
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.
245
246 2008-05-25 Brian Behlendorf <behlendorf1@llnl.gov>
247
248 * configure.ac, autoconf/* : Initial pass at resolving
249 API changes introduced by kernels newer than 2.6.18.
250
251 2008-05-21 Brian Behlendorf <behlendorf1@llnl.gov>
252
253 * : Tag spl-0.3.1
254
255 * : License headers including URCL added for release.
256
257 2008-05-21 Brian Behlendorf <behlendorf1@llnl.gov>
258
259 * : Tag spl-0.3.0
260
261 * configure.ac: Improved autotools support.
262
263 2008-04-26 Brian Behlendorf <behlendorf1@llnl.gov>
264
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.
269
270 2008-04-24 Brian Behlendorf <behlendorf1@llnl.gov>
271
272 * : Tag spl-0.2.1
273
274 * modules/spl/spl-proc.c : Add /proc/sys/spl/version.
275
276 2008-04-24 Herb Wartens <wartens2@llnl.gov>
277
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
281 __vmem_alloc.
282
283 2008-04-16 Herb Wartens <wartens2@llnl.gov>
284
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.
290
291 2008-02-26 Brian Behlendorf <behlendorf1@llnl.gov>
292
293 : Initial commit of the solaris porting layer (spl). Included
294 in addition to the source is an initial autoconf / configure
295 style build system.