Solaris 可调参数参考手册

kmem_flags

说明

Solaris 内核内存分配器具有各种调试和测试选项,这些选项可在 Solaris OS 内部开发周期内广泛使用。从 Solaris 2.5 发行版开始,便可使用这些选项中的部分选项。这些选项受 kmem_flags 变量控制。可使用内核调试程序设置该变量,然后重新引导系统使其生效。Solaris 8 发行版之前的版本,由于在内核内存分配器实例化的计时以及 /etc/system 文件解析方面存在问题,因此无法在 /etc/system 文件中设置这些标志。

以下介绍了五种受支持的标志设置。

标志 

设置 

说明 

AUDIT

0x1

分配器维护包含其最近活动历史记录的日志。记录的项数取决于是否还设置了 CONTENTS。此日志大小固定。当用完空间时,便会回收较早的记录。

TEST

0x2

分配器向释放的内存中写入模式,并在下一次分配缓冲区时检查此模式是否未更改。如果缓冲区的某部分发生更改,则内存可能由先前已分配和释放此缓冲区的客户机使用。如果确定出现覆写,则系统会发生混乱。 

REDZONE

0x4

分配器在请求的缓冲区的结尾提供额外内存,并将特定模式插入此内存。释放缓冲区时,将检查此模式以查看是否在缓冲区结尾后面写入数据。如果确定出现覆写,则内核会发生混乱。 

CONTENTS

0x8

释放缓冲区时,分配器最多记录 256 个字节的缓冲区内容。此标志要求还应设置 AUDIT

从 Solaris 8 发行版开始或者在早期发行版中,通过在启动内核之前引导 kadb 并设置这些标志,/etc/system 文件可以对这些标志的数值进行逻辑相加和设置。

LITE

0x100

分配和释放缓冲区后,执行最小完整性检查。启用时,分配器将检查是否尚未写入 redzone,是否再次释放已释放的缓冲区,以及要释放的缓冲区的大小是否为已分配的大小。从 Solaris 7 3/99 发行版开始,便提供了此标志。请不要将此标志与任何其他标志一起使用。 

数据类型

带符号整数

缺省值

0(禁用)

范围

0(禁用)或 1 - 15 或 256 (0x100)

是否为动态

是。运行时进行的更改仅影响新的内核内存高速缓存。初始化系统之后,很少创建新的高速缓存。

验证

何时更改

怀疑发生内存损坏时

承诺级别

不稳定