<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8">
<META NAME="Generator" CONTENT="MS Exchange Server version 6.5.7651.59">
<TITLE>Re: kdump info request</TITLE>
</HEAD>
<BODY>
<!-- Converted from text/plain format -->

<P><FONT SIZE=2>Will try.<BR>
<BR>
Thanks<BR>
Atul<BR>
<BR>
<BR>
----- Original Message -----<BR>
From: Randy Dunlap &lt;rdunlap@xenotime.net&gt;<BR>
To: Mukker, Atul<BR>
Cc: vgoyal@in.ibm.com &lt;vgoyal@in.ibm.com&gt;; Moore, Eric; Kexec Mailing List &lt;kexec@lists.infradead.org&gt;<BR>
Sent: Sat Sep 22 12:35:53 2007<BR>
Subject: Re: kdump info request<BR>
<BR>
On Fri, 21 Sep 2007 06:48:01 -0600 Mukker, Atul wrote:<BR>
<BR>
&gt; One more question, and hopefully I will not bug you further on this :-)<BR>
&gt;<BR>
&gt; How exactly do you parse the kernel parameters? I thought it would be<BR>
&gt; plain simple, but seems like the command line string is not available to<BR>
&gt; SCSI driver like ours, or I am missing something?<BR>
<BR>
#include &lt;linux/init.h&gt;&nbsp; // for extern of 'saved_command_line' pointer.<BR>
<BR>
and use calls to any functions in lib/cmdline.c or write your<BR>
own functions.&nbsp; Should be fairly simple to scan for a fixed string<BR>
of &quot;elfcorehdr=&quot;.<BR>
You don't care about the variable parameters.. or do you?<BR>
<BR>
<BR>
&gt; Thanks<BR>
&gt; -Atul<BR>
&gt;<BR>
&gt; -----Original Message-----<BR>
&gt; From: Vivek Goyal [<A HREF="mailto:vgoyal@in.ibm.com">mailto:vgoyal@in.ibm.com</A>]<BR>
&gt; Sent: Friday, September 21, 2007 12:15 AM<BR>
&gt; To: Mukker, Atul<BR>
&gt; Cc: Kexec Mailing List; Moore, Eric<BR>
&gt; Subject: Re: kdump info request<BR>
&gt;<BR>
&gt; On Wed, Sep 19, 2007 at 07:26:19AM -0600, Mukker, Atul wrote:<BR>
&gt; [..]<BR>
&gt; &gt; &gt;<BR>
&gt; &gt; &gt; If we could somehow determine that we are being called in context of<BR>
&gt; &gt; capture kernel, we can dynamically lower driver memory requirement (at<BR>
&gt; &gt; cost of lower IO throughout of-course, which is ok for this brief<BR>
&gt; &gt; context).<BR>
&gt; &gt;<BR>
&gt; &gt; You can parse the command line and look for presence of elfcorehdr=<BR>
&gt; &gt; option.<BR>
&gt; &gt; This is internally appended to command line by kexec tools to tell<BR>
&gt; &gt; capture<BR>
&gt; &gt; kernel the address of ELF core headers.<BR>
&gt; &gt;<BR>
&gt; &gt;<BR>
&gt; &gt; [AM] Is this a standard way? Doesn't look like one. According to<BR>
&gt; &gt; kernel-parameters.txt, kexec would &quot;generally&quot; pass this option to<BR>
&gt; &gt; kernel command line. Can we look at &quot;struct resource crashk_res&quot; and<BR>
&gt; &gt; check if start and end member have different value, which indicates<BR>
&gt; &gt; capture kernel?<BR>
&gt; &gt;<BR>
&gt;<BR>
&gt; Well, nobody else so far has had such requirements so can't say if this<BR>
&gt; is standard way. But this is the best way I can think of so far.<BR>
&gt;<BR>
&gt; Using crashk_res will not work. Not all users will use kdump and will<BR>
&gt; not<BR>
&gt; reserve any memory for capture kernel. In that case crashk_res will be<BR>
&gt; zero for start and end and you don't want to trim down the functionality<BR>
&gt; of your driver.<BR>
&gt;<BR>
&gt; &gt; What's the memory allocation requirement of current RAID driver? How<BR>
&gt; &gt; much<BR>
&gt; &gt; memory you are reserving for capture kernel? Are you already seeing<BR>
&gt; the<BR>
&gt; &gt; memory allocation failure?<BR>
&gt; &gt;<BR>
&gt; &gt; [AM] Our normal runtime memory is about 20MB. For the test beds, we<BR>
&gt; use<BR>
&gt; &gt; &quot;crashkernel=192M@16M&quot;. We have not yet seen the allocation failure<BR>
&gt; but<BR>
&gt; &gt; we would like to build the fallback mechanism if it does fail under<BR>
&gt; &gt; capture kernel. Only if we are not able to get the normal runtime<BR>
&gt; &gt; memory, we plan to switch to a lower memory model.<BR>
&gt; &gt;<BR>
&gt;<BR>
&gt; 20MB is huge. I agree that it is a good idea to bring it down for<BR>
&gt; capture<BR>
&gt; kernel if performance is not significantly impacted.<BR>
&gt;<BR>
&gt; &gt; I feel until and unless memory requirements are huge, we should not<BR>
&gt; &gt; compromise with IO throughput. Capability to save the dump to disk as<BR>
&gt; &gt; fast<BR>
&gt; &gt; as possible to reduce the down time is also an important<BR>
&gt; consideration.<BR>
&gt; &gt;<BR>
&gt; &gt; [AM] We believe our normal runtime memory requirement is significant.<BR>
&gt; &gt; Also, even with the lower memory, there would not be a noticeable dump<BR>
&gt; &gt; time difference since lot of memory is for supporting multiple<BR>
&gt; &gt; outstanding commands in driver's raid core and other raid operations,<BR>
&gt; &gt; which will not be running under capture kernel. Thanks again for your<BR>
&gt; &gt; feedback.<BR>
&gt; &gt;<BR>
&gt;<BR>
&gt; Makes sense.<BR>
&gt;<BR>
&gt; Thanks<BR>
&gt; Vivek<BR>
&gt;<BR>
&gt; _______________________________________________<BR>
&gt; kexec mailing list<BR>
&gt; kexec@lists.infradead.org<BR>
&gt; <A HREF="http://lists.infradead.org/mailman/listinfo/kexec">http://lists.infradead.org/mailman/listinfo/kexec</A><BR>
&gt;<BR>
<BR>
<BR>
---<BR>
~Randy<BR>
*** Remember to use Documentation/SubmitChecklist when testing your code ***<BR>
</FONT>
</P>

</BODY>
</HTML>