<html 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=us-ascii">
<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:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        font-size:10.0pt;
        font-family:"Calibri",sans-serif;}
span.EmailStyle19
        {mso-style-type:personal-reply;
        font-family:"Calibri",sans-serif;
        color:windowtext;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;}
@page WordSection1
        {size:612.0pt 792.0pt;
        margin:72.0pt 72.0pt 72.0pt 72.0pt;}
div.WordSection1
        {page:WordSection1;}
--></style>
</head>
<body lang="en-IT" link="#0563C1" vlink="#954F72" style="word-wrap:break-word">
<div class="WordSection1">
<div>
<p class="MsoNormal"><span style="font-size:11.0pt">> > >><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">> > >>>><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">> > >><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">> > >>>>> On Wed, 17 Nov 2021 03:04:59 +0000<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">> > >><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">> > >>>><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">> > >>>>>> This patch introduces GPU memory in testpmd through the gpudev library.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">> > >><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">> > >>>><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">> > >><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">> > >>>>>> Testpmd can be used for network benchmarks when using GPU memory<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">> > >><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">> > >>>><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">> > >><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">> > >>>>>> instead of regular CPU memory to send and receive packets.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">> > >><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">> > >>>><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">> > >><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">> > >>>>>> This option is currently limited to iofwd engine to ensure<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">> > >><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">> > >>>><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">> > >><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">> > >>>>>> no workload is applied on packets not accessible from the CPU.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">> > >><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">> > >>>><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">> > >><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">> > >>>>>><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">> > >><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">> > >>>><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">> > >><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">> > >>>>>> The options chose is --mbuf-size so buffer split feature across<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">> > >><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">> > >>>><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">> > >><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">> > >>>>>> different mempools can be enabled.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">> > >><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">> > >>>><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">> > >><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">> > >>>>>><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">> > >><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">> > >>>><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">> > >><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">> > >>>>>> Signed-off-by: Elena Agostini <eagostini@nvidia.com><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">> > >><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">> > >>>><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">> > >><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">> > >>>>><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">> > >><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">> > >>>><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">> > >><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">> > >>>>> Won't this create a hard dependency of test-pmd on gpudev?<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">> > >><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">> > >>>><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">> > >><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">> > >>>>> I thought gpudev was supposed to be optional<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">> > >><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">> > >>>><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">> > >><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">> > >>>><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">> > >><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">> > >>>><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">> > >><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">> > >>>> Sure, let me submit another patch to make it optional<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">> > >><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">> > >>><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">> > >><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">> > >>> Why to add yet another compile time macro everywhere in testpmd and<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">> > >><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">> > >>> make hard to maintain?<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">> > >><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">> > >>> Adding iofwd kind of code is very simple to add test/test-gpudev and<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">> > >><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">> > >>> all GPU specific options<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">> > >><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">> > >>> can be added in test-gpudev. It also helps to review the patches as<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">> > >><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">> > >>> test cases focus on<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">> > >><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">> > >>> each device class.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">> > >><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">> > >><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">> > >><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">> > >> Test-gpudev is standalone unit test to ensure gpudev functions work correctly.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">> > >><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">> > >> In testpmd instead, there is a connection between gpudev and the network.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">> > ><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">> > > I understand that. We had the same case with eventdev, where it needs to<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">> > > work with network. Testpmd is already complicated, IMO, we should<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">> > > focus only ethdev<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">> > > test cases on testpmd, test-gpudev can use ethdev API to enable<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">> > > networking requirements for gpudev.<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">> > ><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">> ><o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">> > +1<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">> <o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt">> +1<o:p></o:p></span></p>
<p class="MsoNormal"><span style="font-size:11.0pt"><o:p> </o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11.0pt">Testpmd already manages different type of memories for mempools.<o:p></o:p></span></p>
<p class="MsoNormal"><span lang="EN-US" style="font-size:11.0pt">gpudev is just another type of memory, there is nothing more than that.<o:p></o:p></span></p>
</div>
</div>
</body>
</html>