Any suggestion? any idea about this behaviour?
Il 08/08/2018 11:56, Matteo Lanzuisi ha scritto:
Hi all,
recently I began using "dpdk-17.11-11.el7.x86_64" rpm (RedHat rpm) on
RedHat 7.5 kernel 3.10.0-862.6.3.el7.x86_64 as a porting of an
application from RH6 to RH7. On RH6 I used dpdk-2.2.0.
This application is made up by one or more threads (each one on a
different logical core) reading packets from i40e interfaces.
Each thread can call the following code lines when receiving a
specific packet:
RTE_LCORE_FOREACH(lcore_id)
{
result =
rte_mempool_get(cea_main_lcore_conf[lcore_id].de_conf.cmd_pool,
(VOID_P *) &new_work); // mempools are created one for each
logical core
if (((uint64_t)(new_work)) < 0x7f0000000000)
printf("Result %d, lcore di partenza %u, lcore di
ricezione %u, pointer %p\n", result, rte_lcore_id(), lcore_id,
new_work); // debug print, on my server it should never happen but
with multi-thread happens always on the last logical core!!!!
if (result == 0)
{
new_work->command = command; // usage of the memory gotten
from the mempool... <<<<<- here is where the application crashes!!!!
result =
rte_ring_enqueue(cea_main_lcore_conf[lcore_id].de_conf.cmd_ring,
(VOID_P) new_work); // enqueues the gotten buffer on the rings of
all lcores
// check on result value ...
}
else
{
// do something if result != 0 ...
}
}
This code worked perfectly (never had an issue) on dpdk-2.2.0, while
if I use more than 1 thread doing these operations on dpdk-17.11 it
happens that after some times the "new_work" pointer is not a good
one, and the application crashes when using that pointer.
It seems that these lines cannot be used by more than one thread
simultaneously. I also used many 2017 and 2018 dpdk versions without
success.
Is this code possible on the new dpdk versions? Or have I to change my
application so that this code is called just by one lcore at a time?
Matteo
--
Descrizione: resi.gif
*Matteo Lanzuisi*
/Business Unit ICT/
/
/RESI Informatica S.p.A.
Via Pontina Km 44,044
04011 Aprilia (LT) - Italy
*Tel:*+39 06 92710339
*Mobile:*+39 3355686712
*Fax:*+39 06 92710208
*Email:*m.lanzu...@resi.it
*Web:*www.resi.it <blocked::http://www.resi.it/>**
Descrizione: resi-group.gif width= <http://www.resi-group.com/>
_ _ _ _ _ _ _ _ _ _ _ _
*Nota di riservatezza:*Ai sensi del Decreto Legislativo n. 196/2003,
"Codice in materia di Protezione dei dati personali", si precisa che le
informazioni contenute in questo messaggio e negli eventuali allegati
sono riservate e per uso esclusivo del destinatario. Persone diverse
dallo stesso non possono copiare o distribuire il messaggio a terzi.
Chiunque riceva questo messaggio per errore è pregato di distruggerlo e
di informare immediatamente il mittente. Grazie.
*Confidentiality Notice:* Accordingly to Italian legislative decree n.
196/2003 concerning privacy, the information contained in this e-mail is
intended for the named recipients only. It may contain privileged and
confidential information and if you are not an intended recipient, you
must not copy, distribute or take any action in reliance on it. If you
have received this e-mail in error, please notify the sender by e-mail
and delete the e-mail and any copies of it. Thank you.
*P*****Please consider the environment before printing this mail.
Rispettate l’ambiente e stampate questa email solo in caso di reale
necessità