In case elf dump, the code to calculate the cyclic buffer size is not correct. Since elf need bitmap1/2, so the needed memory for bufsize_cyclic need be double. Hence free size should be 40% of free memory, however the needed_size which free_size is compared with should be info->max_mapnr / BITPERBYTE, but not 2 times of it. Because of this, in case of free memory in 2nd kernel is not too much, OOM will happen very often. Signed-off-by: Baoquan He <bhe at redhat.com> --- makedumpfile.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/makedumpfile.c b/makedumpfile.c index 75092a8..01ec516 100644 --- a/makedumpfile.c +++ b/makedumpfile.c @@ -9010,7 +9010,7 @@ calculate_cyclic_buffer_size(void) { */ if (info->flag_elf_dumpfile) { free_size = get_free_memory_size() * 0.4; - needed_size = (info->max_mapnr * 2) / BITPERBYTE; + needed_size = info->max_mapnr / BITPERBYTE; } else { free_size = get_free_memory_size() * 0.8; needed_size = info->max_mapnr / BITPERBYTE; -- 1.8.5.3