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

HATAYAMA Daisuke d.hatayama at jp.fujitsu.com
Thu Apr 10 18:59:44 PDT 2014


From: Petr Tesarik <ptesarik at suse.cz>
Subject: Re: [PATCH v2 2/3] Generic handling of multi-page exclusions
Date: Thu, 10 Apr 2014 12:47:17 +0200

> On Tue, 8 Apr 2014 07:06:34 +0000
> Atsushi Kumagai <kumagai-atsushi at mxc.nes.nec.co.jp> wrote:
> 
>> [...]
>> > 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.
> 
> Like the following patch?
> 
> From 9f3f6876bf1e8c93690097c510dff9982651bfa5 Mon Sep 17 00:00:00 2001
> From: Petr Tesarik <ptesarik at suse.cz>
> Date: Thu, 10 Apr 2014 12:40:31 +0200
> Subject: [PATCH] Introduce the pfn_t type
> 
> Replace unsigned long long with pfn_t where:
> 
>   a. the variable denotes a PFN
>   b. the variable is a number of pages
> 
> The number of pages is converted to a pfn_t, because it is a result of
> subtracting two PFNs or incremented in a loop over a range of PFNs, so
> it can get as large as a PFN.
> 
> Signed-off-by: Petr Tesarik <ptesarik at suse.cz>

Thanks!

Only concern is that pfn_t could be too generic; could collide with
symbols from any other libraries. On kernel, I found that kvm and um
defines pfn_t.

So, it's better to prefix pfn_t with the letters indicating that this
is relevant to makedumpfile.

But I don't come up with good prefix...

Thanks.
HATAYAMA, Daisuke




More information about the kexec mailing list