[RFC PATCH 2/4] makedumpfile: Add partial bitmap for cyclic.

HATAYAMA Daisuke d.hatayama at jp.fujitsu.com
Thu Jun 14 22:00:11 EDT 2012


From: Atsushi Kumagai <kumagai-atsushi at mxc.nes.nec.co.jp>
Subject: Re: [RFC PATCH 2/4] makedumpfile: Add partial bitmap for cyclic.
Date: Tue, 12 Jun 2012 17:30:04 +0900

> Hello HATAYAMA-san,
> 
> On Thu, 7 Jun 2012 15:04:36 +0900
> Atsushi Kumagai <kumagai-atsushi at mxc.nes.nec.co.jp> wrote:
> 
>> On Mon, 04 Jun 2012 12:19:57 +0900 (JST)
>> HATAYAMA Daisuke <d.hatayama at jp.fujitsu.com> wrote:
>> 
>> > > + */
>> > > +#define BUFSIZE_CYCLIC	        (8192)
>> > > +#define PFN_CYCLIC		(BUFSIZE_CYCLIC * BITPERBYTE)
>> > > +
>> > > +
>> > > +/*
>> > >   * Minimam vmcore has 2 ProgramHeaderTables(PT_NOTE and PT_LOAD).
>> > 
>> > How did you choose this buffer size? Best performance? I think the
>> > performacne varies according to this buffer size, and to evaluate it,
>> > it's useful to be able to specify the size through command-line.
>>
>> Honestly, the buffer size has no means, I defined it without a specific reason
>> at first.
>> 
>> However, it's understandable that the size is important key for performance and
>> I agree with your opinion that enabling to specify the size is useful.
>> 
>> But, I noticed just now, prototype with increased buffer size isn't work correctly.
>> 
>>  - BUFSIZE_CYCLIC = 8192:
>> 
>>     $ makedumpfile -Kcd31 vmcore testdump.Kcd31
>>     ...
>>     The dumpfile is saved to testdump.Kcd31.
>> 
>>     makedumpfile Completed.
>>     $ ls -l testdump.*
>>     -rw------- 1 kumagai kumagai 21167309  6月  7 13:55 testdump.Kcd31
>>     -rw------- 1 kumagai kumagai 21167309  6月  7 13:28 testdump.cd31
>>     $
>> 
>>  - BUFSIZE_CYCLIC = 16384:
>> 
>>     $ makedumpfile -Kcd31 vmcore testdump.Kcd31
>>     ...
>>     The dumpfile is saved to testdump.Kcd31.
>> 
>>     makedumpfile Completed.
>>     $ ls -l testdump.*
>>     -rw------- 1 kumagai kumagai 18836948  6月  7 13:59 testdump.Kcd31
>>     -rw------- 1 kumagai kumagai 21167309  6月  7 13:28 testdump.cd31
>>     $
>> 
>> 
>> I must review my code quickly.
> 
> I found my mistake in the process of incraesing target region and
> show the modification at the end of this email.
> 
> On Mon, 4 Jun 2012 16:54:49 +0900
> Atsushi Kumagai <kumagai-atsushi at mxc.nes.nec.co.jp> wrote:
> [...]
>> After received your mail, I measured executing time with the patch below.
>> The result below was measured in 5GB memory machine.
>> 
>> Result:
>>   a. makedumpfile -Kcd31 
>>     excluding time:   6.55 [sec]
>>     writing time:     5.89 [sec]
> 
> I measured executing time with BUFSIZE=8192 on 4 June as above.
> Additionally, I measured executing time with BUFSIZE=16384, 24576 and 32768
> in the same environment.
> 
> Result:
>     ------------------------------------------------------------------------
>     buffer size [byte]	     excluding time [sec]        writing time [sec]
>     ------------------------------------------------------------------------
>     	  8192		 	    6.55			 5.89
>     	 16384		 	    3.49			 5.91
>     	 24576		 	    2.39			 5.96
>     	 32768		 	    1.83			 5.96
>     ------------------------------------------------------------------------
> 
> It seems that the buffer size is really effective in performance.
> Even if we choose the way without tracing free_list, the overhead of cyclic processing
> will be reduced, so I expect some speedup.

Performacne of the excluding time looks improved propoertional to
buffer size. I guess this result means part of processing to switch to
next cycle is so much heavy. I'll follow something for further
improvement around there.

> 
> If enabling to specify the buffer size, I think the information for decision of 
> buffer size is needed. How do you decide the buffer size ?
> 

Proper buffer size depends on machine spec. I think it natural to
choose the largest common divisor as default. OTOH, on the environment
where users need maximal speed definitely, such as on the machine
where large memory where a little bit time difference can reach a big
difference in total, and such as when used in kdump, they would want
to know the proper values by actually running makedumpfile for a
variety of parameters relevant to speed. For such tool that make it
easy to do this, I imagine a kind of tool to search for fatest mirror
site.

Thanks.
HATAYAMA, Daisuke




More information about the kexec mailing list