.\" .\" This file and its contents are supplied under the terms of the .\" Common Development and Distribution License ("CDDL"), version 1.0. .\" You may only use this file in accordance with the terms of version .\" 1.0 of the CDDL. .\" .\" A full copy of the text of the CDDL should have accompanied this .\" source. A copy of the CDDL is also available via the Internet at .\" http://www.illumos.org/license/CDDL. .\" .\" .\" Copyright 2020 Robert Mustacchi .\" .Dd February 23, 2020 .Dt UMEM_SETMTBF 3MALLOC .Os .Sh NAME .Nm umem_setmtbf .Nd set umem failure threshold .Sh SYNOPSIS .Lb libumem .In umem.h .Ft void .Fo umem_setmtbf .Fa "uint_t thresh" .Fc .Sh DESCRIPTION The .Fn umem_setmtbf function can be used to modify the run-time behavior of the .Xr libumem 3LIB library to set a threshold to cause injected memory allocation failures. .Pp By default, no failures are injected. When a non-zero value is passed in .Fa thresh then error injection is enabled, if the umem debugging features described in .Xr umem_debug 3MALLOC are enabled through the .Ev UMEM_DEBUG environment variable. If a process has not enabled the debugging functionality of .Xr libumem 3LIB then no errors will be injected, no matter what .Fa thresh is set to. .Pp Passing the value .Sy 0 disables error injection. To cause every allocation to fail, pass the value .Sy 1 . The larger the value passed, the more time that will pass between error injections. Currently, an error is injected if the current time in nanoseconds since boot modulus the mtbf is zero. Concretely: .Bd -literal -offset indent if (gethrtime() % thresh) == 0) { } .Ed .Pp This mechanism is not guaranteed over time; however, the meanings of a threshold of zero, one, and the general tendency of larger numbers to indicate less errors is. .Sh MT-LEVEL .Sy Unsafe .Sh INTERFACE STABILITY .Sy Uncommitted .Sh SEE ALSO .Xr libumem 3LIB , .Xr umem_debug 3MALLOC