<html><body><div style="color:#000; background-color:#fff; font-family:times new roman, new york, times, serif;font-size:12pt"><div style="" class=""><span style="" class="">Hi Dave,</span></div><div class="" style="color: rgb(0, 0, 0); font-size: 16px; font-family: times new roman,new york,times,serif; background-color: transparent; font-style: normal;"><br style="" class=""><span style="" class=""></span></div><div class="" style="color: rgb(0, 0, 0); font-size: 16px; font-family: times new roman,new york,times,serif; background-color: transparent; font-style: normal;"><span style="" class="">please find all my comments/clarifications/answers inline below.</span></div><div class="" style="color: rgb(0, 0, 0); font-size: 16px; font-family: times new roman,new york,times,serif; background-color: transparent; font-style: normal;"><br style="" class=""><span style="" class=""></span></div><div class="" style="color: rgb(0, 0, 0); font-size: 16px;
 font-family: times new roman,new york,times,serif; background-color: transparent; font-style: normal;"><br style="" class="">Since these raw DDR dumps seem to be an existing feature, it certainly<br style="" class="" clear="none">seems worth implementing support for them.  </div><div class="" style="color: rgb(0, 0, 0); font-size: 16px; font-family: times new roman,new york,times,serif; background-color: transparent; font-style: normal;"><br style="" class="" clear="none">I'm curious as to how these RAM dumps are currently used -- are there other<br style="" class="" clear="none">tools that use them somehow?  <br style="" class="" clear="none"></div><div class="" style="color: rgb(0, 0, 0); font-size: 16px; font-family: times new roman,new york,times,serif; background-color: transparent; font-style: normal;"><br></div><div class="" style="color: rgb(0, 0, 0); font-size: 16px; font-family: times new roman,new york,times,serif;
 background-color: transparent; font-style: normal;">Oza: there could be various tools which organisation might be writing to extract some logs, because they know the physical address</div><div class="" style="color: rgb(0, 0, 0); font-size: 16px; font-family: times new roman,new york,times,serif; background-color: transparent; font-style: normal;">where their private/public logs are stored.</div><div class="" style="color: rgb(0, 0, 0); font-size: 16px; font-family: times new roman,new york,times,serif; background-color: transparent; font-style: normal;">but none of the tools match the ability of crash utility as we all agree.</div><div class="" style="color: rgb(0, 0, 0); font-size: 16px; font-family: times new roman,new york,times,serif; background-color: transparent; font-style: normal;"><br style="" class="" clear="none">Are these DDR RAM dumps specific to embedded 32-bit ARM machines?<br style="" class="" clear="none"></div><div class=""
 style="color: rgb(0, 0, 0); font-size: 16px; font-family: times new roman,new york,times,serif; background-color: transparent; font-style: normal;"><br></div><div class="" style="color: rgb(0, 0, 0); font-size: 16px; font-family: times new roman,new york,times,serif; background-color: transparent; font-style: normal;">Oza: yes it depends, if it  is taken on armv7 then 32bit, if it is armv8, then 64 bit.<br></div><div class="" style="color: rgb(0, 0, 0); font-size: 16px; font-family: times new roman,new york,times,serif; background-color: transparent; font-style: normal;">  <br style="" class="" clear="none">Your feature sounds like a two-stage process:<br style="" class="" clear="none"><br style="" class="" clear="none"> (1) invoke crash utility -- passing it the base physical address of the<br style="" class="" clear="none">     contiguous RAM dump, and the RAM dump file name(s) -- and then crash<br style="" class=""
 clear="none">     creates a single ELF vmcore by pre-pending an ELF header and concatenating<br style="" class="" clear="none">     the dump file names.<br style="" class="" clear="none"> (2) invoke crash utility with vmlinux and newly-created vmcore. <br style="" class="" clear="none"></div><div class="" style="color: rgb(0, 0, 0); font-size: 16px; font-family: times new roman,new york,times,serif; background-color: transparent; font-style: normal;"><br></div><div class="" style="color: rgb(0, 0, 0); font-size: 16px; font-family: times new roman,new york,times,serif; background-color: transparent; font-style: normal;">Oza: yes it is 2 stage process, in the first stage crash utility will prepare something which crash utility itself can understand.</div><div class="" style="color: rgb(0, 0, 0); font-size: 16px; font-family: times new roman,new york,times,serif; background-color: transparent; font-style: normal;">which is nothing but
 ELF format, which every debugger typically understands (such as gdb)</div><div class="" style="color: rgb(0, 0, 0); font-size: 16px; font-family: times new roman,new york,times,serif; background-color: transparent; font-style: normal;">so I do that conversion at the first place.</div><div class="" style="color: rgb(0, 0, 0); font-size: 16px; font-family: times new roman,new york,times,serif; background-color: transparent; font-style: normal;">once that conversion is in place, crash utility core code takes it over and do the rest of the job.<br></div><div class="" style="color: rgb(0, 0, 0); font-size: 16px; font-family: times new roman,new york,times,serif; background-color: transparent; font-style: normal;"><br style="" class="" clear="none">But you mention "generate object files" above.  Do you generate more than one file?<br style="" class="" clear="none"></div><div class="" style="color: rgb(0, 0, 0); font-size: 16px; font-family: times new
 roman,new york,times,serif; background-color: transparent; font-style: normal;">Oza: what I meant by object file is ELF file (ELF is something which is ready to be loaded/linked)</div><div class="" style="color: rgb(0, 0, 0); font-size: 16px; font-family: times new roman,new york,times,serif; background-color: transparent; font-style: normal;">this object file is nothing but one temporary file which crash utility will create...</div><div class="" style="color: rgb(0, 0, 0); font-size: 16px; font-family: times new roman,new york,times,serif; background-color: transparent; font-style: normal;">so if you give</div><div class="" style="color: rgb(0, 0, 0); font-size: 16px; font-family: times new roman,new york,times,serif; background-color: transparent; font-style: normal;"><br></div><div class="" style="color: rgb(0, 0, 0); font-size: 16px; font-family: times new roman,new york,times,serif; background-color: transparent; font-style: normal;">crash
 ./vmlinux ./ramdump.bin kernel_base_address</div><div class="" style="color: rgb(0, 0, 0); font-size: 16px; font-family: times new roman,new york,times,serif; background-color: transparent; font-style: normal;">it woudl have created ramdump_ARM_ELF32  (temporary file) which crash utility will understand).</div><div class="" style="color: rgb(0, 0, 0); font-size: 16px; font-family: times new roman,new york,times,serif; background-color: transparent; font-style: normal;">after you exit crash, the temporary filw would be deleted.<br></div><div class="" style="color: rgb(0, 0, 0); font-size: 16px; font-family: times new roman,new york,times,serif; background-color: transparent; font-style: normal;"><br style="" class="" clear="none">Is the newly-created vmcore subsequently recognized as a netdump or kdump<br style="" class="" clear="none">ELF vmcore?  (i.e, handled by existing code in netdump.c)  <br style="" class="" clear="none"></div><div
 class="" style="color: rgb(0, 0, 0); font-size: 16px; font-family: times new roman,new york,times,serif; background-color: transparent; font-style: normal;">Oza: it would be recognized as kdump (because I am currently using 'flags' of kdump), thsi is just to eb aligned with crash internal implementations.<br></div><div class="" style="color: rgb(0, 0, 0); font-size: 16px; font-family: times new roman,new york,times,serif; background-color: transparent; font-style: normal;">but nontheless it is a separate ELF file<br></div><div class="" style="color: rgb(0, 0, 0); font-size: 16px; font-family: times new roman,new york,times,serif; background-color: transparent; font-style: normal;"><br style="" class="" clear="none">Or does it create a new ELF-like dumpfile type that is handled in your new<br style="" class="" clear="none">ramdump.c file?</div><div class="" style="color: rgb(0, 0, 0); font-size: 16px; font-family: times new roman,new york,times,serif;
 background-color: transparent; font-style: normal;">Oza: it is separate ELF file.<br style="" class="" clear="none"><br style="" class="" clear="none">Could it be done in one step?  In other words, something like:<br style="" class="" clear="none"> <br style="" class="" clear="none">  $ crash vmlinux --ddr 80000000 ddr1.bin [ddr2.bin ...]<br style="" class="" clear="none"></div><div class="" style="color: rgb(0, 0, 0); font-size: 16px; font-family: times new roman,new york,times,serif; background-color: transparent; font-style: normal;"><br></div><div class="" style="color: rgb(0, 0, 0); font-size: 16px; font-family: times new roman,new york,times,serif; background-color: transparent; font-style: normal;">Oza: this is precisely what is hapepning.<br></div><div class="" style="color: rgb(0, 0, 0); font-size: 16px; font-family: times new roman,new york,times,serif; background-color: transparent; font-style: normal;"><br style="" class=""
 clear="none">where there would be a "virtual" ELF header created that could be used<br style="" class="" clear="none">during the crash session?  (perhaps with an optional "-o outputfile"<br style="" class="" clear="none">command line option to create/save it as an ELF vmcore) </div><div class="" style="color: rgb(0, 0, 0); font-size: 16px; font-family: times new roman,new york,times,serif; background-color: transparent; font-style: normal;"><br></div><div class="" style="color: rgb(0, 0, 0); font-size: 16px; font-family: times new roman,new york,times,serif; background-color: transparent; font-style: normal;">Oza: virtual ELF header, and one more virtual program header would be created in temporary file which, the budle, called ELF32.</div><div class="" style="color: rgb(0, 0, 0); font-size: 16px; font-family: times new roman,new york,times,serif; background-color: transparent; font-style: normal;">optional command line option could be created
 as well. but currently we take bin file only.</div><div class="" style="color: rgb(0, 0, 0); font-size: 16px; font-family: times new roman,new york,times,serif; background-color: transparent; font-style: normal;"><br></div><div class="" style="color: rgb(0, 0, 0); font-size: 16px; font-family: times new roman,new york,times,serif; background-color: transparent; font-style: normal;">please feel free to ask anymore questions.</div><div class="" style="color: rgb(0, 0, 0); font-size: 16px; font-family: times new roman,new york,times,serif; background-color: transparent; font-style: normal;">Oza.<br></div><div class="" style="color: rgb(0, 0, 0); font-size: 16px; font-family: times new roman,new york,times,serif; background-color: transparent; font-style: normal;"><br></div> <div class="qtdSeparateBR"><br><br></div><div style="display: block;" class="yahoo_quoted"> <div class="" style="font-family: times new roman, new york, times, serif; font-size: 12pt;">
 <div class="" style="font-family: times new roman, new york, times, serif; font-size: 12pt;"> <div style="" class="" dir="ltr"> <font style="" class="" face="Arial" size="2"> On Wednesday, 28 May 2014 9:50 PM, Dave Anderson <anderson@redhat.com> wrote:<br style="" class=""> </font> </div>  <br style="" class=""><br style="" class=""> <div style="" class=""><br style="" class="" clear="none"><br style="" class="" clear="none">----- Original Message -----<br style="" class="" clear="none">> Hi Dave,<br style="" class="" clear="none">> <br style="" class="" clear="none">> I am typing this reply from phone, so keeping it short, will give elaborate<br style="" class="" clear="none">> reply tomorrow if need.<br style="" class="" clear="none"><br style="" class="" clear="none">Yes -- please answer all of the questions in my email.<br style="" class="" clear="none"><br style="" class="" clear="none">> <br style="" class="" clear="none">>
 I am doing it in one step only,<br style="" class="" clear="none">> If you give something like below<br style="" class="" clear="none">> <br style="" class="" clear="none">> Crash vmlinux bin_file kernel_base<br style="" class="" clear="none">> <br style="" class="" clear="none">> Crashutility creates virtual elf32<br style="" class="" clear="none">> once you exit crash, crash will delete temporary arm elf file which we<br style="" class="" clear="none">> created in one step process.<br style="" class="" clear="none">> <br style="" class="" clear="none">> It will look like vmcore, but actually it is just conversion to elf, in fact<br style="" class="" clear="none">> vmcore is in elf format,<br style="" class="" clear="none">> <br style="" class="" clear="none">> Like kdump and merino lets call this one more format raw_ramdump_elf32<br style="" class="" clear="none"><br style="" class="" clear="none">What is
 "merino"?<div style="" class="" id="yqtfd08870"><br style="" class="" clear="none"><br style="" class="" clear="none">Dave<br style="" class="" clear="none"></div><br style="" class=""><br style="" class=""></div>  </div> </div>  </div> </div></body></html>