On 15 June 2017 at 13:02, Bala Manoharan <bala.manoha...@linaro.org> wrote:
>
>
> Regards,
> Bala
>
> On 15 June 2017 at 23:20, Honnappa Nagarahalli
> <honnappa.nagaraha...@linaro.org> wrote:
>>
>> On 15 June 2017 at 10:58, Bala Manoharan <bala.manoha...@linaro.org>
>> wrote:
>> > On 15 June 2017 at 20:00, Francois Ozog <francois.o...@linaro.org>
>> > wrote:
>> >
>> >> I wonder then how packet receive in HW driven packet buffers is
>> >> handled,
>> >> may be with device memory....
>> >>
>> >> Can you explain the cases of packet receive with ODP application
>> >> supplied
>> >> (through packetio open) mempools?
>> >>
>> >
>> > There needs to be atleast one pool linked to a pktio interface and there
>> > can be more than one if application wants to configure different pools
>> > for
>> > different flows. The configuration of the pool is given by the
>> > application
>> > so that any traffic burst in a single flow does not overload the entire
>> > system processing for other flows.
>> >
>> > So when application configures a packet pool we allocate internal shared
>> > memory and pool allocator and link it to  the pktio interface. When
>> > packet
>> > is received in the pktio interface the packet is allocated from the
>> > linked
>> > pool.
>>
>> When you say 'internal shared memory', do you mean the memory is
>> shared between the CPU cores and the hardware accelerators? I did not
>> understand the 'pool allocator'. My understanding from your earlier
>> email is that the pool is created (and all the packet buffers
>> instantiated) when odp_pool_create API is called and pool is linked to
>> the pktio in odp_pktio_open call.
>
>
> 'pool allocator' is a HW module which basically holds list of pointers from
> a memory location and provides pointers when someone calls alloc from the
> pool.
> pool is created when you call odp_pool_create().
> pktio is created with odp_pktio_open() which takes pool as an input
> argument.
> pool is linked to the pktio when you call odp_pktio_start()
> Hope its clear.
>

Thanks Bala. That is clear. Is the internal memory shared between CPUs
and pktio device?

> Regards,
> Bala
>>
>>
>> >
>> > Does this answer your question?
>> >
>> > Regards,
>> > Bala
>> >
>> >>
>> >> FF
>> >>
>> >> On 15 June 2017 at 15:42, Bala Manoharan <bala.manoha...@linaro.org>
>> >> wrote:
>> >>
>> >>> Add on. It is also possible that the pool might not be linked to any
>> >>> pktio
>> >>> eg buffer pools, hence in implementation we can not wait for the pool
>> >>> to
>> >>> be
>> >>> linked to pktio.
>> >>>
>> >>> Regards,
>> >>> Bala
>> >>>
>> >>> On 15 June 2017 at 18:11, Bill Fischofer <bill.fischo...@linaro.org>
>> >>> wrote:
>> >>>
>> >>> > A pool may be associated with a pktio at open time, but this
>> >>> > association is not exclusive. In theory an ODP implementation could
>> >>> > defer actual pool creation until it was first used, but such an
>> >>> > approach would be unlikely to yield any real benefits while creating
>> >>> > a
>> >>> > lot of complications along the way since odp_pool_create() is the
>> >>> > only
>> >>> > opportunity the implementation has to fail the pool creation in a
>> >>> > defined manner.
>> >>> >
>> >>> > On Thu, Jun 15, 2017 at 2:29 AM, Bala Manoharan
>> >>> > <bala.manoha...@linaro.org> wrote:
>> >>> > > Same here. Pool is created during odp_pool_create API.
>> >>> > >
>> >>> > >
>> >>> > > Regards,
>> >>> > > Bala
>> >>> > >
>> >>> > > On 15 June 2017 at 12:36, Nikhil Agarwal <nikhil.agar...@nxp.com>
>> >>> wrote:
>> >>> > >
>> >>> > >> Pool is created at odp_pool_create only. You can allocate packets
>> >>> form
>> >>> > it
>> >>> > >> even before pktio_open.
>> >>> > >>
>> >>> > >> Regards
>> >>> > >> Nikhil
>> >>> > >>
>> >>> > >> -----Original Message-----
>> >>> > >> From: lng-odp [mailto:lng-odp-boun...@lists.linaro.org] On Behalf
>> >>> > >> Of
>> >>> > >> Honnappa Nagarahalli
>> >>> > >> Sent: Thursday, June 15, 2017 9:27 AM
>> >>> > >> To: lng-odp-forward <lng-odp@lists.linaro.org>
>> >>> > >> Subject: [lng-odp] Mem pool creation in Cavium/NXP
>> >>> > >> implementations
>> >>> > >>
>> >>> > >> Hi Bala/Nikhil,
>> >>> > >>     I was wondering when is the memory pool created in your
>> >>> > implementation
>> >>> > >> of ODP? The programming model is that the application creates the
>> >>> memory
>> >>> > >> pool and passes that pool to the pkt I/O during packet I/O open
>> >>> call. Do
>> >>> > >> you actually create the pool when the application calls
>> >>> > odp_pool_create? Or
>> >>> > >> is the pool created during packet I/O open?
>> >>> > >>
>> >>> > >> Appreciate your answers.
>> >>> > >>
>> >>> > >> Thank you,
>> >>> > >> Honnappa
>> >>> > >>
>> >>> >
>> >>>
>> >>
>> >>
>> >>
>> >> --
>> >> [image: Linaro] <http://www.linaro.org/>
>> >> François-Frédéric Ozog | *Director Linaro Networking Group*
>> >> T: +33.67221.6485
>> >> francois.o...@linaro.org | Skype: ffozog
>> >>
>> >>
>
>

Reply via email to