KADI for Kernel Debugging on ADI Systems

KADI is designed for use on test and development systems only. KADI catches memory corruption in the kernel heap on SPARC systems that implement Application Data Integrity (ADI). KADI provides protection against buffer overflows, use-after-frees, use-after-reallocs, and double frees. Because it may decrease system stability, do not enable KADI on production systems.

KADI is suitable for developers of device drivers and other kernel modules for use on the following SPARC servers:

  • SPARC M7
  • SPARC M8
  • SPARC S7
  • SPARC T7
  • SPARC T8

KADI is enabled on debug kernels. To enable it for developers on non-debug kernels, run the following command:

$ sxadm enable kadi

You must reboot the Oracle Solaris system for the change to take effect.

To check the status of KADI on a system, type sxadm status. For example:

$ sxadm status
EXTENSION           STATUS                        FLAGS
adiheap             enabled (tagged-files)        u-c--
adistack            enabled (tagged-files)        u-c--
aslr                enabled (tagged-files)        u-c--
hw_bti              enabled                       ---r-
hw_ssb              not supported                 -----
kadi                disabled                      -kcr-
kpti                enabled                       -----
mds_no              enabled                       -----
nxheap              enabled (tagged-files)        u-c--
nxstack             enabled (all)                 u-c--
rdcl_no             enabled                       -----

For more information, see Using KADI in Writing Device Drivers in Oracle Solaris 11.4 and the sxadm(8) man page.