Michael,<br><br>  that doesn't seem to help.<div><br></div><div>Here are three CPU utilization plots.</div><div><br></div><div><div>What you can observe in the plots is a virtual machine attempting to boot 8 or 9 times, waiting ~7.5 seconds between attempts then rebooting and trying again.</div>

</div><div><br></div><div>The first one <a href="http://imagebin.org/222150">http://imagebin.org/222150</a> is the baseline and is built off:</div><div><br></div><div><div>commit 27fdb9557266eaaadfb39a2eddfb06d2aade9661</div>

<div>Author: Michael Brown <<a href="mailto:mcb30@ipxe.org">mcb30@ipxe.org</a>></div><div>Date:   Sat Nov 12 00:34:55 2011 +0000</div></div><div><br></div><div>The second one <a href="http://imagebin.org/222151">http://imagebin.org/222151</a> is built off that same commit, with my "sleeping beauty" patch. Note the different scale due to the much lower CPU utilization (0.7% in the idle times as compared to 60% from baseline iPXE).</div>

<div><br></div><div>The third one <a href="http://imagebin.org/222152">http://imagebin.org/222152</a> is built off that same commit, plus your getkey cpu nap edit. I can't see any significant improvement. But I was expecting that, since we have an embedded script.</div>

<div><br></div><div>I you want to be more conservative, you can initialize do_not_sleep to 1 instead of 0, and let the beauty bite the apple right before it parses the embedded scripts or autoboots. But even the way it is, it works like a charm for me and doesn't seem to slow down the normal booting by any measurable amount.</div>

<div><br></div><div>We thought it'd be good to contribute back, but feel free not to include it if you still have some concerns, or to adjust it as you feel it needs (like only linking it for some configuration parameter), or take the idea and re-implement it in a way you like better.</div>

<div><br></div><div>thank you!</div><div><div>-Alessandro-</div><div> Here i am, A young man,</div><div> A crashing computer program,</div><div> Here is a pen, write out my name...</div><div><br></div><div>(from: The Servant - Orchestra)</div>

<br>baseline iPXE CPU utilization when bootserver is missing in action<br><a href="http://imagebin.org/222150">http://imagebin.org/222150</a><br><img src="cid:ii_138c0ec717c81185" alt="Inline image 1"><br><br>iPXE CPU utilization when bootserver is missing in action, with sleeping beauty patch.<div>

<a href="http://imagebin.org/222151">http://imagebin.org/222151</a></div><div><img src="cid:ii_138c0ed409deb4a3" alt="Inline image 1"><br><br>iPXE CPU utilization when bootserver is missing in action, getkey patch.</div>
<div>
<a href="http://imagebin.org/222152">http://imagebin.org/222152</a></div><div><img src="cid:ii_138c0ee195a4d1c4" alt="Inline image 2"><br><br>-Alessandro-<br><br>On Tue, Jul 24, 2012 at 2:59 AM, Michael Brown <<a href="mailto:mbrown@fensystems.co.uk">mbrown@fensystems.co.uk</a>> wrote:<br>

> On Tuesday 24 Jul 2012 02:26:41 Alessandro Salvatori wrote:<br>>>   if the server is missing in action, one may want to retry at regular<br>>> intervals (via sleep and goto) but until a download starts making<br>

>> progress, all that polling is a bit overkill, since we'd be just receiving<br>>> a few seldom packets.<br>><br>> Thanks for clarifying.<br>><br>> iPXE already calls cpu_nap() during sleep_exec(); it should use almost no CPU<br>

> in the middle of a "sleep"<br>><br>> However, in the process of investigating this, I was surprised to discover<br>> that iPXE doesn't call cpu_nap() while waiting for user input (e.g. at the<br>

> shell prompt).  This is now fixed:<br>><br>>   <a href="http://git.ipxe.org/ipxe.git/commitdiff/183a70e">http://git.ipxe.org/ipxe.git/commitdiff/183a70e</a><br>><br>> Michael<br></div></div>