123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284 |
- 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
- }
|