We can discuss this during tomorrow's ARCH call, and probably further
at Connect. MT Safe is the default behavior and it's opposite ("MT
Unsafe") was added as a potential optimization when applications
assure implementations that only a single thread will be polling a
PktIn queue or adding to a Pktout queue.

Ideally, we'd like to retire all application I/O polling and use the
scheduler exclusively, but that's that's a longer-term goal. For now
we have both.

On Sun, Sep 10, 2017 at 8:11 AM, Honnappa Nagarahalli
<honnappa.nagaraha...@linaro.org> wrote:
> Hi,
>     I think there are 2 ways in which pkt I/O will be used:
>
> 1) Polling method - in which one pkt I/O will be created for each
> receive worker thread. In this case, support for ODP_PKTIO_OP_MT_SAFE
> is not required.
> 2) Event method - the scheduler is used to receive packets. In this
> case the scheduler will provide the exclusive access to a pkt I/O.
> Again in this case support for ODP_PKTIO_OP_MT_SAFE is not required.
>
> I am thinking, for high throughput packet I/Os such as dpdk or ODP
> native drivers (in the future), we do not need to support
> ODP_PKTIO_OP_MT_SAFE. The odp_pktio_open API call can return an error
> if ODP_PKTIO_OP_MT_SAFE is asked for.
>
> We could keep the support for ODP_PKTIO_OP_MT_SAFE for other pkt I/Os.
>
> This will save space in cache for the locks as well as instruction cycles.
>
> Thank you,
> Honnappa

Reply via email to