Hi,

I've noticed that "struct pktio_entry" locks 'rxl' and 'txl' are not grabbed when you call odp_pktio_recv/send_queue() functions, only when you have a single queue, which goes to the old codepath. This is particularly dangerous when doing close, but other cases might have trouble with it too. I think we should ditch rxl and txl and grab/release the per-queue locks in [un]lock_entry(). Maybe we should bring those locks into "struct pktio_entry"? Plus we should mention at the ODP_PKTIO_OP_MT_UNSAFE description that the application is responsible for the synchronization of not jut just send/recv, but other pktio operations which can interfere. Particularly start/stop, close, term_*. Fortunately these status changing calls still sync with the status query calls (e.g. link status, mtu get) through the lock.

Regards,

Zoltan
_______________________________________________
lng-odp mailing list
[email protected]
https://lists.linaro.org/mailman/listinfo/lng-odp

Reply via email to