On 08/03/2018 03:22 AM, Kazuhito Hagio wrote: > On 8/2/2018 3:36 AM, piliu wrote: >> >> >> On 08/02/2018 04:45 AM, Kazuhito Hagio wrote: >>> Hi Pingfan, >>> >>> Thank you for the patch. >>> >>> On 7/31/2018 4:44 AM, Pingfan Liu wrote: >>>> When refiltering on kdump format file, there is no info about pt_load[] for >>>> exclude_nodata_pages(), and also we can not expect more data than the kdump >>>> file can provide, hence this patch suggests to initialize the refiltered >>>> bitmap1 from the kdump file's bitmap2. >>> >>> I understood the issue (I don't have any vmcore which can reproduce it, >>> though), but since the bitmap1 is written to the refiltered dump file, >>> I think that we should not change the meaning of bitmap1 if possible, >>> which is "a page on memory hole". >>> >>> For instance, with the patch, crash using the bitmaps prints a different >>> message for the same "excluded" paddr: >>> >>> -read_diskdump: PAGE_EXCLUDED: paddr/pfn: 2613e130/2613e >>> +read_diskdump: SEEK_ERROR: paddr/pfn: 2613e130/2613e !page_is_ram >>> >>> and makedumpfile's -e option using the bitmap1 cannot be utilized when >>> refiltering, these are not favorable. >>> >>> So how about initializing the refiltered *bitmap2* from the kdump file's >>> bitmap2 ? I'm checking if this works. >>> >> Yes, it sounds a good idea. > > OK, as far as I've looked into it, this way looks good. > Can you modify the patch? > OK, will send out V2 soon Thanks, Pingfan > >> >> Thanks, >> Pingfan >> >>> Thanks, >>> Kazu >>> >>>> >>>> Note about the bug reported by the following ops: >>>> makedumpfile -l --message-level 1 -d 31 /proc/vmcore /path/to/vmcore >>>> makedumpfile --split -d 31 ./vmcore dumpfile_{1,2,3} 2>&1 >>>> and hit the following error: >>>> Excluding unnecessary pages : [100.0 %] \ >>>> readpage_kdump_compressed: pfn(9b) is excluded from >> /var/crash/127.0.0.1-2018-07-02-22:10:38/vmcore. >>>> readmem: type_addr: 1, addr:9b000, size:4096 >>>> read_pfn: Can't get the page data. >>>> writeout_multiple_dumpfiles: Child process(2277) finished incompletely.(256) >>>> Copying data : [ 24.6 %] - eta: 2s >>>> makedumpfile Failed. >>>> >>>> Signed-off-by: Pingfan Liu <piliu@xxxxxxxxxx> >>>> --- >>>> makedumpfile.c | 6 +++++- >>>> 1 file changed, 5 insertions(+), 1 deletion(-) >>>> >>>> diff --git a/makedumpfile.c b/makedumpfile.c >>>> index 101fa7c..af24359 100644 >>>> --- a/makedumpfile.c >>>> +++ b/makedumpfile.c >>>> @@ -5544,6 +5544,7 @@ copy_1st_bitmap_from_memory(void) >>>> >>>> bitmap_offset = (DISKDUMP_HEADER_BLOCKS + dh->sub_hdr_size) >>>> * dh->block_size; >>>> + bitmap_offset += info->len_bitmap / 2; >>>> >>>> if (lseek(info->fd_memory, bitmap_offset, SEEK_SET) < 0) { >>>> ERRMSG("Can't seek %s. %s\n", >>>> @@ -5593,8 +5594,11 @@ create_1st_bitmap_file(void) >>>> struct timespec ts_start; >>>> off_t offset_page; >>>> >>>> - if (info->flag_refiltering) >>>> + if (info->flag_refiltering) { >>>> + /* no hole info in kdump file, set it as 0 for refiltering */ >>>> + pfn_memhole = 0; >>>> return copy_1st_bitmap_from_memory(); >>>> + } >>>> >>>> if (info->flag_sadump) >>>> return sadump_copy_1st_bitmap_from_memory(); >>>> -- >>>> 2.7.4 >>>> >>> >>> >>> >>> _______________________________________________ >>> kexec mailing list >>> kexec@xxxxxxxxxxxxxxxxxxx >>> http://lists.infradead.org/mailman/listinfo/kexec >>> >> >> _______________________________________________ >> kexec mailing list >> kexec@xxxxxxxxxxxxxxxxxxx >> http://lists.infradead.org/mailman/listinfo/kexec > > _______________________________________________ kexec mailing list kexec@xxxxxxxxxxxxxxxxxxx http://lists.infradead.org/mailman/listinfo/kexec