[PATCH v2 2/3] Generic handling of multi-page exclusions

Atsushi Kumagai kumagai-atsushi at mxc.nes.nec.co.jp
Tue Apr 8 03:06:34 EDT 2014


[...]
> diff --git a/makedumpfile.h b/makedumpfile.h
>> index 951ed1b..dfad569 100644
>> --- a/makedumpfile.h
>> +++ b/makedumpfile.h
>> @@ -816,6 +816,13 @@ struct mem_map_data {
>>  	unsigned long long	pfn_start;
>>  	unsigned long long	pfn_end;
>>  	unsigned long	mem_map;
>> +
>> +	/*
>> +	 * for excluding multi-page regions
>> +	 */
>> +	unsigned long		exclude_pfn_start;
>> +	unsigned long		exclude_pfn_end;
>
>unsigned long long		exclude_pfn_start;
>unsigned long long		exclude_pfn_end;
>
>The integers representing page frame numbers need to be defined as
>unsigned long long for architectures where physical address can have
>64-bit length but unsigned long has 32-bit only, such as x86 PAE.
>
>Kumagai-san, I saw this sometimes in the past. How about introducing
>specific abstract type for page frame number like below?
>
>typedef unsigned long long pfn_t;

Good idea! We should do it.

>maybe with some prefix. I think this also helps code readability
>because unsigned long long is too long.
>
>> +	unsigned long long	*exclude_pfn_counter;
>>  };
>
>Also, it seems to me better to introduce a new type for this
>processing rather than extending existing code. struct mem_map_data is
>not specific for the excluding processing.

I agree, too.


Thanks
Atsushi Kumagai



More information about the kexec mailing list