Anonymous region handling. More...
#include "opd_anon.h"#include "opd_trans.h"#include "opd_sfile.h"#include "opd_printf.h"#include "op_libiberty.h"#include <limits.h>#include <stdlib.h>#include <stdio.h>#include <string.h>
Defines | |
| #define | HASH_SIZE 1024 |
| #define | HASH_BITS (HASH_SIZE - 1) |
| #define | LRU_SIZE 8192 |
| #define | LRU_AMOUNT (LRU_SIZE/8) |
Functions | |
| struct anon_mapping * | find_anon_mapping (struct transient *trans) |
| Try to find an anonymous mapping for the given pc/tgid pair. | |
| void | anon_init (void) |
Anonymous region handling.
Our caching of maps has some problems: if we get tgid reuse, and it's the same application, we might end up with wrong maps. The same happens in an unmap-remap case. There's not much we can do about this, we just hope it's not too common...
What is relatively common is expanding anon maps, which leaves us with lots of separate sample files.
| #define HASH_BITS (HASH_SIZE - 1) |
Referenced by sfile_find().
| #define HASH_SIZE 1024 |
Referenced by anon_init(), cookie_init(), operf_sfile_init(), and sfile_init().
| #define LRU_AMOUNT (LRU_SIZE/8) |
| #define LRU_SIZE 8192 |
| void anon_init | ( | void | ) |
References HASH_SIZE.
| struct anon_mapping* find_anon_mapping | ( | struct transient * | trans | ) | [read] |
Try to find an anonymous mapping for the given pc/tgid pair.
References anon_mapping::end, anon_mapping::list, list_entry, list_for_each, anon_mapping::start, anon_mapping::tgid, verbprintf, and vmisc.
1.6.1