Atsushi,<br><br>do you have speed measurements for saving vmcore with this patches and without them?<br>How much is speed up?<br><br>Thanks,<br>Maxim.<br><br><div class="gmail_quote">2012/5/31 Atsushi Kumagai <span dir="ltr"><<a href="mailto:kumagai-atsushi@mxc.nes.nec.co.jp" target="_blank">kumagai-atsushi@mxc.nes.nec.co.jp</a>></span><br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hello,<br>
<br>
I made the prototype of cyclic processing to keep memory consumption.<br>
I attache the patch set based on v1.4.4, I would like to get your advice.<br>
<br>
Introduction:<br>
<br>
 - The basic idea of cyclic processing is represented as below.<br>
 - cyclic processing doesn't use temporary bitmap file, store partial bitmap data<br>
   in memory only for each cycle instead.<br>
 - The prototype only support compressed kdump format.<br>
 - The prototype worked for almost kernel version except some kernel disabled PAE<br>
   in my environment.<br>
<br>
Basic idea (HATAYAMA-san wrote):<br>
<br>
   +------------------------------------------+<br>
   |    main header (struct disk_dump_header) |<br>
   |------------------------------------------+<br>
   |    sub header (struct kdump_sub_header)  |<br>
   |------------------------------------------+<br>
   |                                          | <-- 1st cycle<br>
   | -  -  -  -  -  -  -  -  -  -  -  -  -  - |<br>
   |            1st-bitmap                    | <-- 2nd cycle<br>
   | -  -  -  -  -  -  -  -  -  -  -  -  -  - |<br>
   |                                          | <-- 3rd cycle<br>
   |------------------------------------------+<br>
   |                                          | <-- 1st cycle<br>
   | -  -  -  -  -  -  -  -  -  -  -  -  -  - |<br>
   |            2nd-bitmap                    | <-- 2nd cycle<br>
   | -  -  -  -  -  -  -  -  -  -  -  -  -  - |<br>
   |                                          | <-- 3rd cycle<br>
   |------------------------------------------+<br>
   |                                          | <-- 1st cycle<br>
   | -  -  -  -  -  -  -  -  -  -  -  -  -  - |<br>
   |            page header                   | <-- 2nd cycle<br>
   | -  -  -  -  -  -  -  -  -  -  -  -  -  - |<br>
   |                                          | <-- 3rd cycle<br>
   |------------------------------------------|<br>
   |                                          |<br>
   |            page data                     | <-- 1st cycle<br>
   |                                          |<br>
   | -  -  -  -  -  -  -  -  -  -  -  -  -  - |<br>
   |            page data                     | <-- 2nd cycle<br>
   | -  -  -  -  -  -  -  -  -  -  -  -  -  - |<br>
   |                                          |<br>
   |                                          |<br>
   |            page data                     | <-- 3rd cycle<br>
   |                                          |<br>
   |                                          |<br>
   +------------------------------------------+<br>
<br>
<br>
How to use:<br>
<br>
  Specify 'K' option, then makedumpfile works cyclically.<br>
<br>
Example:<br>
<br>
  a. normal processing:<br>
<br>
    $ makedumpfile -cd31 vmcore testdump.cd31<br>
    Copying data                       : [100 %]<br>
<br>
    The dumpfile is saved to testdump.cd31.<br>
<br>
    makedumpfile Completed.<br>
<br>
  b. cyclic processing (too many messages will be displayed):<br>
<br>
    $ makedumpfile -Kcd31 vmcore testdump.Kcd31<br>
    Copying data                       : [  5 %]<br>
    Excluding free pages               : [100 %]<br>
    ...<br>
    Excluding free pages               : [100 %]<br>
    Copying data                       : [100 %]<br>
<br>
    The dumpfile is saved to testdump.Kcd31.<br>
<br>
    makedumpfile Completed.<br>
<br>
  c. compare each dumpfiles:<br>
<br>
    $ cmp testdump.cd31 testdump.Kcd31<br>
    $<br>
<br>
TODO:<br>
<br>
 - Optimize code for performance.<br>
   (e.g. initialize for compression is done every cycle, it's a waste.)<br>
 - Support ELF format.<br>
 - Consider suitable size of target region.<br>
 - Fix some messages.<br>
 - And something noticed by you.<br>
<br>
<br>
Thanks<br>
Atsushi Kumagai<br>
<br>
_______________________________________________<br>
kexec mailing list<br>
<a href="mailto:kexec@lists.infradead.org">kexec@lists.infradead.org</a><br>
<a href="http://lists.infradead.org/mailman/listinfo/kexec" target="_blank">http://lists.infradead.org/mailman/listinfo/kexec</a><br>
</blockquote></div><br><br clear="all"><br>-- <br>Best regards,<br>Maxim Uvarov<br>