Because all pages must go into the cache, data is unnecessarily copied from mmapped regions to cache. Avoid this copying by storing the mmapped regions directly in the cache. First, the cache code needs a clean up clarification of the concept, especially the meaning of the pending list (allocated cache entries whose content is not yet valid). Second, the cache must be able to handle differently sized objects so that it can store individual pages as well as mmapped regions. Last, the cache eviction code must be extended to allow either reusing the read buffer or unmapping the region. Changelog: v2: cache cleanup _and_ actuall mmap implementation v1: only the cache cleanup Petr Tesarik (8): cache: get rid of search loop in cache_add() cache: allow to return a page to the pool cache: do not allocate from the pending list cache: add hit/miss statistics to the final report cache: allocate buffers in one big chunk cache: allow arbitrary size of cache entries cache: store mapped regions directly in the cache cleanup: remove unused page_is_fractional cache.c | 81 +++++++++++++++++---------------- cache.h | 16 +++++-- elf_info.c | 16 ------- elf_info.h | 2 - makedumpfile.c | 138 ++++++++++++++++++++++++++++++++++----------------------- 5 files changed, 138 insertions(+), 115 deletions(-) -- 1.8.4.5