[Pkg-zfsonlinux-devel] WIP branch for SPL 0.7.0
Fabian Grünbichler
f.gruenbichler at proxmox.com
Thu Aug 10 12:41:29 UTC 2017
hello,
I started a WIP branch for updating the spl packages in unstable to 0.7.
I did some rough testing together with my WIP branch for ZFS 0.7.0, and
basic operations seem to work fine.
feedback (and further work based on this) welcome.
not done in my branch/tag:
- check d/copyright for updates
- generate new changelog
- incorporate man page fixes I submitted upstream to get rid of some
lintian warnings
The following changes since commit b6358351cca47024ffb421bf986f2a949608188e:
Update changelog for new upstream release (2017-07-17 14:18:30 +0800)
are available in the git repository at:
https://github.com/Fabian-Gruenbichler/spl.git tags/debian/wip-0.7-v1
for you to fetch changes up to a53f8da59809ad753eaf301a7a050cc847de1c14:
Merge tag 'spl-0.7.0' into test (2017-08-08 09:09:32 +0200)
----------------------------------------------------------------
Alex McWhirter (1):
_ILP32 is always defined on SPARC
Alexander Pyhalov (1):
Fix modules installation directory
Andrey Vesnovaty (2):
Expose max/min objs per slab and max slab size
Evenly distribute the taskq threads across available CPUs
Boris Protopopov (1):
Add a script to display SPL slab cache statistics
Brian Behlendorf (138):
Automake 1.10.1 compat: AM_SILENT_RULES
Replace the SPL_AC_META perl dependency with awk
Add additional dependencies for DKMS package
Add msec/usec/nsec to tick convertors
Fix delay()
Fix taskq_wait_id()
Add ASSERT0 and VERIFY0 macros
Fix ASSERT0 and VERIFY0 macro typo
Merge branch 'linux-3.10'
Fix --enable-debug-kmem-tracking option
Fix bogus kmem leak warning
Improve build instructions
Return -1 for generic kmem cache shrinker
Fix KMC_OFFSLAB type caches
Add kmod repo integration
Tag spl-0.6.2
Consistently use local_irq_disable/local_irq_enable
Revert "Add KSTAT_TYPE_TXG type"
Merge branch 'kstat'
Retroactively fix bogus %changelog date
Add module versioning
Include linux/vmalloc.h for ARM and Sparc
Remove default taskq thread to CPU bindings
Remove incorrect use of EXTRA_DIST for man pages
splat kmem:slab_reclaim: Test cleanup
splat cred:groupmember: Fix false positives
Add KMC_SLAB cache type
Add spl_kmem_cache_reclaim module option
Restrict release number to META version
Fix DKMS package upgrade and packager
Tag spl-0.6.3
Rate limit debugging stack traces
Set spl_kmem_cache_reclaim=0 to default
Set spl_kmem_cache_slab_limit=16384 to default
Fix bug in SPLAT taskq:front
Make license compatibility checks consistent
Update SPLAT to use kmutex_t for portability
Update code to use misc_register()/misc_deregister()
Remove patches directory
Remove adaptive mutex implementation
Remove sysctl_vfs_cache_pressure assumption
Remove utsname() wrapper
Remove register_sysctl() compatibility code
Remove CTL_UNNUMBERED sysctl interface
Map highbit64() to fls64()
Simplify the time compatibility wrappers
Remove atomic64_xchg() wrappers
Remove uintptr_t typedef
Remove linux/uaccess.h header check
Remove kmalloc_node() compatibility code
Remove i_mutex() configure check
Remove mutex_lock_nested() wrapper
Remove on_each_cpu() wrapper
Remove get_vmalloc_info() wrapper
Remove global memory variables
Remove shrink_{i,d}node_cache() wrappers
Remove kallsyms_lookup_name() wrapper
Remove user_path_dir() wrapper
Remove set_fs_pwd() configure check
Add vfs_unlink() and vfs_rename() comments
Remove credential configure checks.
Update put_task_struct() comments
Remove proc_handler() wrapper
Remove kvasprintf() wrapper
Remove kern_path() wrapper
Remove vfs_fsync() wrapper
Merge branch 'cleanup'
Lower minimum objects/slab threshold
Retire legacy debugging infrastructure
Fix debug object on stack warning
Refactor existing code
Fix kmem cstyle issues
Refactor generic memory allocation interfaces
Make slab reclaim more aggressive
Update spl-module-parameters(5) man page
Reduce kmem cache deadlock threshold
Refine slab cache sizing
Fix kmem cache deadlock logic
Use __get_free_pages() for emergency objects
Merge branch 'kmem-rework'
Fix GFP_KERNEL allocations flags
Optimize vmem_alloc() retry path
Retire spl_module_init()/spl_module_fini()
Fix cstyle issue in mutex.h
Retire MUTEX_OWNER checks
Add MUTEX_FSTRANS mutex type
Reduce splat_taskq_test2_impl() stack frame size
Remove rpm/fedora directory
Add RHEL style kmod packages
Clear PF_FSTRANS over vfs_sync()
Tag spl-0.6.4
Fix cstyle issues in spl-tsd.c
Add boot_ncpus macro
Retire rwsem_is_locked() compat
Rename cv_wait_interruptible() to cv_wait_sig()
Add IMPLY() and EQUIV() macros
Add TASKQ_DYNAMIC feature
Set TASKQ_DYNAMIC for kmem and system taskqs
Add memory compatibility wrappers
Default to --disable-debug-kmem
Add defclsyspri macro
Remove skc_ref from alloc/free paths
Invert minclsyspri and maxclsyspri
Remove needfree, desfree, lotsfree #defines
Linux 4.2 compat: vfs_rename()
Revert "Create a new thread during recursive taskq dispatch if necessary"
Linux 4.2 compat: misc_deregister()
Tag spl-0.6.5
Fix PAX Patch/Grsec SLAB_USERCOPY panic
Fix spl-dkms uninstall/update
Fix CPU hotplug
Limit maximum object size in kmem tests
Fix --enable-linux-builtin
Revert "Make taskq_member() use ->journal_info"
Either _ILP32 or _LP64 must be defined
Fix cstyle issues in spl-taskq.c and taskq.h
Revert "Skip GPL-only symbols test when cross-compiling"
Fix do_div() types in condvar:timeout
Add spl_kmem_cache_kmem_threads man page entry
Linux 4.5 compat: pfn_t typedef
Remove RLIM64_INFINITY assert in vn_rdwr()
Remove RPM package restriction
Add rw_tryupgrade()
Linux 4.8 compat: rw_semaphore atomic_long_t count
Tag 0.7.0-rc1
Increase spl_kmem_alloc_warn limit
Fix automatically generated release number
Fix aarch64 type warning
Fix p0 initializer
Tag 0.7.0-rc2
Tag 0.7.0-rc3
Fix powerpc build
Tag 0.7.0-rc4
Fix cv_timedwait timeout
Don't cache the system hostid
Tag 0.7.0-rc5
Linux 4.13 compat: wait queues
Tag spl-0.7.0
Chip Parker (1):
Ensure spl/ only occurs once in core-y
Chris Dunlop (2):
Add crgetzoneid() stub
Make taskq_wait() block until the queue is empty
Chunwei Chen (38):
Add ddi_time_after and friends
Fix crash when using ZFS on Ceph rbd
Linux 3.15 compat: NICE_TO_PRIO and PRIO_TO_NICE
Linux 3.15: vfs_rename() added a flags argument
mutex: force serialization on mutex_exit() to fix races
Fix spl_hostid module parameter
Make tsd_set(key, NULL) remove the tsd entry for current thread
Restructure uio to accommodate bio_vec
Don't take spin lock on rwlock owner
rwsem use kernel provided owner when possible
Use tab indent in rwlock.h
Don't call kmem_cache_shrink from shrinker
Don't use tq->tq_lock_flags
Use spl_fstrans_mark instead of memalloc_noio_save
Don't hold mutex until release cv in cv_wait
Turn on both PF_FSTRANS and PF_MEMALLOC_NOIO in spl_fstrans_mark
Use tsd to store tq for taskq_member
Allow kicking a taskq to spawn more threads
Use kernel provided mutex owner
Add cv_timedwait_sig_hires to allow interruptible sleep
Linux 4.7 compat: inode_lock() and friends
Restore CALLOUT_FLAG_ABSOLUTE in cv_timedwait_hires
Fix race between taskq_destroy and dynamic spawning thread
Fix taskq_wait_outstanding re-evaluate tq_next_id
Implement a proper rw_tryupgrade
Fix use-after-free in splat_taskq_test7
Fix crgetgroups out-of-bound and misc cred fix
Fix splat-cred.c cred usage
Linux 4.9 compat: group_info changes
Limit number of tasks shown in taskq proc
Add system_delay_taskq for long delay
Fix splat memleak
Refactor some splat macro to function
Use kernel slab for vn_cache and vn_file_cache
Linux 4.12 compat: PF_FSTRANS was removed
Improve gitignore
config: allow --with-linux without --with-linux-obj
Fix RWSEM_SPINLOCK_IS_RAW check failed
Clemens Fruhwirth (2):
Remove stale comment from rw_tryupgrade()
Add support for rw semaphore under PREEMPT_RT_FULL
Cyril Plisko (2):
Kstat to use private lock by default
Tighten spl dependency on spl-kmod
David Quigley (2):
Add a macro to convert seconds to nanoseconds and vice-versa
Add a PAGESHIFT definition
Dimitri John Ledkov (2):
spl-kmem-cache: include linux/prefetch.h for prefetchw()
Add support for s390[x].
Etienne Dechamps (1):
Fix various generic kmod RPM spec issues.
Fabian Grünbichler (1):
Merge tag 'spl-0.7.0' into test
GeLiXin (1):
Fix: handle NULL case in spl_kmem_free_track()
George Melikov (1):
Remove identical if statements in module/spl/spl-vnode.c
Hajo Möller (1):
Fix warning about AM_INIT_AUTOMAKE arguments
James H (1):
Modify gethrestime to use current_kernel_time()
Jan Engelhardt (4):
build: resolve orthographic and other grammatical errors
build: use CPPFLAGS
gitignore: anchor entries at their respective directory
build: do not call boilerplate ourself
Jason Zaman (1):
sysmacros: Make P2ROUNDUP not trigger int overflow
Jinshan Xiong (1):
Improve spl slab cache alloc
Jorgen Lundman (1):
Add support for aarch64 (ARMv8)
Kamil Domanski (1):
Skip GPL-only symbols test when cross-compiling
Kamil Domański (1):
Skip GPL-only symbols test when cross-compiling
Kevin Tanguy (1):
Add support for recent kmem_cache_create_usercopy
Kohsuke Kawaguchi (1):
Document how to run SPLAT
LOLi (1):
Avoid WARN() from procfs on kstat collision
Marcel Wysocki (1):
Add config/compile to config/.gitignore
Matthew Thode (1):
Copy spl.release.in to kernel dir
Nathaniel Clark (1):
Add --buildroot option to kmod build
Ned Bass (5):
Add kpreempt() compatibility macro
3537 add kstat_waitq_enter and friends
Emulate illumos interface cv_timedwait_hires()
Linux 3.17 compat: remove wait_on_bit action function
Remove compat includes from sys/types.h
Nikolay Borisov (2):
Add gitignore entry for spl-*.o.d files
Add handling for kernel 4.7's CONFIG_TRIM_UNUSED_KSYMS
Olaf Faaland (9):
Add new lock types MUTEX_NOLOCKDEP, and RW_NOLOCKDEP
Fix lockdep warning in spl_inode_{lock,unlock}
Subclass tq_lock to eliminate a lockdep warning
Create spl-kmod-debuginfo rpm with redhat spec file
Linux 4.11 compat: set_task_state() removed
Linux 4.11 compat: vfs_getattr() takes 4 args
Linux 4.11 compat: add linux/sched/signal.h
Linux 4.11 compat: remove stub for __put_task_struct
glibc 2.25 compat: remove assert(X=Y)
Oleg Drokin (1):
Module parameter to enable spl_panic() to panic the kernel
Prakash Surya (3):
Add callbacks for displaying KSTAT_TYPE_RAW kstats
Add wrappers for accessing PID and command info
Add ASSERT3B/VERIFY3B/USEC2NSEC/NSEC2USEC macros
RageLtMan (1):
Update struct member intializers to C89
Richard Yao (25):
Linux 3.10 compat: Do not rely on struct proc_dir_entry definition
Linux 3.11 compat: Replace num_physpages with totalram_pages
Fix race in spl_kmem_cache_reap_now()
PaX/GrSecurity Linux 3.8.y compat: Use __no_const on struct ctl_table
Linux 3.8 compat: Use kuid_t/kgid_t when required
Replace current_kernel_time() with getnstimeofday()
Define SET_ERROR()
Linux 3.12 compat: New shrinker API
Linux 3.13 compat: Remove unused flags variable from __cv_init()
Linux 3.13 compat: Pass NULL for new delegated inode argument
Simplify hostid logic
Change spl_kmem_cache_expire default setting to 2
Cleanup vn_rename() and vn_remove()
kmem_cache: Call constructor/destructor on each alloc/free
Kernel header installation should respect --prefix
Revert "Add PF_NOFS debugging flag"
Add hooks for disabling direct reclaim
Enforce architecture-specific barriers around clear_bit()
vn_getf/vn_releasef should not accept negative file descriptors
Implement areleasef()
Disable direct reclaim in taskq worker threads on Linux 3.9+
Fix race between getf() and areleasef()
Make taskq_member() use ->journal_info
kobj_read_file: Return -1 on vn_rdwr() error
random_get_pseudo_bytes() need not provide cryptographic strength entropy
Tim Chase (21):
Fix --enable-debug-kmem-tracking option
Support post-3.13 kthread_create() semantics.
De-inline spl_kthread_create().
Call kthread_create() correctly with fixed arguments.
Safer debugging and assertion macros.
Add functions and macros as used upstream.
Add atomic_swap_32() and atomic_swap_64()
Linux 3.12 compat: shrinker semantics
Use current_kernel_time() in the time compatibility wrappers
Add mutex_enter_nested() which maps to mutex_lock_nested()
Set HAVE_FS_STRUCT_SPINLOCK correctly when CONFIG_FRAME_WARN==1024
Don't allow shrinking a PF_FSTRANS context
Include other sources of freeable memory in the freemem calculation
Create a new thread during recursive taskq dispatch if necessary
Create a new thread during recursive taskq dispatch if necessary
Additional dkio support for TRIM/Discard
Provide kstat for taskqs
Allow spawning a new thread for TQ_NOQUEUE dispatch with dynamic taskq
Use vmem_free() in dfl_free() and add dfl_alloc()
Clear PF_FSTRANS over spl_filp_fallocate()
Fix HAVE_MUTEX_OWNER test for kernels prior to 4.6
Tom Caputi (2):
Changes to support zfs encryption
Added highbit() and lowbit() macros
Tom Prince (1):
Install header during post-build rather than post-install.
Tony Hutter (1):
Add _ALIGNMENT_REQUIRED to isa_defs.h for checksums
Turbo Fredriksson (7):
Support .nogitrelease file
Add --bump=0 to alien
Ignore *.{deb,rpm,tar.gz} files in the top directory.
Document SPL module parameters.
Set LANG to a reasonable default (C)
Linux 3.16 compat: smp_mb__after_clear_bit()
Support parallel build trees (VPATH builds)
Ubuntu (2):
Fix vmem_size()
Add TASKQID_INVALID and TASKQID_INITIAL macros
YunQiang Su (1):
Add isa_defs for MIPS
Yuxuan Shui (4):
Linux 3.10 compat: struct vmalloc_info moved
Linux 3.10 compat: replace PDE()->data with PDE_DATA()
Linux 3.10 compat: add missing include of linux/slab.h
This patch add a CTASSERT macro for compile time assertion.
clefru (1):
Reimplement rt_mutex_owner to fix build with DEBUG & PREEMPT_RT_FULL
legend-hua (1):
Fix spl check.sh script
loli10K (1):
Remove superfluous `newline` character
marku89 (1):
Define the needed ISA types for Sparc
stf (1):
Avoid PAGESIZE redefinition
tuxoko (5):
Fix taskq dynamic spawning
Prevent rm modules.* when make install
Cleanup in cred.h
Linux 4.8 compat: Fix RW_READ_HELD
Fix out-of-bound in per_cpu in spl_random_init
zgock (1):
Fix build issue on some configured kernels
configure.ac | 2 +
configure | 20970 -------------------------------------
Makefile.in | 1083 --
cmd/Makefile.am | 12 +-
cmd/Makefile.in | 601 --
cmd/splat/Makefile.am | 11 +
cmd/splslab/Makefile.am | 2 +
include/Makefile.in | 679 --
include/fs/Makefile.in | 520 -
include/linux/Makefile.in | 540 -
include/rpc/Makefile.in | 522 -
include/sharefs/Makefile.in | 520 -
include/sys/Makefile.am | 1 +
include/sys/Makefile.in | 868 --
include/sys/fm/Makefile.in | 522 -
include/sys/fs/Makefile.in | 520 -
include/sys/sysevent/Makefile.in | 521 -
include/util/Makefile.in | 522 -
include/vm/Makefile.in | 524 -
lib/Makefile.in | 556 -
man/Makefile.in | 616 --
man/man1/Makefile.in | 500 -
man/man5/Makefile.in | 500 -
rpm/Makefile.in | 616 --
rpm/generic/Makefile.in | 422 -
rpm/redhat/Makefile.in | 422 -
scripts/Makefile.in | 417 -
cmd/{ => splat}/splat.h | 0
include/linux/rwsem_compat.h | 9 +-
include/linux/wait_compat.h | 9 +
include/sys/byteorder.h | 23 +
include/sys/condvar.h | 8 +-
include/sys/cred.h | 12 -
include/sys/debug.h | 5 +
include/sys/dkio.h | 18 +-
include/sys/dkioc_free_util.h | 58 +
include/sys/isa_defs.h | 30 +
include/sys/kmem_cache.h | 2 +-
include/sys/kobj.h | 4 +-
include/sys/mutex.h | 42 +-
include/sys/random.h | 7 +-
include/sys/rwlock.h | 205 +-
include/sys/sunldi.h | 19 -
include/sys/sysmacros.h | 8 +
include/sys/taskq.h | 116 +-
include/sys/time.h | 6 +
include/sys/tsd.h | 1 +
include/sys/user.h | 4 +-
module/splat/splat-internal.h | 78 +-
rpm/generic/spl-dkms.spec.in | 11 +-
rpm/generic/spl-kmod.spec.in | 73 +-
rpm/generic/spl.spec.in | 74 +-
rpm/redhat/spl-dkms.spec.in | 72 +-
rpm/redhat/spl.spec.in | 106 +-
spl_config.h.in | 209 -
cmd/{ => splat}/splat.c | 0
module/spl/spl-condvar.c | 65 +-
module/spl/spl-err.c | 14 +
module/spl/spl-generic.c | 269 +-
module/spl/spl-kmem-cache.c | 58 +-
module/spl/spl-kmem.c | 4 +-
module/spl/spl-kobj.c | 11 +-
module/spl/spl-kstat.c | 29 +
module/spl/spl-proc.c | 267 +-
module/spl/spl-rwlock.c | 36 +-
module/spl/spl-taskq.c | 371 +-
module/spl/spl-tsd.c | 27 +
module/spl/spl-vmem.c | 34 +-
module/spl/spl-vnode.c | 17 +-
module/splat/splat-atomic.c | 7 +-
module/splat/splat-condvar.c | 20 +-
module/splat/splat-cred.c | 12 +-
module/splat/splat-ctl.c | 88 +-
module/splat/splat-generic.c | 24 +-
module/splat/splat-kmem.c | 76 +-
module/splat/splat-kobj.c | 8 +-
module/splat/splat-linux.c | 4 +-
module/splat/splat-list.c | 28 +-
module/splat/splat-mutex.c | 46 +-
module/splat/splat-random.c | 4 +-
module/splat/splat-rwlock.c | 60 +-
module/splat/splat-taskq.c | 75 +-
module/splat/splat-thread.c | 15 +-
module/splat/splat-time.c | 8 +-
module/splat/splat-vnode.c | 24 +-
module/splat/splat-zlib.c | 4 +-
META | 2 +-
aclocal.m4 | 1025 --
cmd/splslab/splslab.py | 202 +
config/config.guess | 1501 ---
config/config.sub | 1705 ---
config/depcomp | 630 --
config/install-sh | 520 -
config/libtool.m4 | 7360 -------------
config/ltmain.sh | 8406 ---------------
config/ltoptions.m4 | 368 -
config/ltsugar.m4 | 123 -
config/ltversion.m4 | 23 -
config/lt~obsolete.m4 | 92 -
config/missing | 376 -
config/spl-build.m4 | 145 +-
config/spl-meta.m4 | 8 +
man/man5/spl-module-parameters.5 | 43 +
scripts/check.sh | 2 +-
104 files changed, 2084 insertions(+), 56350 deletions(-)
delete mode 100755 configure
delete mode 100644 Makefile.in
delete mode 100644 cmd/Makefile.in
create mode 100644 cmd/splat/Makefile.am
create mode 100644 cmd/splslab/Makefile.am
delete mode 100644 include/Makefile.in
delete mode 100644 include/fs/Makefile.in
delete mode 100644 include/linux/Makefile.in
delete mode 100644 include/rpc/Makefile.in
delete mode 100644 include/sharefs/Makefile.in
delete mode 100644 include/sys/Makefile.in
delete mode 100644 include/sys/fm/Makefile.in
delete mode 100644 include/sys/fs/Makefile.in
delete mode 100644 include/sys/sysevent/Makefile.in
delete mode 100644 include/util/Makefile.in
delete mode 100644 include/vm/Makefile.in
delete mode 100644 lib/Makefile.in
delete mode 100644 man/Makefile.in
delete mode 100644 man/man1/Makefile.in
delete mode 100644 man/man5/Makefile.in
delete mode 100644 rpm/Makefile.in
delete mode 100644 rpm/generic/Makefile.in
delete mode 100644 rpm/redhat/Makefile.in
delete mode 100644 scripts/Makefile.in
rename cmd/{ => splat}/splat.h (100%)
create mode 100644 include/sys/dkioc_free_util.h
mode change 100644 => 120000 rpm/redhat/spl-dkms.spec.in
mode change 100644 => 120000 rpm/redhat/spl.spec.in
delete mode 100644 spl_config.h.in
rename cmd/{ => splat}/splat.c (100%)
delete mode 100644 aclocal.m4
create mode 100755 cmd/splslab/splslab.py
delete mode 100755 config/config.guess
delete mode 100755 config/config.sub
delete mode 100755 config/depcomp
delete mode 100755 config/install-sh
delete mode 100644 config/libtool.m4
delete mode 100755 config/ltmain.sh
delete mode 100644 config/ltoptions.m4
delete mode 100644 config/ltsugar.m4
delete mode 100644 config/ltversion.m4
delete mode 100644 config/lt~obsolete.m4
delete mode 100755 config/missing
More information about the Pkg-zfsonlinux-devel
mailing list