]> git.proxmox.com Git - mirror_spl-debian.git/blame - ChangeLog
Rebase cmn_err on vcmn_err and don't warn about missing \n
[mirror_spl-debian.git] / ChangeLog
CommitLineData
68ada11e
BB
12009-08-04 Brian Behlendorf <behlendorf1@llnl.gov>
2
3 * : Tag spl-0.4.5
4
5 * FC11 and SLES11 support: This includes all compatibility changes
6 to support 2.6.29 based kernels and the required build system
7 improvements.
8 * module/spl/spl-module.c: Register a basic compat ioctl handler
9 for 32-bit user vs 64-bit kernel compatibility. This is the default
10 build environment for all 64-bit SLES systems.
11 * config/spl-build.m4: Check arch/default path when detecting kernel
12 objects under SLES. We still preferentially use arch/arch if
13 available but if that fails it is acceptable to use default.
14 * module/spl/spl-vnode.: Use HAVE_PATH_IN_NAMEIDATA compat macros
15 for maximum kernel compatibility.
16 * config/spl-build.m4: Remove LINUXINCLUDE from autoconf wrapper.
17 This breaks the 2.6.28+ kernels build system, all kernel build systems
18 at least post 2.6.16 will set this properly so we should not.
19 * include/sys/vmsystm.h, module/spl/spl-kmem.c: Perferentially use the
20 global_page_state() API when your kernel supports the required enums.
21 * include/sys/debug.h: Add ASSERTV macro to simplify removing
22 variables (the V in ASSERTV) which are only used in ASSERT().
23 * include/sys/debug.h: Disable stack overflow checking by default
24 when build with --enable-debug, modern kernels now provide this.
25 * patches/fc11-spl-export-symbols.patch: Recommended missing symbols
26 patch for FC11. This is not required for correct functionality but
27 it is recommended for individuals who are already patching the kernel.
28
29 * Additional Solaris API emulation:
30 * include/sys/taskq.h: Add basic taskq support for the flag
31 TASKQ_THREADS_CPU_PCT which is used to scale the number of threads
32 based on the number of online CPUs.
33 * include/sys/file.hi, module/spl/spl-generic.c: Add support for
34 fake ioctls which originate from the kernel instead of user space.
35 * include/sys/acl.h: Add ACE_ALL_PERMS ACL definition.
36 * include/sys/cred.h, module/splat/splat-cred.c: Add basic credential
37 support and splat regression tests.
38
39 * Bug fixes:
40 * include/sys/isa_defs.h: Add more endianess paranoia.
41 * module/spl/spl-time.c: Integer overflow after ~164 days.
42 * include/sys/debug.h: NULL dereference by tcd_for_each().
43 * module/splat/splat-kmem.c: Allow kmem or vmem based slabs for
44 slab_lock and slab_overcommit tests. This may still be an issue on
45 32-bit systems due to the small virtual address space.
46 * module/spl/spl-module.c: Positive Solaris ioctl return codes are
47 need to be negated for use by libc to ensure errno is set correctly.
48
aaad2f72 492009-07-02 Brian Behlendorf <behlendorf1@llnl.gov>
762b96f6
BB
50
51 * : Tag spl-0.4.4
52
aaad2f72 53 * : Generic distro friendly build system / packaging improvements
68ada11e 54 for rpm based distros including CHAOS, RHEL, Fedora, and SLES.
aaad2f72
BB
55
56 spl-<version>.src.rpm
57 - Fully rebuildable source rpm for utils.
58 spl-modules-<version>.src.rpm
59 - Fully rebuildable source rpm for kernel modules.
60
61 spl-<version>.<arch>.rpm
62 - Binary rpm for utils. The utils in this package are compatible
63 with all spl-module rpms of the same version.
64
65 spl-modules-<verion>-<kernel>.arch.rpm
66 - Binary rpm containing the kernel modules for a specific kernel build.
67 The package name contains the kernel version and you should have one
68 of these packages installed to match every kernel on your system.
69 spl-modules-devel-<verion>-<kernel>.arch.rpm
70 - Binary rpm containing development header and module symbols needed
71 for building additional kernel modules which are dependent on the
72 spl module.
73
762b96f6
BB
74 * : Added SLES10 support. This includes all compatibility
75 changes to support 2.6.16 based kernels and the required
76 build system improvements.
77
78 * : Build System changes for SLES10:
79 - Exclude -obj when detecting installed kernel source.
80 - Detect -obj directory for out of tree kernel builds.
81 - Allow kernel build system to set CC to ensure -m64 is set properly.
82 This is an issue on 64-bit SLES systems which by default always
83 build 32-bit binaries (unlike RHEL/Fedora which default to 64-bit)
84
85 * : Configure Checks added for SLES10:
86 - div64_64() renamed to div64_u64() as of 2.6.26.
87 - global_page_state() fuction was introduced in 2.6.18 kernels.
88 The earlier 2.6.16 based SLES10 must not try and use it,
89 thankfully get_zone_counts() is still available.
90 - monotonic_clock() is unavailable __gethrtime() must perform the
91 HZ division as an 'unsigned long long' because the SPL only
92 implements __udivdi3(), and not __divdi3() for 'long long'
93 division on 32-bit arches.
94 - mutex_lock_nested() was introduced as part of the mutex
95 validator in 2.6.18, when it is unavailable it is safe to
96 fallback to using a plain mutex_lock().
97 - SLES specific API change to vfs_unlink() and vfs_rename() which
98 added a 'struct vfsmount *' argument. This was for something
99 called the linux-security-module, but it appears that it was
100 never adopted upstream.
101 - spl_device_create() correctly mapped to class_device_create()
102 for 2.6.13 to 2.6.17 based kernels, this is the preferred API.
103 - Prior to 2.6.17 there were no *_pgdat helper functions in
104 mm/mmzone.c. Instead for_each_zone() operated directly on
105 pgdat_list which may or may not have been exported depending on
106 how your kernel was compiled. A configure check was added to
107 determine if you have the helpers or not, and if the needed
108 symbols are exported. If they are not exported then they are
109 dynamically aquired at runtime by kallsyms_lookup_name().
110
111 * : Packaging changes for SLES10
112 - Properly honor --prefix in build system and rpm spec file.
113 - Add '--define require_kdir' to spec file to support building
114 rpms against kernel sources installed in non-default locations.
115 - Add '--define require_kobj' to spec file to support building
116 rpms against kernel object installed in non-default locations.
117 - Stop suppressing errors in autogen.sh script.
118 - Improved logic to detect missing kernel objects when they are
119 not located with the source. This is the common case for SLES
120 as well as in-tree chaos kernel builds and is done to simply
121 support for multiple arches.
122 - Moved spl-devel build products to /usr/src/spl-<version>, a
123 spl symlink is created to reference the last installed version.
124 - Allow checking for exported symbols in both Module.symvers
125 and Module.symvers. My stock SLES kernel ships an objects
126 directory with Module.symvers, yet produces a Module.symvers
127 in the local build directory.
128
129 * : Added powerpc64 support.
130 - Enable builds for powerpc64 ISA type.
131 - Add DIV_ROUND_UP and roundup macros if unavailable.
132 - Cast 64-bit values for %lld format string to (long long) to
133 quiet compile warning.
134
135 * module/splat/splat-ctl.c: Proper ioctl() 32/64-bit binary
136 compatibility. We need to ensure the ioctl data itself is always
137 packed the same for 32/64-bit binaries. Additionally, the correct
138 thing to do is encode this size in bytes as part of the command
139 using _IOC_SIZE().
140
141 * modules/spl/spl-kmem.c: Fixed a long standing bug in the debug
142 tracing. The tcd_for_each() macro expected a NULL to terminate
143 the trace_data[i] array but this was only ever true due to luck.
144 All trace_data[] iterators are now properly capped by TCD_TYPE_MAX.
145
146 * modules/spl/spl-kmem.c: To simplify debugging all symbols aquired
147 dynamically using spl_kallsyms_lookup_name() are initially poisoned
148 with SYMBOL_POISON.
149
f8b2932a
BB
1502009-03-20 Brian Behlendorf <behlendorf1@llnl.gov>
151
152 * : Tag spl-0.4.3
153
154 * configure.ac, *Makefile.am: Build system update. This includes
155 resolving various build issues and adding support for the remaining
156 common build targets. Available targets now include:
157
158 - make all # Build everything
159 - make install # Install everything
160 - make clean # Clean up build products
161 - make distclean # Clean up everything
162 - make dist # Create package tarball
163 - make srpm # Create package source RPM
164 - make rpm # Create package binary RPMs
165 - make tags # Create ctags and etags for everything
166
167 Extra care was taken to ensure that the source RPMs are fully
168 rebuildable against Fedora/RHEL/Chaos kernels. To build binary
169 RPMs from the source RPM for your system simply run:
170
171 rpmbuild --rebuild spl-x.y.z-1.src.rpm
172
173 This will produce two binary RPMs with correct 'requires'
174 dependencies for your kernel. One will contain all zpl modules
175 and support utilities, the other is a devel package for compiling
176 additional kernel modules which are dependent on the spl.
177
178 spl-x.y.z-1_<kernel version>.x86_64.rpm
179 spl-devel-x.y.2-1_<kernel version>.x86_64.rpm
180
181 * : FC10 (linux-2.6.27.19) and i686 compatibility update. The
182 list of support platforms has been extended to include FC10
183 systems and x86 architectures. It should be noted that kernels
184 older the 2.6.27.19 should work but have not have not been tested.
185
186 * configure.ac: Fix build issue preventing spl_config.h from being
187 cleanly included by dependent packages.
188
189 * module/spl/spl-taskq.c: Fix taskq_wait() not waiting bug.
190
191 * module/spl/spl-xdr.c: Add XDR implementation provided by Ricardo
192 Correia from Sun.
193
194 * module/spl/spl-kmem.c: Linux VM integration cleanup.
195
196 * module/spl/spl-kmem.c: Slab cache improvements and fixes.
197
198 * modules/splat/*: Include additional SPLAT regression tests.
199
200 * : Various bug fixes are more clearly detailed in the git
201 commit logs. For a detailed summary of changes post version
202 0.4.2 check the git commit logs.
203
204 git log -35
205
e50ad76d
BB
2062009-02-05 Brian Behlendorf <behlendorf1@llnl.gov>
207
208 * : Tag spl-0.4.2
209
210 * module/spl/spl-kmem.c include/sys/kmem.h: Slab cache improvements:
211 - Implement kmem cache alignment.
212 - Implement slab ageing.
213 - Optimized slab packing algorithm.
214 - Fixed deadlock due to calling call kv_free() under the skc_lock.
215 - Added additional SPLAT test cases
216 - Performance optimizations
217
218 * module/spl/spl-kmem.c include/sys/kmem.h: Linux VM integration.
219 The Solaris global VM symbols minfree, desfree, lotsfree, needfree,
220 swapfs_minfree, swapfs_reserve, availrmem, freemem, and physmem are
221 now available and loosely integrating with the Linux VM. Some
222 tuning will undoubtably be needed and these tunables are available
223 in /proc/sys/kernel/spl/vm/* for this very reason.
224
225 * config/spl-build.m4: New configure checks needed when building
226 against 2.6.27+ kernels. More work is needed here.
227
228 * : Minor cleanup see the 'git log' for full details.
229
064bbffb
BB
2302009-01-21 Brian Behlendorf <behlendorf1@llnl.gov>
231
232 * : Tag spl-0.4.1
233
234 * : Implement ksid_*, ddi_strto*, and system taskq functionality.
235 In addition, several other small Solaris compatibility changes
236 were made, see the 'git log' for full details.
237
895ff83c
BB
2382008-11-26 Brian Behlendorf <behlendorf1@llnl.gov>
239
240 * : Tag spl-0.4.0 (Development now done with Git)
241
242 * : Imported SPL SVN repo in to Git Repo for core development.
243
dd529a30 2442008-11-26 Brian Behlendorf <behlendorf1@llnl.gov>
245
246 * : Tag spl-0.3.5
247
248 * : Include META file support.
249
bf9f3bac 2502008-11-05 Jim Garlick <garlick@llnl.gov>
251
252 * : Add autogen.sh products.
253
f8b2932a 254 * configure.ac : Use AC_CONFIG_AUX_DIR to put autograph products
bf9f3bac 255 in ./auotconf.
256
257 * autogen.sh : Use --copy to avoid symlinks, remove error
258 redirection, run aclocal before libtoolize.
259
6a1c3d41 2602008-11-13 Brian Behlendorf <behlendorf1@llnl.gov>
261
262 * include/sys/sunddi.h, modules/spl/spl-module.c : Removed default
263 udev support from sunddi implementation because it uses GPL-only
264 symbols. This support is optionally available for SPL consumers
265 if they define HAVE_GPL_ONLY_SYMBOLS and license their module as
266 GPL using the MODULE_LICENSE("GPL") macro.
267
5457aee1 2682008-11-05 Brian Behlendorf <behlendorf1@llnl.gov>
269
270 * : Tag spl-0.3.4
271
272 * : Coverity clean.
273
274 * : Patches from Ricardo M. Correia <Ricardo.M.Correia@sun.com>
275 applied with minor revisions:
276
277 spl-00-rm-gpl-symbol-notifier_chain.patch
278 spl-01-rm-gpl-symbol-set_cpus_allowed.patch
279 spl-02-rm-gpl-symbols-device.patch
280 spl-03-rm-gpl-symbol-ktime_get_ts.patch
281 spl-04-fix-taskq-spinlock-lockup.patch
282 spl-05-div64.patch
283 spl-06-atomic64.patch
284 spl-07-kmem-cleanup.patch
285 spl-08-km-sleep-nofail.patch
286 spl-09-fix-kmem-track-oops.patch
287 spl-10-fix-assert-verify-ndebug.patch
288
3ba97a67 2892008-06-30 Brian Behlendorf <behlendorf1@llnl.gov>
290
291 * : Tag spl-0.3.3
292
293 * : modules/sys/kmem-slab.c : Refined SPL slab to include
294 per-cpu caches, removed internal hash, other general
295 performance improvements. Much work remain but it's pretty
296 good for an initial implementation.
297
2fb9b26a 2982008-06-13 Brian Behlendorf <behlendorf1@llnl.gov>
299
300 * : modules/sys/kmem-slab.c : Re-implemented the slab to no
301 longer be based on the linux slab but to be it's own complete
302 implementation. The new slab behaves much more like the
303 Solaris slab than the Linux slab.
304
c58f753d 3052008-06-04 Brian Behlendorf <behlendorf1@llnl.gov>
306
307 * : Tag spl-0.3.2
308
309 * : Extensive improvements to the build system to detect kernel
310 API changes so we can flexibly build with a wider range of kernel
311 versions. The code has now been testing with the 2.6.18-32chaos
312 and 2.6.25.3-18.fc9 kernels, however we should also be compatible
313 with other kernels in the range of 2.6.18-2.6.25.
314
57d86234 3152008-05-25 Brian Behlendorf <behlendorf1@llnl.gov>
316
317 * configure.ac, autoconf/* : Initial pass at resolving
318 API changes introduced by kernels newer than 2.6.18.
319
65a045da 3202008-05-21 Brian Behlendorf <behlendorf1@llnl.gov>
321
322 * : Tag spl-0.3.1
323
324 * : License headers including URCL added for release.
325
b2585b36 3262008-05-21 Brian Behlendorf <behlendorf1@llnl.gov>
327
328 * : Tag spl-0.3.0
329
330 * configure.ac: Improved autotools support.
331
9ab1ac14 3322008-04-26 Brian Behlendorf <behlendorf1@llnl.gov>
333
334 * include/sys/mutex.h : Implemented a close approximation
335 of adaptive mutexes. These changes however required me to
336 export a new symbol from the kernel proper 'task_curr()'
337 which means we are now dependant on a patched kernel.
338
3561541c 3392008-04-24 Brian Behlendorf <behlendorf1@llnl.gov>
340
341 * : Tag spl-0.2.1
342
343 * modules/spl/spl-proc.c : Add /proc/sys/spl/version.
344
1bac409f 3452008-04-24 Herb Wartens <wartens2@llnl.gov>
346
347 * include/sys/kmem.h : Make sure that when calling __vmem_alloc
348 that we do not have __GFP_ZERO set. Once the memory is allocated
349 then zero out the memory if __GFP_ZERO is passed to
350 __vmem_alloc.
351
55152ebb 3522008-04-16 Herb Wartens <wartens2@llnl.gov>
353
354 * modules/spl/spl-kmem.c : Make sure to disable interrupts
355 when necessary to avoid deadlocks. We were seeing the deadlock
356 when calling kmem_cache_generic_constructor() and then an interrupt
357 forced us to end up calling kmem_cache_generic_destructor()
358 which caused our deadlock.
359
f1ca4da6 3602008-02-26 Brian Behlendorf <behlendorf1@llnl.gov>
361
362 : Initial commit of the solaris porting layer (spl). Included
363 in addition to the source is an initial autoconf / configure
364 style build system.