Hello, This is the patch set to avoid two pass filtering, it is the finished version of the previous patch set below: http://lists.infradead.org/pipermail/kexec/2015-March/013497.html cyclic mode has to take a two-pass approach for filtering to save on the memory consumption, it's a disadvantage of the cyclic mode and it's basically unavoidable. However, even the cyclic mode can avoid two-pass filtering if free memory space is enough to store the whole 1st and 2nd bitmaps, but the current version doesn't it. The main purpose of this patch set is avoiding that useless filtering, but before that, I merged non-cyclic mode into cyclic mode as code clean up because the codes are almost the same. Instead, I introduce another way to guarantee one-pass filtering by using disk space. MAJOR CHANGES 1. Introduce --work-dir option instead of --non-cyclic --non-cyclic option were used to choose the non-cyclic mode, it realizes one-pass filtering by creating a temporary bitmap file on TMPDIR. The new option "--work-dir" is used to specify a working directory to store the bitmap file, so this is the alternative to the combination of --non-cyclic and TMPDIR. 2. Remove extra page filtering If free memory space is enough to store the whole 1st and 2nd bitmaps (or --work-dir is specified), page filtering and creating bitmaps are done only once before writing process. Otherwise the bitmaps are created twice; to decide the offset of the page header region, and for actual page writing process, as usual. INTERNAL CHANGE info->flag_cyclic indicated whether the internal mode is cyclic or non-cyclic. Now, since the two modes are merged, the flag means that filtering process will take multi cycles, i.e. it has to take a two-pass approach. Atsushi Kumagai (13): Organize bitmap structure for cyclic logic. Add option to specify working directory for the bitmap. Integrate the entry point of is_dumpable(). Integrate the main logic of writing kdump file. Communalize the function for creating 1st bitmap. Remove the old logic of writing kdump pages. Integrate filtering process for ELF path. Remove the old logic of writing ELF pages. Adjust --mem-usage path to the new code. Adjust --split/--reassemble path to the new code. Adjust refiltering path to the new code. Adjust sadump path to the new code. Remove --non-cyclic option. README | 16 - makedumpfile.8 | 32 +- makedumpfile.c | 1624 ++++++++++++++++++-------------------------------------- makedumpfile.h | 41 +- print_info.c | 23 +- sadump_info.c | 8 +- 6 files changed, 588 insertions(+), 1156 deletions(-) -- 1.9.0