On Mon, Jan 19, 2015 at 11:26:04AM +0100, Ola Liljedahl wrote:
> On 17 January 2015 at 16:28, Bill Fischofer <bill.fischo...@linaro.org> wrote:
> > In the new model no buffers are queueable.  Only events are queueable.
> But you can convert a buffer handle to the corresponding event handle
> and enqueue the event. Thus buffers must have the metadata that allows
> them to be enqueued and scheduled.

Then its like a queueable buffer only.


> 
> > Events can contain buffers, packets, timeouts, etc., but are logically
> > distinct from them as they are the queueable/schedulable entity.
> >
> > On Sat, Jan 17, 2015 at 6:16 AM, Jerin Jacob
> > <jerin.ja...@caviumnetworks.com> wrote:
> >>
> >> On Thu, Jan 15, 2015 at 05:40:08PM +0200, Petri Savolainen wrote:
> >> > This patches introduces odp_event_t and replaces with that the usage of
> >> > odp_buffer_t as the super class for other "buffer types". What used to
> >> > be a
> >> > buffer type is now an event type.
> >>
> >> Should we also introduce a new buffer type that NOT queueable to odp_queue
> >> ?
> >> If some application is using the buffers only for the storage then I think
> >> this
> >> new type make sense as queueable buffers will take more resources and
> >> additional meta data(for hardware buffer schedule manager)
> Wouldn't such buffers be more related to some type of malloc-like
> memory manager?
> ODP could use a multicore friendly memory manager for variable size
> objects. Could such a memory manager be implemented by HW and thus be
> considered as a part of the SoC abstraction layer? Or would it be a
> pure SW construct and basically just a utility library?

No, I was considering the abstraction for the fixed size buffer pool only.
The new type can used to allocate a buffer pool from hardware fixed size buffer 
manager
without any metadata for queueable. something like,

pool = odp_buffer_pool_create();
odp_buffer_t x = odp_buffer_alloc(pool); // for queueable buffers

odp_buffer_xxx_t x = odp_buffer_xxx_alloc(pool);// for non queueable buffers, 
only for storage




> 
> >>
> >>
> >> >
> >> > There are some lines over 80 char, since those are caused by temporary
> >> > event <-> buffer, packet -> event -> buffer conversions and should be
> >> > cleaned up
> >> > from the implementation anyway.
> >> >
> >> > Petri Savolainen (15):
> >> >   api: event: Add odp_event_t
> >> >   api: event: odp_schedule and odp_queue_enq
> >> >   api: event: schedule_multi and queue_enq_multi
> >> >   api: event: odp_queue_deq
> >> >   api: event: odp_queue_deq_multi
> >> >   api: buffer: Removed odp_buffer_type
> >> >   api: packet: Removed odp_packet_to_buffer
> >> >   api: packet: Removed odp_packet_from_buffer
> >> >   api: timer: Use odp_event_t instead of odp_buffer_t
> >> >   api: crypto: Use odp_event_t instead of odp_buffer_t
> >> >   linux-generic: crypto: Use packet alloc for packet
> >> >   api: buffer_pool: Rename odp_buffer_pool.h to odp_pool.h
> >> >   api: pool: Rename pool params and remove buffer types
> >> >   api: pool: Rename odp_buffer_pool_ to odp_pool_
> >> >   api: config: Renamed ODP_CONFIG_BUFFER_POOLS
> >> >
> >> >  example/generator/odp_generator.c                  |  38 ++---
> >> >  example/ipsec/odp_ipsec.c                          |  70 ++++----
> >> >  example/ipsec/odp_ipsec_cache.c                    |   4 +-
> >> >  example/ipsec/odp_ipsec_cache.h                    |   2 +-
> >> >  example/ipsec/odp_ipsec_loop_db.c                  |   2 +-
> >> >  example/ipsec/odp_ipsec_loop_db.h                  |  12 +-
> >> >  example/ipsec/odp_ipsec_stream.c                   |  20 +--
> >> >  example/ipsec/odp_ipsec_stream.h                   |   2 +-
> >> >  example/l2fwd/odp_l2fwd.c                          |  28 +--
> >> >  example/packet/odp_pktio.c                         |  28 +--
> >> >  example/timer/odp_timer_test.c                     |  64 +++----
> >> >  platform/linux-generic/Makefile.am                 |   4 +-
> >> >  platform/linux-generic/include/api/odp.h           |   3 +-
> >> >  platform/linux-generic/include/api/odp_buffer.h    |  40 +++--
> >> >  .../linux-generic/include/api/odp_buffer_pool.h    | 177
> >> > -------------------
> >> >  .../linux-generic/include/api/odp_classification.h |   2 +-
> >> >  platform/linux-generic/include/api/odp_config.h    |   4 +-
> >> >  platform/linux-generic/include/api/odp_crypto.h    |  16 +-
> >> >  platform/linux-generic/include/api/odp_event.h     |  59 +++++++
> >> >  platform/linux-generic/include/api/odp_packet.h    |  29 ++--
> >> >  platform/linux-generic/include/api/odp_packet_io.h |   4 +-
> >> >  .../linux-generic/include/api/odp_platform_types.h |  10 +-
> >> >  platform/linux-generic/include/api/odp_pool.h      | 189
> >> > +++++++++++++++++++++
> >> >  platform/linux-generic/include/api/odp_queue.h     |  32 ++--
> >> >  platform/linux-generic/include/api/odp_schedule.h  |  32 ++--
> >> >  platform/linux-generic/include/api/odp_timer.h     |  56 +++---
> >> >  .../linux-generic/include/odp_buffer_inlines.h     |   6 +-
> >> >  .../linux-generic/include/odp_buffer_internal.h    |  20 ++-
> >> >  .../include/odp_buffer_pool_internal.h             |  22 +--
> >> >  .../linux-generic/include/odp_crypto_internal.h    |   2 +-
> >> >  .../linux-generic/include/odp_packet_internal.h    |   8 +-
> >> >  platform/linux-generic/include/odp_packet_socket.h |  10 +-
> >> >  platform/linux-generic/odp_buffer.c                |  12 +-
> >> >  platform/linux-generic/odp_buffer_pool.c           | 133
> >> > +++++++--------
> >> >  platform/linux-generic/odp_crypto.c                |  29 ++--
> >> >  platform/linux-generic/odp_event.c                 |  19 +++
> >> >  platform/linux-generic/odp_packet.c                |  34 ++--
> >> >  platform/linux-generic/odp_packet_io.c             |  14 +-
> >> >  platform/linux-generic/odp_packet_socket.c         |  10 +-
> >> >  platform/linux-generic/odp_queue.c                 |  18 +-
> >> >  platform/linux-generic/odp_schedule.c              |  48 +++---
> >> >  platform/linux-generic/odp_timer.c                 |  35 ++--
> >> >  test/performance/odp_scheduling.c                  | 105 +++++++-----
> >> >  43 files changed, 806 insertions(+), 646 deletions(-)
> >> >  delete mode 100644 platform/linux-generic/include/api/odp_buffer_pool.h
> >> >  create mode 100644 platform/linux-generic/include/api/odp_event.h
> >> >  create mode 100644 platform/linux-generic/include/api/odp_pool.h
> >> >  create mode 100644 platform/linux-generic/odp_event.c
> >> >
> >> > --
> >> > 2.2.2
> >> >
> >> >
> >> > _______________________________________________
> >> > lng-odp mailing list
> >> > lng-odp@lists.linaro.org
> >> > http://lists.linaro.org/mailman/listinfo/lng-odp
> >>
> >> _______________________________________________
> >> lng-odp mailing list
> >> lng-odp@lists.linaro.org
> >> http://lists.linaro.org/mailman/listinfo/lng-odp
> >
> >
> >
> > _______________________________________________
> > lng-odp mailing list
> > lng-odp@lists.linaro.org
> > http://lists.linaro.org/mailman/listinfo/lng-odp
> >

_______________________________________________
lng-odp mailing list
lng-odp@lists.linaro.org
http://lists.linaro.org/mailman/listinfo/lng-odp

Reply via email to