Ken'ichi Ohmichi wrote: > Hi Jay, > > Ken'ichi Ohmichi wrote: >> I created the attached patch that makedumpfile does not scan >> memory gap when creating 1st-bitmap. Could you please try it ? >> This patch is for makedumpfile-1.2.6. > > I found a bug in the patch I sent before, and I fixed it in the > attached patch. Could you please try this patch ? > Sorry for my mistake. Hi Ken'ichi San, Thanks for your patch. I need to compete for the test machine. Will post new data when i have one. Regards, - jay > > > Thanks > Ken'ichi Ohmichi > > diff -puN backup/v1.2.6/makedumpfile.c makedumpfile/makedumpfile.c > --- backup/v1.2.6/makedumpfile.c 2008-06-05 15:17:17.000000000 +0900 > +++ makedumpfile/makedumpfile.c 2008-07-18 00:14:34.000000000 +0900 > @@ -3987,8 +3987,10 @@ exclude_free_page() > int > create_1st_bitmap() > { > + int i; > char *buf = NULL; > - unsigned long long pfn, paddr; > + unsigned long long pfn, pfn_start, pfn_end, pfn_bitmap1; > + struct pt_load_segment *pls; > off_t offset_page; > int ret = FALSE; > > @@ -4021,13 +4023,19 @@ create_1st_bitmap() > /* > * If page is on memory hole, set bit on the 1st-bitmap. > */ > - for (pfn = 0, paddr = 0; pfn < info->max_mapnr; > - pfn++, paddr += info->page_size) { > - if (is_in_segs(paddr)) > + for (i = pfn_bitmap1 = 0; i < info->num_load_memory; i++) { > + pls = &info->pt_load_segments[i]; > + pfn_start = pls->phys_start >> PAGESHIFT(); > + pfn_end = pls->phys_end >> PAGESHIFT(); > + if (!is_in_segs(pfn_start << PAGESHIFT())) > + pfn_start++; > + for (pfn = pfn_start; pfn < pfn_end; pfn++) { > set_bit_on_1st_bitmap(pfn); > - else > - pfn_memhole++; > + pfn_bitmap1++; > + } > } > + pfn_memhole = info->max_mapnr - pfn_bitmap1; > + > if (!sync_1st_bitmap()) > goto out; >