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>