lkml.org 
[lkml]   [2018]   [Jul]   [23]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
SubjectRe: Issue related cpuhotplug failure path on 4.9.x version
From
Date
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body text="#000000" bgcolor="#FFFFFF">
<p>Adding stable and lkml.</p>
<p>Sorry for spam others.<br>
<br>
</p>
<p>-Mukesh<br>
</p>
<div class="moz-cite-prefix">On 7/23/2018 1:57 PM, Mukesh Ojha
wrote:<br>
</div>
<blockquote type="cite"
cite="mid:4c43c9d5-cd7d-4f2f-70b3-384863a3fe61@codeaurora.org">
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<p>Hi All,<br>
<br>
I wanted to discuss about one of the corner case exists in 4.9
kernel (4.9.x) where<br>
If hotplug of one of the CPU fails due to failure in one of the
callback,<br>
which is to be called after <span class="s" style="box-sizing:
inherit;">"notify:online"</span><span class="p"
style="box-sizing: inherit;">(as notify_online will create
sysfs nodes<br>
for the hotplug cpu) .<br>
<br>
So, while cleaning up notify_dead() does not get called as </span><span
class="p" style="box-sizing: inherit;"><span class="p"
style="box-sizing: inherit;"><span class="n"
style="box-sizing: inherit;"><span class="n"
style="box-sizing: inherit;"> </span><span class="n"
style="box-sizing: inherit;"><a
href="https://elixir.bootlin.com/linux/v4.9/ident/step"
style="box-sizing: inherit; background-color: rgb(244,
246, 255); text-decoration: none; font-weight: 700;
box-shadow: 0px 0px 0px 1px rgb(244, 246, 255);
border-radius: 0.2em;" moz-do-not-send="true">step</a></span><span
class="o" style="box-sizing: inherit;">-&gt;</span><span
class="n" style="box-sizing: inherit;">skip_onerr set to<br>
true for </span><span class="s" style="box-sizing:
inherit;">"notify:prepare"</span><span class="p"
style="box-sizing: inherit;"> and due to that sysfs
nodes of that cpu does not get<br>
cleaned up which can cause issue in next hotplug attempt
of that cpu.<br>
</span></span></span></span></p>
<p>                                                   Fails    <br>
<span class="nf" style="box-sizing: inherit;"><a
href="https://elixir.bootlin.com/linux/v4.9/ident/cpuhp_up_callbacks"
style="box-sizing: inherit; background-color: rgb(244, 246,
255); text-decoration: none; font-weight: 700; box-shadow:
0px 0px 0px 1px rgb(244, 246, 255); border-radius: 0.2em;
border-bottom: 1px dotted rgb(0, 0, 0);"
moz-do-not-send="true">cpuhp_up_callbacks</a> =&gt;</span> <span
class="n" style="box-sizing: inherit;"><a
href="https://elixir.bootlin.com/linux/v4.9/ident/cpuhp_invoke_callback"
style="box-sizing: inherit; background-color: rgb(244, 246,
255); text-decoration: none; font-weight: 700; box-shadow:
0px 0px 0px 1px rgb(244, 246, 255); border-radius: 0.2em;"
moz-do-not-send="true">cpuhp_invoke_callback</a> =&gt; </span><span
class="n" style="box-sizing: inherit;"><a
href="https://elixir.bootlin.com/linux/v4.9/ident/undo_cpu_up"
style="box-sizing: inherit; background-color: rgb(244, 246,
255); text-decoration: none; font-weight: 700; box-shadow:
0px 0px 0px 1px rgb(244, 246, 255); border-radius: 0.2em;"
moz-do-not-send="true">undo_cpu_up</a> <br>
</span></p>
<p><span class="p" style="box-sizing: inherit;"></span><span
class="p" style="box-sizing: inherit;">.</span><span class="n"
style="box-sizing: inherit;">name</span> <span class="o"
style="box-sizing: inherit;">=</span> <span class="s"
style="box-sizing: inherit;">"notify:prepare"</span><span
class="p" style="box-sizing: inherit;">,</span><br>
<span class="p" style="box-sizing: inherit;"></span><span
class="p" style="box-sizing: inherit;">.</span><span class="n"
style="box-sizing: inherit;">teardown</span><span class="p"
style="box-sizing: inherit;">.</span><span class="n"
style="box-sizing: inherit;">single</span> <span class="o"
style="box-sizing: inherit;">=</span> <span class="n"
style="box-sizing: inherit;"><a
href="https://elixir.bootlin.com/linux/v4.9/ident/notify_dead"
style="box-sizing: inherit; background-color: rgb(244, 246,
255); text-decoration: none; font-weight: 700; box-shadow:
0px 0px 0px 1px rgb(244, 246, 255); border-radius: 0.2em;"
moz-do-not-send="true">notify_dead</a></span><span class="p"
style="box-sizing: inherit;">,</span><span class="p"
style="box-sizing: inherit;"></span><br>
<span class="p" style="box-sizing: inherit;"></span><span
class="p" style="box-sizing: inherit;">.</span><span class="n"
style="box-sizing: inherit;">skip_onerr</span> <span
class="o" style="box-sizing: inherit;">=</span> <span
class="nb" style="box-sizing: inherit;">true</span><span
class="p" style="box-sizing: inherit;">,</span></p>
<p><span class="p" style="box-sizing: inherit;">I think the
possible solution here could be to remove the </span><br>
<span class="p" style="box-sizing: inherit;"><span class="p"
style="box-sizing: inherit;">-            .</span><span
class="n" style="box-sizing: inherit;">skip_onerr</span> <span
class="o" style="box-sizing: inherit;">=</span> <span
class="nb" style="box-sizing: inherit;">true</span><span
class="p" style="box-sizing: inherit;">,</span></span></p>
<p><span class="p" style="box-sizing: inherit;"><span class="p"
style="box-sizing: inherit;">for </span></span><span
class="s" style="box-sizing: inherit;">"notify:prepare"</span><span
class="p" style="box-sizing: inherit;"> so that CPU_DEAD
notification get send.</span></p>
<p><span class="p" style="box-sizing: inherit;">Please, feel free
to suggest if it has any side-effect as i don't feel any.<br>
</span></p>
<p><span class="p" style="box-sizing: inherit;">Ref: <br>
</span></p>
<p><span class="p" style="box-sizing: inherit;"><a
class="moz-txt-link-freetext"
href="https://elixir.bootlin.com/linux/v4.9/source/kernel/cpu.c#L458"
moz-do-not-send="true">https://elixir.bootlin.com/linux/v4.9/source/kernel/cpu.c#L458</a><br>
</span></p>
<p><span class="p" style="box-sizing: inherit; color: rgb(102,
102, 102);"><font color="#000000">Cheers,<br>
Mukesh</font><br>
</span></p>
<p><span class="p" style="box-sizing: inherit; color: rgb(102,
102, 102);"><br>
</span></p>
<p><span class="p" style="box-sizing: inherit; color: rgb(102,
102, 102);"><br>
</span></p>
<p><span class="p" style="box-sizing: inherit; color: rgb(102,
102, 102);"></span><br>
<span class="p" style="box-sizing: inherit; color: rgb(102, 102,
102);"><span class="p" style="box-sizing: inherit; color:
rgb(102, 102, 102);"></span></span></p>
<p><span class="p" style="box-sizing: inherit; color: rgb(102,
102, 102);"></span><br>
<span class="p" style="box-sizing: inherit; color: rgb(102, 102,
102);"></span></p>
<pre style="box-sizing: inherit; font-family: &quot;Ubuntu Mono&quot;, monospace; font-size: 0.9em; line-height: 1.2; padding: 1em 0px 4em 1em; color: rgb(0, 0, 0); margin: 0px; min-height: 100%; tab-size: 8; white-space: pre; word-spacing: 0px; word-break: normal; word-wrap: normal; hyphens: none; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; widows: 2; -webkit-text-stroke-width: 0px; text-decoration-style: initial; text-decoration-color: initial;"><span class="p" style="box-sizing: inherit; color: rgb(102, 102, 102);">


</span><span class="p" style="box-sizing: inherit; color: rgb(102, 102, 102);"></span></pre>
<p><span class="p" style="box-sizing: inherit; color: rgb(102,
102, 102);"></span></p>
<p><span class="p" style="box-sizing: inherit; color: rgb(102,
102, 102);"><br>
</span></p>
<p><span class="n" style="box-sizing: inherit;"></span></p>
<p><span class="n" style="box-sizing: inherit;"></span></p>
</blockquote>
<br>
</body>
</html>
\
 
 \ /
  Last update: 2018-07-23 11:20    [W:0.047 / U:1.092 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site