1008 int kmem_logging = 1; /* kmem_log_enter() override */
1009 uint32_t kmem_mtbf = 0; /* mean time between failures [default: off] */
1010 size_t kmem_transaction_log_size; /* transaction log size [2% of memory] */
1011 size_t kmem_content_log_size; /* content log size [2% of memory] */
1012 size_t kmem_failure_log_size; /* failure log [4 pages per CPU] */
1013 size_t kmem_slab_log_size; /* slab create log [4 pages per CPU] */
1014 size_t kmem_content_maxsave = 256; /* KMF_CONTENTS max bytes to log */
1015 size_t kmem_lite_minsize = 0; /* minimum buffer size for KMF_LITE */
1016 size_t kmem_lite_maxalign = 1024; /* maximum buffer alignment for KMF_LITE */
1017 int kmem_lite_pcs = 4; /* number of PCs to store in KMF_LITE mode */
1018 size_t kmem_maxverify; /* maximum bytes to inspect in debug routines */
1019 size_t kmem_minfirewall; /* hardware-enforced redzone threshold */
1020
1021 #ifdef _LP64
1022 size_t kmem_max_cached = KMEM_BIG_MAXBUF; /* maximum kmem_alloc cache */
1023 #else
1024 size_t kmem_max_cached = KMEM_BIG_MAXBUF_32BIT; /* maximum kmem_alloc cache */
1025 #endif
1026
1027 #ifdef DEBUG
1028 int kmem_flags = KMF_AUDIT | KMF_DEADBEEF | KMF_REDZONE | KMF_CONTENTS;
1029 #else
1030 int kmem_flags = 0;
1031 #endif
1032 int kmem_ready;
1033
1034 static kmem_cache_t *kmem_slab_cache;
1035 static kmem_cache_t *kmem_bufctl_cache;
1036 static kmem_cache_t *kmem_bufctl_audit_cache;
1037
1038 static kmutex_t kmem_cache_lock; /* inter-cache linkage only */
1039 static list_t kmem_caches;
1040
1041 static taskq_t *kmem_taskq;
1042 static kmutex_t kmem_flags_lock;
1043 static vmem_t *kmem_metadata_arena;
1044 static vmem_t *kmem_msb_arena; /* arena for metadata caches */
1045 static vmem_t *kmem_cache_arena;
1046 static vmem_t *kmem_hash_arena;
1047 static vmem_t *kmem_log_arena;
1048 static vmem_t *kmem_oversize_arena;
1049 static vmem_t *kmem_va_arena;
1050 static vmem_t *kmem_default_arena;
|
1008 int kmem_logging = 1; /* kmem_log_enter() override */
1009 uint32_t kmem_mtbf = 0; /* mean time between failures [default: off] */
1010 size_t kmem_transaction_log_size; /* transaction log size [2% of memory] */
1011 size_t kmem_content_log_size; /* content log size [2% of memory] */
1012 size_t kmem_failure_log_size; /* failure log [4 pages per CPU] */
1013 size_t kmem_slab_log_size; /* slab create log [4 pages per CPU] */
1014 size_t kmem_content_maxsave = 256; /* KMF_CONTENTS max bytes to log */
1015 size_t kmem_lite_minsize = 0; /* minimum buffer size for KMF_LITE */
1016 size_t kmem_lite_maxalign = 1024; /* maximum buffer alignment for KMF_LITE */
1017 int kmem_lite_pcs = 4; /* number of PCs to store in KMF_LITE mode */
1018 size_t kmem_maxverify; /* maximum bytes to inspect in debug routines */
1019 size_t kmem_minfirewall; /* hardware-enforced redzone threshold */
1020
1021 #ifdef _LP64
1022 size_t kmem_max_cached = KMEM_BIG_MAXBUF; /* maximum kmem_alloc cache */
1023 #else
1024 size_t kmem_max_cached = KMEM_BIG_MAXBUF_32BIT; /* maximum kmem_alloc cache */
1025 #endif
1026
1027 #ifdef DEBUG
1028 volatile int kmem_flags = KMF_AUDIT | KMF_DEADBEEF | KMF_REDZONE | KMF_CONTENTS;
1029 #else
1030 volatile int kmem_flags = 0;
1031 #endif
1032 int kmem_ready;
1033
1034 static kmem_cache_t *kmem_slab_cache;
1035 static kmem_cache_t *kmem_bufctl_cache;
1036 static kmem_cache_t *kmem_bufctl_audit_cache;
1037
1038 static kmutex_t kmem_cache_lock; /* inter-cache linkage only */
1039 static list_t kmem_caches;
1040
1041 static taskq_t *kmem_taskq;
1042 static kmutex_t kmem_flags_lock;
1043 static vmem_t *kmem_metadata_arena;
1044 static vmem_t *kmem_msb_arena; /* arena for metadata caches */
1045 static vmem_t *kmem_cache_arena;
1046 static vmem_t *kmem_hash_arena;
1047 static vmem_t *kmem_log_arena;
1048 static vmem_t *kmem_oversize_arena;
1049 static vmem_t *kmem_va_arena;
1050 static vmem_t *kmem_default_arena;
|