<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<style type="text/css" style="display:none;"> P {margin-top:0;margin-bottom:0;} </style>
</head>
<body dir="ltr">
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);" class="elementToProof">
Hello,</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);" class="elementToProof">
<br>
</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);" class="elementToProof ContentPasted0 ContentPasted1">
from my understanding after debugging, in test_refcnt_iter the return value of rte_ring_enqueue is not checked; leading to lack of expected mbufs at the end checks.</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);" class="elementToProof ContentPasted0 ContentPasted1">
<br>
</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);" class="elementToProof ContentPasted0 ContentPasted1">
Here is some fix proposal that seems to work after running endurance tests for several days:<br>
</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);" class="elementToProof ContentPasted0 ContentPasted1">
<br>
</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);" class="elementToProof ContentPasted0 ContentPasted1 ContentPasted2">
diff --git a/app/test/test_mbuf.c b/app/test/test_mbuf.c
<div class="ContentPasted2">index b4f436b5e2..8a5d26e4f6 100644</div>
<div class="ContentPasted2">--- a/app/test/test_mbuf.c</div>
<div class="ContentPasted2">+++ b/app/test/test_mbuf.c</div>
<div class="ContentPasted2">@@ -1033,12 +1033,17 @@ test_refcnt_iter(unsigned int lcore, unsigned int iter,</div>
<div class="ContentPasted2"> tref += ref;</div>
<div class="ContentPasted2"> if ((ref & 1) != 0) {</div>
<div class="ContentPasted2"> rte_pktmbuf_refcnt_update(m, ref);</div>
<div class="ContentPasted2">- while (ref-- != 0)</div>
<div class="ContentPasted2">- rte_ring_enqueue(refcnt_mbuf_ring, m);</div>
<div class="ContentPasted2">+ while (ref-- != 0) {</div>
<div class="ContentPasted2">+ /* retry in case of failure */</div>
<div class="ContentPasted2">+ while (rte_ring_enqueue(refcnt_mbuf_ring, m) != 0)</div>
<div class="ContentPasted2">+ ;</div>
<div class="ContentPasted2">+ }</div>
<div class="ContentPasted2"> } else {</div>
<div class="ContentPasted2"> while (ref-- != 0) {</div>
<div class="ContentPasted2"> rte_pktmbuf_refcnt_update(m, 1);</div>
<div class="ContentPasted2">- rte_ring_enqueue(refcnt_mbuf_ring, m);</div>
<div class="ContentPasted2">+ /* retry in case of failure */</div>
<div class="ContentPasted2">+ while (rte_ring_enqueue(refcnt_mbuf_ring, m) != 0)</div>
<div class="ContentPasted2">+ ;</div>
<div class="ContentPasted2"> }</div>
<div class="ContentPasted2"> }</div>
rte_pktmbuf_free(m);</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);" class="elementToProof ContentPasted0 ContentPasted1 ContentPasted2">
<br>
</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);" class="elementToProof ContentPasted0 ContentPasted1 ContentPasted2">
Can you confirm ?</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);" class="elementToProof ContentPasted0 ContentPasted1 ContentPasted2">
<br>
</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);" class="elementToProof ContentPasted0 ContentPasted1 ContentPasted2">
Thank,</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);" class="elementToProof ContentPasted0 ContentPasted1 ContentPasted2">
<br>
</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);" class="elementToProof ContentPasted0 ContentPasted1 ContentPasted2">
Julien Hascoet<br>
</div>
<div id="content_out_jhascoet_kalrayinc.com"></div></body>
</html>