[PATCH] makedumpfile: Shrink the time for creating 1st-bitmap (Re: problems in kdump kernel if 'maxcpus=1' not specified?)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,

Jay Lan wrote:
> 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.

I think that new makedumpfile (version 1.2.7) is more useful for you,
because it includes not only this patch but also the other patch
shrinking the time for creating bitmap.


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;
>>  
> 
> 
> 
> ------------------------------------------------------------------------
> 
> _______________________________________________
> kexec mailing list
> kexec at lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/kexec





[Index of Archives]     [LM Sensors]     [Linux Sound]     [ALSA Users]     [ALSA Devel]     [Linux Audio Users]     [Linux Media]     [Kernel]     [Gimp]     [Yosemite News]     [Linux Media]

  Powered by Linux