zfs/module/os/linux/spl
Prakash Surya e5d1c27e30 Enable use of DTRACE_PROBE* macros in "spl" module
This change modifies some of the infrastructure for enabling the use of
the DTRACE_PROBE* macros, such that we can use tehm in the "spl" module.

Currently, when the DTRACE_PROBE* macros are used, they get expanded to
create new functions, and these dynamically generated functions become
part of the "zfs" module.

Since the "spl" module does not depend on the "zfs" module, the use of
DTRACE_PROBE* in the "spl" module would result in undefined symbols
being used in the "spl" module. Specifically, DTRACE_PROBE* would turn
into a function call, and the function being called would be a symbol
only contained in the "zfs" module; which results in a linker and/or
runtime error.

Thus, this change adds the necessary logic to the "spl" module, to
mirror the tracing functionality available to the "zfs" module. After
this change, we'll have a "trace_zfs.h" header file which defines the
probes available only to the "zfs" module, and a "trace_spl.h" header
file which defines the probes available only to the "spl" module.

Reviewed by: Brad Lewis <brad.lewis@delphix.com>
Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: Prakash Surya <prakash.surya@delphix.com>
Closes #9525
2019-11-01 13:13:43 -07:00
..
Makefile.in Enable use of DTRACE_PROBE* macros in "spl" module 2019-11-01 13:13:43 -07:00
README.md OpenZFS restructuring - move platform specific sources 2019-09-06 11:26:26 -07:00
THIRDPARTYLICENSE.gplv2 OpenZFS restructuring - move platform specific sources 2019-09-06 11:26:26 -07:00
THIRDPARTYLICENSE.gplv2.descrip OpenZFS restructuring - move platform specific sources 2019-09-06 11:26:26 -07:00
spl-atomic.c OpenZFS restructuring - move platform specific sources 2019-09-06 11:26:26 -07:00
spl-condvar.c OpenZFS restructuring - move platform specific sources 2019-09-06 11:26:26 -07:00
spl-cred.c OpenZFS restructuring - move platform specific sources 2019-09-06 11:26:26 -07:00
spl-err.c OpenZFS restructuring - move platform specific sources 2019-09-06 11:26:26 -07:00
spl-generic.c Wrap Linux module macros 2019-11-01 10:41:03 -07:00
spl-kmem-cache.c Update skc_obj_alloc for spl kmem caches that are backed by Linux 2019-10-18 13:24:28 -04:00
spl-kmem.c Fix strdup conflict on other platforms 2019-10-10 09:47:06 -07:00
spl-kobj.c OpenZFS restructuring - move platform specific sources 2019-09-06 11:26:26 -07:00
spl-kstat.c Fix strdup conflict on other platforms 2019-10-10 09:47:06 -07:00
spl-proc.c Update skc_obj_alloc for spl kmem caches that are backed by Linux 2019-10-18 13:24:28 -04:00
spl-procfs-list.c OpenZFS restructuring - move platform specific sources 2019-09-06 11:26:26 -07:00
spl-taskq.c Linux 4.14, 4.19, 5.0+ compat: SIMD save/restore 2019-10-24 10:17:33 -07:00
spl-thread.c Linux 4.14, 4.19, 5.0+ compat: SIMD save/restore 2019-10-24 10:17:33 -07:00
spl-trace.c Enable use of DTRACE_PROBE* macros in "spl" module 2019-11-01 13:13:43 -07:00
spl-tsd.c OpenZFS restructuring - move platform specific sources 2019-09-06 11:26:26 -07:00
spl-vmem.c OpenZFS restructuring - move platform specific sources 2019-09-06 11:26:26 -07:00
spl-vnode.c OpenZFS restructuring - move platform specific sources 2019-09-06 11:26:26 -07:00
spl-xdr.c OpenZFS restructuring - move platform specific sources 2019-09-06 11:26:26 -07:00
spl-zlib.c OpenZFS restructuring - move platform specific sources 2019-09-06 11:26:26 -07:00

README.md

The Solaris Porting Layer, SPL, is a Linux kernel module which provides a compatibility layer used by the ZFS on Linux project.

Installation

The latest version of the SPL is maintained as part of this repository. Only when building ZFS version 0.7.x or earlier must an external SPL release be used. These releases can be found at:

Release

The SPL is released under a GPLv2 license.
For more details see the NOTICE and THIRDPARTYLICENSE files; UCRL-CODE-235197