<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="Generator" content="Microsoft Word 15 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
{font-family:"Cambria Math";
panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
{font-family:Aptos;}
@font-face
{font-family:Consolas;
panose-1:2 11 6 9 2 2 4 3 2 4;}
@font-face
{font-family:"Roboto Slab";}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{margin:0in;
font-size:12.0pt;
font-family:"Aptos",sans-serif;}
a:link, span.MsoHyperlink
{mso-style-priority:99;
color:blue;
text-decoration:underline;}
p.MsoListParagraph, li.MsoListParagraph, div.MsoListParagraph
{mso-style-priority:34;
margin-top:0in;
margin-right:0in;
margin-bottom:0in;
margin-left:.5in;
font-size:12.0pt;
font-family:"Aptos",sans-serif;}
span.EmailStyle19
{mso-style-type:personal-compose;
font-family:"Arial",sans-serif;
color:windowtext;}
.MsoChpDefault
{mso-style-type:export-only;
font-size:10.0pt;
mso-ligatures:none;}
@page WordSection1
{size:8.5in 11.0in;
margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
{page:WordSection1;}
/* List Definitions */
@list l0
{mso-list-id:134952992;
mso-list-type:hybrid;
mso-list-template-ids:1533692550 67698703 67698713 67698715 67698703 67698713 67698715 67698703 67698713 67698715;}
@list l0:level1
{mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-.25in;}
@list l0:level2
{mso-level-number-format:alpha-lower;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-.25in;}
@list l0:level3
{mso-level-number-format:roman-lower;
mso-level-tab-stop:none;
mso-level-number-position:right;
text-indent:-9.0pt;}
@list l0:level4
{mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-.25in;}
@list l0:level5
{mso-level-number-format:alpha-lower;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-.25in;}
@list l0:level6
{mso-level-number-format:roman-lower;
mso-level-tab-stop:none;
mso-level-number-position:right;
text-indent:-9.0pt;}
@list l0:level7
{mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-.25in;}
@list l0:level8
{mso-level-number-format:alpha-lower;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-.25in;}
@list l0:level9
{mso-level-number-format:roman-lower;
mso-level-tab-stop:none;
mso-level-number-position:right;
text-indent:-9.0pt;}
@list l1
{mso-list-id:1667586460;
mso-list-type:hybrid;
mso-list-template-ids:-906982460 67698703 67698713 67698715 67698703 67698713 67698715 67698703 67698713 67698715;}
@list l1:level1
{mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-.25in;}
@list l1:level2
{mso-level-number-format:alpha-lower;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-.25in;}
@list l1:level3
{mso-level-number-format:roman-lower;
mso-level-tab-stop:none;
mso-level-number-position:right;
text-indent:-9.0pt;}
@list l1:level4
{mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-.25in;}
@list l1:level5
{mso-level-number-format:alpha-lower;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-.25in;}
@list l1:level6
{mso-level-number-format:roman-lower;
mso-level-tab-stop:none;
mso-level-number-position:right;
text-indent:-9.0pt;}
@list l1:level7
{mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-.25in;}
@list l1:level8
{mso-level-number-format:alpha-lower;
mso-level-tab-stop:none;
mso-level-number-position:left;
text-indent:-.25in;}
@list l1:level9
{mso-level-number-format:roman-lower;
mso-level-tab-stop:none;
mso-level-number-position:right;
text-indent:-9.0pt;}
ol
{margin-bottom:0in;}
ul
{margin-bottom:0in;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang="EN-US" link="blue" vlink="purple" style="word-wrap:break-word">
<p style="font-family:Calibri;font-size:10pt;color:#008000;margin:5pt;font-style:normal;font-weight:normal;text-decoration:none;" align="Left">
[Public]<br>
</p>
<br>
<div>
<div class="WordSection1">
<div style="border:none;border-left:solid blue 1.5pt;padding:0in 0in 0in 4.0pt">
<div>
<div>
<div>
<div>
<div>
<div>
<p class="MsoNormal">HI,<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Snipped<o:p></o:p></p>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal">Hi, <o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">You can create a simple setup with only running testpmd with primary and another testpmd with secondary and then see the results. <o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<p class="MsoNormal" style="margin-bottom:12.0pt">No, the reason for the primary process termination could be close or shutdown (ctrl + c or ctrl + q) or any other.<o:p></o:p></p>
</div>
<p class="MsoNormal" style="margin-bottom:12.0pt">The reason is clear: "In secondary processes, accessing 'dev->data->dev_private' or &dev->data->mac_addrs directly can<br>
cause a segmentation fault if the primary process has exited or the<br>
shared memory is unavailable." <o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">The effect is throughput the life-cycle of secondary process existence in dpdk after primary, <o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">You can check <br>
<a href="https://patches.dpdk.org/project/dpdk/patch/20250721073851.963141-1-14pwcse1224@uetpeshawar.edu.pk/">https://patches.dpdk.org/project/dpdk/patch/20250721073851.963141-1-14pwcse1224@uetpeshawar.edu.pk/</a><br>
<a href="https://patches.dpdk.org/project/dpdk/patch/20250721105522.1019515-1-14pwcse1224@uetpeshawar.edu.pk/">https://patches.dpdk.org/project/dpdk/patch/20250721105522.1019515-1-14pwcse1224@uetpeshawar.edu.pk/</a><o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
</div>
<div>
<p class="MsoNormal">I think most of the details have already been provided. <o:p></o:p></p>
</div>
<div>
<p class="MsoNormal" style="margin-bottom:12.0pt">The community agrees with the current solution. <o:p></o:p></p>
</div>
<div>
<p class="MsoNormal">Thanks. <o:p></o:p></p>
</div>
<div>
<p class="MsoNormal"><o:p> </o:p></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Arial",sans-serif"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Arial",sans-serif">There are couple of corrections that needs to shared to the current understanding you are sharing<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Arial",sans-serif"><o:p> </o:p></span></p>
<ol style="margin-top:0in" start="1" type="1">
<li class="MsoListParagraph" style="margin-left:0in;mso-list:l1 level1 lfo1"><span style="font-size:11.0pt;font-family:"Arial",sans-serif">Please find DPDK Documentation on mutli process as
<a href="https://doc.dpdk.org/guides/prog_guide/multi_proc_support.html">4. Multi-process Support — Data Plane Development Kit 25.07.0 documentation</a><o:p></o:p></span></li></ol>
<p class="MsoListParagraph" style="margin-left:41.25pt;text-indent:-.25in;mso-list:l1 level1 lfo1">
<![if !supportLists]><span style="font-size:11.0pt;font-family:"Arial",sans-serif"><span style="mso-list:Ignore">2.<span style="font:7.0pt "Times New Roman"">
</span></span></span><![endif]><span style="font-size:11.0pt;font-family:"Arial",sans-serif">From your `</span><span style="font-size:10.0pt;font-family:Consolas;color:#333333">
</span><span style="font-size:11.0pt;font-family:"Arial",sans-serif">This patch only adds stability and robustness to primary-secondary applications.` this is not true<o:p></o:p></span></p>
<p class="MsoListParagraph" style="margin-left:41.25pt;text-indent:-.25in;mso-list:l1 level1 lfo1">
<![if !supportLists]><span style="font-size:11.0pt;font-family:"Arial",sans-serif"><span style="mso-list:Ignore">3.<span style="font:7.0pt "Times New Roman"">
</span></span></span><![endif]><span style="font-size:11.0pt;font-family:"Arial",sans-serif">`</span><span style="font-size:10.0pt;font-family:Consolas;color:#333333">
</span><span style="font-size:11.0pt;font-family:"Arial",sans-serif">any other application which provides primary-secondary support could also follow the same model` - actually by default the eal args supports mutli process. Only by specifying `--single-process`
this is disabled<o:p></o:p></span></p>
<p class="MsoListParagraph" style="margin-left:41.25pt;text-indent:-.25in;mso-list:l1 level1 lfo1">
<![if !supportLists]><span style="font-size:11.0pt;font-family:"Arial",sans-serif"><span style="mso-list:Ignore">4.<span style="font:7.0pt "Times New Roman"">
</span></span></span><![endif]><span style="font-size:11.0pt;font-family:"Arial",sans-serif">`</span><span style="font-size:10.0pt;font-family:Consolas;color:#333333">
</span><span style="font-size:11.0pt;font-family:"Arial",sans-serif">the reason for the primary process termination could be close or shutdown (ctrl + c or ctrl + q)` DPDK testpmd and a few examples like L2fwd, eventdev, l3fwd and other uses SIGACTION to check
gracefully exit<o:p></o:p></span></p>
<ol style="margin-top:0in" start="5" type="1">
<li class="MsoListParagraph" style="margin-left:0in;mso-list:l1 level1 lfo1"><span style="font-size:11.0pt;font-family:"Arial",sans-serif">In all graceful exit `rte_eal_cleanup is invoked`. Hence any secondary (as shared in my previous emails) will have dangling
pointers.<o:p></o:p></span></li><li class="MsoListParagraph" style="margin-left:0in;mso-list:l1 level1 lfo1"><span style="font-size:11.0pt;font-family:"Arial",sans-serif">For customer till 2023 and internal testing (as mentioned in my email) any abrupt kill of primary does not corrupt the
secondary rte_eth_dev_list.<o:p></o:p></span></li></ol>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Arial",sans-serif"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Arial",sans-serif">From patch perspective<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Arial",sans-serif"><a href="https://patches.dpdk.org/project/dpdk/patch/20250721073851.963141-1-14pwcse1224@uetpeshawar.edu.pk/">https://patches.dpdk.org/project/dpdk/patch/20250721073851.963141-1-14pwcse1224@uetpeshawar.edu.pk/</a><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Arial",sans-serif">what Stephen shared is correct, PMD are not incharge of process aliveness. It is correct hence NAK<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Arial",sans-serif"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Arial",sans-serif"><a href="https://patches.dpdk.org/project/dpdk/patch/20250721105522.1019515-1-14pwcse1224@uetpeshawar.edu.pk/">net/ice: fix segfault in secondary process by validating dev_private
pointer - Patchwork</a><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Arial",sans-serif">trying to do in ICE driver should be NAK<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Arial",sans-serif"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Arial",sans-serif">From solution perspective, in my earlier email I clearly asked why have not explored multi-process communication thread. Link to it is same as above under section `</span><b><span style="font-size:18.0pt;font-family:"Roboto Slab";color:#404040">
</span></b><b><span style="font-size:11.0pt;font-family:"Arial",sans-serif">4.4. Communication between multiple processes</span></b><span style="font-size:11.0pt;font-family:"Arial",sans-serif">`<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Arial",sans-serif"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Arial",sans-serif">You could always design when `</span><span style="font-size:10.0pt;font-family:Consolas;color:#333333">
</span><span style="font-size:11.0pt;font-family:"Arial",sans-serif">(ctrl + c or ctrl + q)` primary can send a broadcast to all secondaries to stop eth, event, bbdev or any such execution or simply exit.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Arial",sans-serif">This is what we designed and shared as working logic.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Arial",sans-serif"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Arial",sans-serif"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Arial",sans-serif"><o:p> </o:p></span></p>
<p class="MsoNormal" style="margin-bottom:12.0pt"><span style="font-size:11.0pt;font-family:"Arial",sans-serif">Note: You have also mentioned `</span> The community agrees with the current solution. ` which paints a picture of<o:p></o:p></p>
<ol style="margin-top:0in" start="1" type="1">
<li class="MsoListParagraph" style="margin-bottom:12.0pt;margin-left:0in;mso-list:l0 level1 lfo2">
Only there is one way to solve this problem.<o:p></o:p></li><li class="MsoListParagraph" style="margin-bottom:12.0pt;margin-left:0in;mso-list:l0 level1 lfo2">
Since I did not agree to your thought process I am not community.<o:p></o:p></li></ol>
<p class="MsoNormal" style="margin-bottom:12.0pt">Personally, I am not happy with such biases, DPDK had been supporting and nurturing open healthy conversation and platform. I am not aware this was changed.<o:p></o:p></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Arial",sans-serif"><o:p> </o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt;font-family:"Arial",sans-serif"><o:p> </o:p></span></p>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</body>
</html>