freebsd-nq/include
Brian Behlendorf 8b45dda2bc Linux 2.6.31 kmem cache alignment fixes and cleanup.
The big fix here is the removal of kmalloc() in kv_alloc().  It used
to be true in previous kernels that kmallocs over PAGE_SIZE would
always be pages aligned.  This is no longer true atleast in 2.6.31
there are no longer any alignment expectations.  Since kv_alloc()
requires the resulting address to be page align we no only either
directly allocate pages in the KMC_KMEM case, or directly call
__vmalloc() both of which will always return a page aligned address.
Additionally, to avoid wasting memory size is always a power of two.

As for cleanup several helper functions were introduced to calculate
the aligned sizes of various data structures.  This helps ensure no
case is accidentally missed where the alignment needs to be taken in
to account.  The helpers now use P2ROUNDUP_TYPE instead of P2ROUNDUP
which is safer since the type will be explict and we no longer count
on the compiler to auto promote types hopefully as we expected.

Always wnforce minimum (SPL_KMEM_CACHE_ALIGN) and maximum (PAGE_SIZE)
alignment restrictions at cache creation time.

Use SPL_KMEM_CACHE_ALIGN in splat alignment test.
2009-11-13 11:12:43 -08:00
..
asm Add autoconf checks for atomic64_cmpxchg + atomic64_xchg 2009-10-30 13:53:17 -07:00
fs Build system and packaging (RPM support) 2009-03-09 15:56:55 -07:00
linux Linux 2.6.31 Compatibility Updates 2009-11-10 14:06:57 -08:00
rpc Minor bug fix in XDR code introduced in last minute change before landing. 2009-03-11 16:27:35 -07:00
sharefs Build system and packaging (RPM support) 2009-03-09 15:56:55 -07:00
sys Linux 2.6.31 kmem cache alignment fixes and cleanup. 2009-11-13 11:12:43 -08:00
util Build system and packaging (RPM support) 2009-03-09 15:56:55 -07:00
vm Build system and packaging (RPM support) 2009-03-09 15:56:55 -07:00
Makefile.am Install spl-devel products in /usr/src/spl-SPL_VERSION/LINUX_VERSION/ 2009-06-26 16:30:44 -07:00
Makefile.in Simplify rpm build rules, added config/rpm.am. 2009-07-01 14:37:44 -07:00
spl-ctl.h Go through and add a header with the proper UCRL number. 2008-05-26 04:38:26 +00:00
spl-device.h SLES10 Fixes (part 5): 2009-05-20 11:54:40 -07:00
splat-ctl.h Add basic credential support and splat tests. 2009-07-27 17:18:59 -07:00
strings.h More stub headers, 2008-03-04 18:22:31 +00:00
unistd.h More stub headers, 2008-03-04 18:22:31 +00:00