name mode size
..
doc 040000
Makefile 100644 244B
README 100644 7.12kB
malloc_test.c 100644 24.18kB
README
The malloc_test Module Andrei Pelinescu-Onciul iptelorg GmbH Copyright � 2010 iptelorg GmbH __________________________________________________________________ Table of Contents 1. Admin Guide 1. Overview 2. Parameters 2.1. check_content 3. Functions 3.1. mt_mem_alloc(size) 3.2. mt_mem_free() 4. malloc_test RPC Functions 4.1. mt.mem_alloc size [unit] 4.2. mt.mem_free [size] [unit] 4.3. mt.mem_used [unit] 4.4. mt.mem_rnd_alloc min max total [unit] 4.5. mt.mem_test_start min max total min_int max_int total_time [unit] 4.6. mt.mem_test_stop id 4.7. mt.mem_test_destroy id 4.8. mt.mem_test_destroy_all id 4.9. mt.mem_test_list [id] [unit] List of Examples 1.1. Set check_content in the config file 1.2. Set check_content at runtime via sercmd 1.3. men_alloc usage 1.4. mem_free usage 1.5. mt.mem_alloc usage 1.6. mt.mem_free usage 1.7. mt.mem_used usage 1.8. mt.mem_rnd_alloc usage 1.9. mt.mem_test_start usage 1.10. mt.mem_test_stop usage 1.11. mt.mem_test_destroy usage 1.12. mt.mem_test_destroy_all usage 1.13. mt.mem_test_list usage Chapter 1. Admin Guide Table of Contents 1. Overview 2. Parameters 2.1. check_content 3. Functions 3.1. mt_mem_alloc(size) 3.2. mt_mem_free() 4. malloc_test RPC Functions 4.1. mt.mem_alloc size [unit] 4.2. mt.mem_free [size] [unit] 4.3. mt.mem_used [unit] 4.4. mt.mem_rnd_alloc min max total [unit] 4.5. mt.mem_test_start min max total min_int max_int total_time [unit] 4.6. mt.mem_test_stop id 4.7. mt.mem_test_destroy id 4.8. mt.mem_test_destroy_all id 4.9. mt.mem_test_list [id] [unit] 1. Overview This is a debugging/test module. It implements functions (both script and rpcs) that can be used to stress the memory allocator or force memory leaks. Warning This module should never be used in a production environment. 2. Parameters 2.1. check_content 2.1. check_content When doing the tests, check also for the possibility of the memory being overwritten. When activated, the allocated memory will be filled with a special pattern, that will be checked on free. Default: 0 (off). It can be changed also at runtime, via the rpc interface. Example 1.1. Set check_content in the config file modparam("malloc_test", "check_content", 1) Example 1.2. Set check_content at runtime via sercmd $ kamcmd cfg.set_now_int malloc_test check_content 1 3. Functions 3.1. mt_mem_alloc(size) 3.2. mt_mem_free() 3.1. mt_mem_alloc(size) Allocates size bytes. Note This is a debugging function for simulating memory leaks or stressing the memory allocator. It should not be used in production setups Example 1.3. men_alloc usage ... mem_alloc(1048576); # 1MB ... 3.2. mt_mem_free() Frees all the memory allocated with mem_alloc() up to this point. Note This is a debugging function for simulating memory leaks or stressing the memory allocator. It should not be used in production setups Example 1.4. mem_free usage ... mem_free(); ... 4. malloc_test RPC Functions 4.1. mt.mem_alloc size [unit] 4.2. mt.mem_free [size] [unit] 4.3. mt.mem_used [unit] 4.4. mt.mem_rnd_alloc min max total [unit] 4.5. mt.mem_test_start min max total min_int max_int total_time [unit] 4.6. mt.mem_test_stop id 4.7. mt.mem_test_destroy id 4.8. mt.mem_test_destroy_all id 4.9. mt.mem_test_list [id] [unit] 4.1. mt.mem_alloc size [unit] Allocates the specified number of bytes. unit is optional and can be one of: * b - bytes * k - KB * m - MB * g - GB Example 1.5. mt.mem_alloc usage $ kamcmd mt.mem_alloc 10 k 4.2. mt.mem_free [size] [unit] Frees at least size bytes from the memory allocated by other malloc_test functions (e.g. mt.mem_alloc). size is optional. If missing, everything will be freed. unit is optional and can be one of: * b - bytes * k - KB * m - MB * g - GB Example 1.6. mt.mem_free usage $ kamcmd mt.mem_free 1 m 4.3. mt.mem_used [unit] Returns/displays how many bytes are allocated. The default unit is bytes (for all the possible units see above). unit is optional and can be one of: * b - bytes * k - KB * m - MB * g - GB Example 1.7. mt.mem_used usage $ kamcmd mt.mem_used 9221460 4.4. mt.mem_rnd_alloc min max total [unit] Allocates total_size memory, in pieces of random size between min .. max (inclusive). unit is optional and represents the unit for all the given sizes (see above). Example 1.8. mt.mem_rnd_alloc usage $ kamcmd mt.mem_rnd_alloc 1 64 10240 k 4.5. mt.mem_test_start min max total min_int max_int total_time [unit] Starts a malloc test that will take total_time to execute. Memory allocations will be performed at intervals randomly chosen between min_int and max_int (in ms). Each allocation will have a randomly chosen size between min and max unit bytes. After total unit bytes are allocated, everything is released/freed again and the allocations are restarted. All the times are expressed in milliseconds. unit is optional and represents the unit for all the given sizes (see above). Several tests can be run in parallel. Returns the test id. Example 1.9. mt.mem_test_start usage $ kamcmd mt.mem_test_start 15 64 25000 128 1500 3600000 k 1 4.6. mt.mem_test_stop id Stops the test indentified by id. Example 1.10. mt.mem_test_stop usage $ kamcmd mt.mem_test_stop 1 4.7. mt.mem_test_destroy id Destroys the test indentified by id (besides stopping it, it also frees all the data, including the statistics). Example 1.11. mt.mem_test_destroy usage $ kamcmd mt.mem_test_destroy 1 4.8. mt.mem_test_destroy_all id Destroys all the running or stopped tests. Example 1.12. mt.mem_test_destroy_all usage $ kamcmd mt.mem_test_destroy_all 4.9. mt.mem_test_list [id] [unit] Returns/displays data about the test identified by id, or if no id is specified, it lists all the tests (running or stopped). unit is optional. The default is is bytes (for all the possible units see above). Example 1.13. mt.mem_test_list usage $ kamcmd mt.mem_test_list { ID : 2 run time (s) : 1471 remaining (s): 2128 allocations : 1749 errors : 24 overflows : 2 total alloc : 69614530 min : 15360 max : 65536 total : 25600000 } { ID : 1 run time (s) : 3600 remaining (s): 0 allocations : 4268 errors : 640 overflows : 4 total alloc : 144220713 min : 15360 max : 65536 total : 29696000 }