Messages in this thread | | | Subject | Re: Issue related cpuhotplug failure path on 4.9.x version | From | Mukesh Ojha <> | Date | Mon, 23 Jul 2018 14:49:27 +0530 |
| |
<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;">-></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> =></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> => </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: "Ubuntu Mono", 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>
| |