| <!DOCTYPE html> |
| |
| <html lang="en" data-content_root="../"> |
| <head> |
| <meta charset="utf-8" /> |
| <meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="viewport" content="width=device-width, initial-scale=1" /> |
| |
| <title>skiboot-5.4.6 — skiboot d365a01 |
| documentation</title> |
| <link rel="stylesheet" type="text/css" href="../_static/pygments.css?v=fa44fd50" /> |
| <link rel="stylesheet" type="text/css" href="../_static/classic.css?v=514cf933" /> |
| |
| <script src="../_static/documentation_options.js?v=e1fecbe9"></script> |
| <script src="../_static/doctools.js?v=888ff710"></script> |
| <script src="../_static/sphinx_highlight.js?v=dc90522c"></script> |
| |
| <link rel="index" title="Index" href="../genindex.html" /> |
| <link rel="search" title="Search" href="../search.html" /> |
| <link rel="next" title="skiboot-5.4.7" href="skiboot-5.4.7.html" /> |
| <link rel="prev" title="skiboot-5.4.5" href="skiboot-5.4.5.html" /> |
| </head><body> |
| <div class="related" role="navigation" aria-label="related navigation"> |
| <h3>Navigation</h3> |
| <ul> |
| <li class="right" style="margin-right: 10px"> |
| <a href="../genindex.html" title="General Index" |
| accesskey="I">index</a></li> |
| <li class="right" > |
| <a href="skiboot-5.4.7.html" title="skiboot-5.4.7" |
| accesskey="N">next</a> |</li> |
| <li class="right" > |
| <a href="skiboot-5.4.5.html" title="skiboot-5.4.5" |
| accesskey="P">previous</a> |</li> |
| <li class="nav-item nav-item-0"><a href="../index.html">skiboot d365a01 |
| documentation</a> »</li> |
| <li class="nav-item nav-item-1"><a href="index.html" accesskey="U">Release Notes</a> »</li> |
| <li class="nav-item nav-item-this"><a href="">skiboot-5.4.6</a></li> |
| </ul> |
| </div> |
| |
| <div class="document"> |
| <div class="documentwrapper"> |
| <div class="bodywrapper"> |
| <div class="body" role="main"> |
| |
| <section id="skiboot-5-4-6"> |
| <span id="id1"></span><h1>skiboot-5.4.6<a class="headerlink" href="#skiboot-5-4-6" title="Link to this heading">¶</a></h1> |
| <p>skiboot-5.4.6 was released on Wednesday June 14th, 2017. It replaces |
| <a class="reference internal" href="skiboot-5.4.5.html#skiboot-5-4-5"><span class="std std-ref">skiboot-5.4.5</span></a> as the current stable release in the 5.4.x series.</p> |
| <p>Over <a class="reference internal" href="skiboot-5.4.5.html#skiboot-5-4-5"><span class="std std-ref">skiboot-5.4.5</span></a>, we have a small number of bug fixes for |
| FSP based platforms:</p> |
| <ul> |
| <li><p>FSP/CONSOLE: Workaround for unresponsive ipmi daemon</p> |
| <p>In some corner cases, where FSP is active but not responding to |
| console MBOX message (due to buggy IPMI) and we have heavy console |
| write happening from kernel, then eventually our console buffer |
| becomes full. At this point OPAL starts sending OPAL_BUSY_EVENT to |
| kernel. Kernel will keep on retrying. This is creating kernel soft |
| lockups. In some extreme case when every CPU is trying to write to |
| console, user will not be able to ssh and thinks system is hang.</p> |
| <p>If we reset FSP or restart IPMI daemon on FSP, system recovers and |
| everything becomes normal.</p> |
| <p>This patch adds workaround to above issue by returning OPAL_HARDWARE |
| when cosole is full. Side effect of this patch is, we may endup dropping |
| latest console data. But better to drop console data than system hang.</p> |
| <p>Alternative approach is to drop old data from console buffer, make space |
| for new data. But in normal condition only FSP can update ‘next_out’ |
| pointer and if we touch that pointer, it may introduce some other |
| race conditions. Hence we decided to just new console write request.</p> |
| </li> |
| <li><p>FSP: Set status field in response message for timed out message</p> |
| <p>For timed out FSP messages, we set message status as “fsp_msg_timeout”. |
| But most FSP driver users (like surviellance) are ignoring this field. |
| They always look for FSP returned status value in callback function |
| (second byte in word1). So we endup treating timed out message as success |
| response from FSP.</p> |
| <p>Sample output:</p> |
| <div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="p">[</span><span class="mf">69902.432509048</span><span class="p">,</span><span class="mi">7</span><span class="p">]</span> <span class="n">SURV</span><span class="p">:</span> <span class="n">Sending</span> <span class="n">the</span> <span class="n">heartbeat</span> <span class="n">command</span> <span class="n">to</span> <span class="n">FSP</span> |
| <span class="p">[</span><span class="mf">70023.226860117</span><span class="p">,</span><span class="mi">4</span><span class="p">]</span> <span class="n">FSP</span><span class="p">:</span> <span class="n">Response</span> <span class="kn">from</span> <span class="nn">FSP</span> <span class="n">timed</span> <span class="n">out</span><span class="p">,</span> <span class="n">word0</span> <span class="o">=</span> <span class="n">d66a00d7</span><span class="p">,</span> <span class="n">word1</span> <span class="o">=</span> <span class="mi">0</span> <span class="n">state</span><span class="p">:</span> <span class="mi">3</span> |
| <span class="o">....</span> |
| <span class="p">[</span><span class="mf">70023.226901445</span><span class="p">,</span><span class="mi">7</span><span class="p">]</span> <span class="n">SURV</span><span class="p">:</span> <span class="n">Received</span> <span class="n">heartbeat</span> <span class="n">acknowledge</span> <span class="kn">from</span> <span class="nn">FSP</span> |
| <span class="p">[</span><span class="mf">70023.226903251</span><span class="p">,</span><span class="mi">3</span><span class="p">]</span> <span class="n">FSP</span><span class="p">:</span> <span class="n">fsp_trigger_reset</span><span class="p">()</span> <span class="n">entry</span> |
| </pre></div> |
| </div> |
| <p>Here SURV code thought it got valid response from FSP. But actually we didn’t |
| receive response from FSP.</p> |
| </li> |
| <li><p>FSP: Improve timeout message</p> |
| <p>Presently we print word0 and word1 in error log. word0 contains |
| sequence number and command class. One has to understand word0 |
| format to identify command class.</p> |
| <p>Lets explicitly print command class, sub command etc.</p> |
| </li> |
| <li><p>FSP/RTC: Remove local fsp_in_reset variable</p> |
| <p>Now that we are using fsp_in_rr() to detect FSP reset/reload, fsp_in_reset |
| become redundant. Lets remove this local variable.</p> |
| </li> |
| <li><p>FSP/RTC: Fix possible FSP R/R issue in rtc write path</p> |
| <p>fsp_opal_rtc_write() checks FSP status before queueing message to FSP. But if |
| FSP R/R starts before getting response to queued message then we will continue |
| to return OPAL_BUSY_EVENT to host. In some extreme condition host may |
| experience hang. Once FSP is back we will repost message, get response from FSP |
| and return OPAL_SUCCESS to host.</p> |
| <p>This patch caches new values and returns OPAL_SUCCESS if FSP R/R is happening. |
| And once FSP is back we will send cached value to FSP.</p> |
| </li> |
| <li><p>hw/fsp/rtc: read/write cached rtc tod on fsp hir.</p> |
| <p>Currently fsp-rtc reads/writes the cached RTC TOD on an fsp |
| reset. Use latest fsp_in_rr() function to properly read the cached rtc |
| value when fsp reset initiated by the hir.</p> |
| <p>Below is the kernel trace when we set hw clock, when hir process starts.</p> |
| <div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="p">[</span> <span class="mf">1727.775824</span><span class="p">]</span> <span class="n">NMI</span> <span class="n">watchdog</span><span class="p">:</span> <span class="n">BUG</span><span class="p">:</span> <span class="n">soft</span> <span class="n">lockup</span> <span class="o">-</span> <span class="n">CPU</span><span class="c1">#57 stuck for 23s! [hwclock:7688]</span> |
| <span class="p">[</span> <span class="mf">1727.775856</span><span class="p">]</span> <span class="n">Modules</span> <span class="n">linked</span> <span class="ow">in</span><span class="p">:</span> <span class="n">vmx_crypto</span> <span class="n">ibmpowernv</span> <span class="n">ipmi_powernv</span> <span class="n">uio_pdrv_genirq</span> <span class="n">ipmi_devintf</span> <span class="n">powernv_op_panel</span> <span class="n">uio</span> <span class="n">ipmi_msghandler</span> <span class="n">powernv_rng</span> <span class="n">leds_powernv</span> <span class="n">ip_tables</span> <span class="n">x_tables</span> <span class="n">autofs4</span> <span class="n">ses</span> <span class="n">enclosure</span> <span class="n">scsi_transport_sas</span> <span class="n">crc32c_vpmsum</span> <span class="n">lpfc</span> <span class="n">ipr</span> <span class="n">tg3</span> <span class="n">scsi_transport_fc</span> |
| <span class="p">[</span> <span class="mf">1727.775883</span><span class="p">]</span> <span class="n">CPU</span><span class="p">:</span> <span class="mi">57</span> <span class="n">PID</span><span class="p">:</span> <span class="mi">7688</span> <span class="n">Comm</span><span class="p">:</span> <span class="n">hwclock</span> <span class="n">Not</span> <span class="n">tainted</span> <span class="mf">4.10.0</span><span class="o">-</span><span class="mi">14</span><span class="o">-</span><span class="n">generic</span> <span class="c1">#16-Ubuntu</span> |
| <span class="p">[</span> <span class="mf">1727.775883</span><span class="p">]</span> <span class="n">task</span><span class="p">:</span> <span class="n">c000000fdfdc8400</span> <span class="n">task</span><span class="o">.</span><span class="n">stack</span><span class="p">:</span> <span class="n">c000000fdfef4000</span> |
| <span class="p">[</span> <span class="mf">1727.775884</span><span class="p">]</span> <span class="n">NIP</span><span class="p">:</span> <span class="n">c00000000090540c</span> <span class="n">LR</span><span class="p">:</span> <span class="n">c0000000000846f4</span> <span class="n">CTR</span><span class="p">:</span> <span class="mi">000000003006</span><span class="n">dd70</span> |
| <span class="p">[</span> <span class="mf">1727.775885</span><span class="p">]</span> <span class="n">REGS</span><span class="p">:</span> <span class="n">c000000fdfef79a0</span> <span class="n">TRAP</span><span class="p">:</span> <span class="mi">0901</span> <span class="n">Not</span> <span class="n">tainted</span> <span class="p">(</span><span class="mf">4.10.0</span><span class="o">-</span><span class="mi">14</span><span class="o">-</span><span class="n">generic</span><span class="p">)</span> |
| <span class="p">[</span> <span class="mf">1727.775886</span><span class="p">]</span> <span class="n">MSR</span><span class="p">:</span> <span class="mi">9000000000009033</span> <span class="o"><</span><span class="n">SF</span><span class="p">,</span><span class="n">HV</span><span class="p">,</span><span class="n">EE</span><span class="p">,</span><span class="n">ME</span><span class="p">,</span><span class="n">IR</span><span class="p">,</span><span class="n">DR</span><span class="p">,</span><span class="n">RI</span><span class="p">,</span><span class="n">LE</span><span class="o">></span> |
| <span class="p">[</span> <span class="mf">1727.775889</span><span class="p">]</span> <span class="n">CR</span><span class="p">:</span> <span class="mi">28024442</span> <span class="n">XER</span><span class="p">:</span> <span class="mi">20000000</span> |
| <span class="p">[</span> <span class="mf">1727.775890</span><span class="p">]</span> <span class="n">CFAR</span><span class="p">:</span> <span class="n">c00000000008472c</span> <span class="n">SOFTE</span><span class="p">:</span> <span class="mi">1</span> |
| <span class="n">GPR00</span><span class="p">:</span> <span class="mi">0000000030005128</span> <span class="n">c000000fdfef7c20</span> <span class="n">c00000000144c900</span> <span class="n">fffffffffffffff4</span> |
| <span class="n">GPR04</span><span class="p">:</span> <span class="mi">0000000028024442</span> <span class="n">c00000000090540c</span> <span class="mi">9000000000009033</span> <span class="mi">0000000000000000</span> |
| <span class="n">GPR08</span><span class="p">:</span> <span class="mi">0000000000000000</span> <span class="mi">0000000031</span><span class="n">fc4000</span> <span class="n">c000000000084710</span> <span class="mi">9000000000001003</span> |
| <span class="n">GPR12</span><span class="p">:</span> <span class="n">c0000000000846e8</span> <span class="n">c00000000fba0100</span> |
| <span class="p">[</span> <span class="mf">1727.775897</span><span class="p">]</span> <span class="n">NIP</span> <span class="p">[</span><span class="n">c00000000090540c</span><span class="p">]</span> <span class="n">opal_set_rtc_time</span><span class="o">+</span><span class="mh">0x4c</span><span class="o">/</span><span class="mh">0xb0</span> |
| <span class="p">[</span> <span class="mf">1727.775899</span><span class="p">]</span> <span class="n">LR</span> <span class="p">[</span><span class="n">c0000000000846f4</span><span class="p">]</span> <span class="n">opal_return</span><span class="o">+</span><span class="mh">0xc</span><span class="o">/</span><span class="mh">0x48</span> |
| <span class="p">[</span> <span class="mf">1727.775899</span><span class="p">]</span> <span class="n">Call</span> <span class="n">Trace</span><span class="p">:</span> |
| <span class="p">[</span> <span class="mf">1727.775900</span><span class="p">]</span> <span class="p">[</span><span class="n">c000000fdfef7c20</span><span class="p">]</span> <span class="p">[</span><span class="n">c00000000090540c</span><span class="p">]</span> <span class="n">opal_set_rtc_time</span><span class="o">+</span><span class="mh">0x4c</span><span class="o">/</span><span class="mh">0xb0</span> <span class="p">(</span><span class="n">unreliable</span><span class="p">)</span> |
| <span class="p">[</span> <span class="mf">1727.775901</span><span class="p">]</span> <span class="p">[</span><span class="n">c000000fdfef7c60</span><span class="p">]</span> <span class="p">[</span><span class="n">c000000000900828</span><span class="p">]</span> <span class="n">rtc_set_time</span><span class="o">+</span><span class="mh">0xb8</span><span class="o">/</span><span class="mh">0x1b0</span> |
| <span class="p">[</span> <span class="mf">1727.775903</span><span class="p">]</span> <span class="p">[</span><span class="n">c000000fdfef7ca0</span><span class="p">]</span> <span class="p">[</span><span class="n">c000000000902364</span><span class="p">]</span> <span class="n">rtc_dev_ioctl</span><span class="o">+</span><span class="mh">0x454</span><span class="o">/</span><span class="mh">0x630</span> |
| <span class="p">[</span> <span class="mf">1727.775904</span><span class="p">]</span> <span class="p">[</span><span class="n">c000000fdfef7d40</span><span class="p">]</span> <span class="p">[</span><span class="n">c00000000035b1f4</span><span class="p">]</span> <span class="n">do_vfs_ioctl</span><span class="o">+</span><span class="mh">0xd4</span><span class="o">/</span><span class="mh">0x8c0</span> |
| <span class="p">[</span> <span class="mf">1727.775906</span><span class="p">]</span> <span class="p">[</span><span class="n">c000000fdfef7de0</span><span class="p">]</span> <span class="p">[</span><span class="n">c00000000035bab4</span><span class="p">]</span> <span class="n">SyS_ioctl</span><span class="o">+</span><span class="mh">0xd4</span><span class="o">/</span><span class="mh">0xf0</span> |
| <span class="p">[</span> <span class="mf">1727.775907</span><span class="p">]</span> <span class="p">[</span><span class="n">c000000fdfef7e30</span><span class="p">]</span> <span class="p">[</span><span class="n">c00000000000b184</span><span class="p">]</span> <span class="n">system_call</span><span class="o">+</span><span class="mh">0x38</span><span class="o">/</span><span class="mh">0xe0</span> |
| <span class="p">[</span> <span class="mf">1727.775908</span><span class="p">]</span> <span class="n">Instruction</span> <span class="n">dump</span><span class="p">:</span> |
| <span class="p">[</span> <span class="mf">1727.775909</span><span class="p">]</span> <span class="n">f821ffc1</span> <span class="mi">39200000</span> <span class="mi">7</span><span class="n">c832378</span> <span class="mi">91210028</span> <span class="mi">38</span><span class="n">a10020</span> <span class="mi">39200000</span> <span class="mi">38810028</span> <span class="n">f9210020</span> |
| <span class="p">[</span> <span class="mf">1727.775911</span><span class="p">]</span> <span class="mi">4</span><span class="n">bfffe6d</span> <span class="n">e8810020</span> <span class="mi">80610028</span> <span class="mi">4</span><span class="n">b77f61d</span> <span class="o"><</span><span class="mi">60000000</span><span class="o">></span> <span class="mi">7</span><span class="n">c7f1b78</span> <span class="mi">3860000</span><span class="n">a</span> <span class="mi">2</span><span class="n">fbffff4</span> |
| </pre></div> |
| </div> |
| <p>This is found when executing the <a class="reference external" href="https://github.com/open-power/op-test-framework/blob/master/testcases/fspresetReload.py">op-test-framework fspresetReload testcase</a></p> |
| <p>With this fix ran fsp hir torture testcase in the above test |
| which is working fine.</p> |
| </li> |
| <li><p>FSP/CHIPTOD: Return false in error path</p></li> |
| </ul> |
| </section> |
| |
| |
| <div class="clearer"></div> |
| </div> |
| </div> |
| </div> |
| <div class="sphinxsidebar" role="navigation" aria-label="main navigation"> |
| <div class="sphinxsidebarwrapper"> |
| <div> |
| <h4>Previous topic</h4> |
| <p class="topless"><a href="skiboot-5.4.5.html" |
| title="previous chapter">skiboot-5.4.5</a></p> |
| </div> |
| <div> |
| <h4>Next topic</h4> |
| <p class="topless"><a href="skiboot-5.4.7.html" |
| title="next chapter">skiboot-5.4.7</a></p> |
| </div> |
| <div role="note" aria-label="source link"> |
| <h3>This Page</h3> |
| <ul class="this-page-menu"> |
| <li><a href="../_sources/release-notes/skiboot-5.4.6.rst.txt" |
| rel="nofollow">Show Source</a></li> |
| </ul> |
| </div> |
| <div id="searchbox" style="display: none" role="search"> |
| <h3 id="searchlabel">Quick search</h3> |
| <div class="searchformwrapper"> |
| <form class="search" action="../search.html" method="get"> |
| <input type="text" name="q" aria-labelledby="searchlabel" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"/> |
| <input type="submit" value="Go" /> |
| </form> |
| </div> |
| </div> |
| <script>document.getElementById('searchbox').style.display = "block"</script> |
| </div> |
| </div> |
| <div class="clearer"></div> |
| </div> |
| <div class="related" role="navigation" aria-label="related navigation"> |
| <h3>Navigation</h3> |
| <ul> |
| <li class="right" style="margin-right: 10px"> |
| <a href="../genindex.html" title="General Index" |
| >index</a></li> |
| <li class="right" > |
| <a href="skiboot-5.4.7.html" title="skiboot-5.4.7" |
| >next</a> |</li> |
| <li class="right" > |
| <a href="skiboot-5.4.5.html" title="skiboot-5.4.5" |
| >previous</a> |</li> |
| <li class="nav-item nav-item-0"><a href="../index.html">skiboot d365a01 |
| documentation</a> »</li> |
| <li class="nav-item nav-item-1"><a href="index.html" >Release Notes</a> »</li> |
| <li class="nav-item nav-item-this"><a href="">skiboot-5.4.6</a></li> |
| </ul> |
| </div> |
| <div class="footer" role="contentinfo"> |
| © Copyright 2016-2017, IBM, others. |
| Created using <a href="https://www.sphinx-doc.org/">Sphinx</a> 7.2.6. |
| </div> |
| </body> |
| </html> |