Re: [lng-odp] [PATCH 00/15] Event introduction
> > 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 This can be defined after v1.0. I already separated event (ODP_EVENT_XXX) and pool type (ODP_POOL_XXX) defines for rev2 of the event patch. With that, there can be event types that do not have a matching pool type (no pool, no alloc call), and pool types that do not have a matching event type (no xxx_to_event call => no queues, no scheduling). -Petri ___ lng-odp mailing list lng-odp@lists.linaro.org http://lists.linaro.org/mailman/listinfo/lng-odp
Re: [lng-odp] [PATCH 00/15] Event introduction
On Mon, Jan 19, 2015 at 11:26:04AM +0100, Ola Liljedahl wrote: > On 17 January 2015 at 16:28, Bill Fischofer 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 > > 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 +-
Re: [lng-odp] [PATCH 00/15] Event introduction
On 17 January 2015 at 16:28, Bill Fischofer 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. > 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 > 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? >> >> >> > >> > 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 ++-- >> > p
Re: [lng-odp] [PATCH 00/15] Event introduction
On 01/16/2015 05:39 PM, Ola Dahl wrote: > I am wondering why odp_buffer_t is still around, when it is supposed to > be replaced by odp_event_t? It is for ODP_EVENT_BUFFER (previously ODP_BUFFER_TYPE_RAW) type of odp_event_t. -- Taras Kondratiuk ___ lng-odp mailing list lng-odp@lists.linaro.org http://lists.linaro.org/mailman/listinfo/lng-odp
Re: [lng-odp] [PATCH 00/15] Event introduction
In the new model no buffers are queueable. Only events are queueable. 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 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) > > > > > > 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
Re: [lng-odp] [PATCH 00/15] Event introduction
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) > > 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
Re: [lng-odp] [PATCH 00/15] Event introduction
It is not replaced by odp_event_t. odp_buffer_t is the abstract type for ODP buffers. odp_event_t is the abstract type for events, which are new. On Fri, Jan 16, 2015 at 9:39 AM, Ola Dahl wrote: > I am wondering why odp_buffer_t is still around, when it is supposed to be > replaced by odp_event_t? > > Best regards, > > Ola D > > > On Fri Jan 16 2015 at 4:18:36 PM Bill Fischofer > wrote: > >> odp_buffer.c is the implementation of all of the APIs defined in >> odp_buffer.h. I'm not sure what you're asking here. >> >> On Fri, Jan 16, 2015 at 9:12 AM, Ola Dahl wrote: >> >>> On 2015-01-15 16:40, 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. >>> >>> I wonder why odp_buffer_t is still kept? >>> >>> And why, for instance, the file odp_buffer.c is needed? (or, why it is >>> not named odp_event.c?) >>> >>> Shall we think of >>> >>> events as "things that can be scheduled and can be stored in queues" >>> >>> and >>> >>> buffers as "places where data can be stored" ? >>> >>> Best regards, >>> >>> Ola D (a bit confused) >>> >>> >>> 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-gener
Re: [lng-odp] [PATCH 00/15] Event introduction
I am wondering why odp_buffer_t is still around, when it is supposed to be replaced by odp_event_t? Best regards, Ola D On Fri Jan 16 2015 at 4:18:36 PM Bill Fischofer wrote: > odp_buffer.c is the implementation of all of the APIs defined in > odp_buffer.h. I'm not sure what you're asking here. > > On Fri, Jan 16, 2015 at 9:12 AM, Ola Dahl wrote: > >> On 2015-01-15 16:40, 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. >>> >> >> I wonder why odp_buffer_t is still kept? >> >> And why, for instance, the file odp_buffer.c is needed? (or, why it is >> not named odp_event.c?) >> >> Shall we think of >> >> events as "things that can be scheduled and can be stored in queues" >> >> and >> >> buffers as "places where data can be stored" ? >> >> Best regards, >> >> Ola D (a bit confused) >> >> >> >>> 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(-)
Re: [lng-odp] [PATCH 00/15] Event introduction
odp_buffer.c is the implementation of all of the APIs defined in odp_buffer.h. I'm not sure what you're asking here. On Fri, Jan 16, 2015 at 9:12 AM, Ola Dahl wrote: > On 2015-01-15 16:40, 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. >> > > I wonder why odp_buffer_t is still kept? > > And why, for instance, the file odp_buffer.c is needed? (or, why it is not > named odp_event.c?) > > Shall we think of > > events as "things that can be scheduled and can be stored in queues" > > and > > buffers as "places where data can be stored" ? > > Best regards, > > Ola D (a bit confused) > > > >> 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 >> >> >
Re: [lng-odp] [PATCH 00/15] Event introduction
On 2015-01-15 16:40, 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. I wonder why odp_buffer_t is still kept? And why, for instance, the file odp_buffer.c is needed? (or, why it is not named odp_event.c?) Shall we think of events as "things that can be scheduled and can be stored in queues" and buffers as "places where data can be stored" ? Best regards, Ola D (a bit confused) 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 ___ lng-odp mailing list lng-odp@lists.linaro.org http://lists.linaro.org/mailman/listinfo/lng-odp
Re: [lng-odp] [PATCH 00/15] Event introduction
Events is scheduled for 0.9.0 and it is invasive so it looks like we will hold off all other commits for 0.9.0 until it is in, I would like to follow it immediately by the header reorg patch as that is also very invasive so that we get the disruption out of the way. To make this happen can we review events and the header reorg with high priority, and then be aware that other scheduled patches may need rebasing. As a reminder, below is in the 0.9.0 bucket but I think a portion of the list will have bump to 0.10 ABA issues - Geoffrey - linux-generic: Implement _odp_atomic_tptr_t opaque type to avoid ABA problems on fast non-deterministic systems - Convert buffer_pool allocators to use opaque tagged pointer Crypto Completion - Robie - http://lists.linaro.org/pipermail/lng-odp/2015-January/007601.html - Follows Events Events - Petri - https://patches.linaro.org/43202/ *Packet I/O impl: Stuart / Maxim * - Missing five pktio functions in test - - Missing support for Bala - linux-generic: pktio: add loopback device support - - [lng-odp] [PATCH] linux-generic: pktio: add loopback device support - Need review - lng-odp] [PATCH] example: pktio: don't create inq for burst mode - Reviewed - needs to be applied - *Termination implementation API: Yan* - New termination APIs Add odp_errno.h - Mario Termination tests / implementation: - Yan Move header files out of linux-generic - Taras / Anders - [RFC PULL REQUEST] reorganisation of API header files Debian packaging - Anders - https://patches.linaro.org/43146/ *Classification tests : Bala* - depends on Stuart / Maxim - Working on RFC Classification cleanup API Bala On 16 January 2015 at 06:54, Savolainen, Petri (NSN - FI/Espoo) < petri.savolai...@nsn.com> wrote: > Maybe it’s better to test first which way results less (and more > trivial) merge conflicts. I suspect that event first, directory/file > restructure second would be easier job for git merge tool. > > > > Once we have decide that events are the way to go, someone can pick-up the > job to update validation suite. It’s just matter of optimizing work flow > for next couple of weeks. > > > > -Petri > > > > > > *From:* ext Bill Fischofer [mailto:bill.fischo...@linaro.org] > *Sent:* Friday, January 16, 2015 1:13 PM > *To:* Savolainen, Petri (NSN - FI/Espoo) > *Cc:* ext Ola Liljedahl; LNG ODP Mailman List > > *Subject:* Re: [lng-odp] [PATCH 00/15] Event introduction > > > > We definitely need the validation tests to be updated as part of the > initial patch, otherwise we have a patch that results in a non-buildable > system, which violates our agreed-to patch rules. > > > > Given that Anders' API restructure patch is at a more complete state and > is needed to support API inlining in a portable manner, I suggest that we > integrate that patch first and then rebase this one (in a complete form) on > it. This would also ease the conversion issues for other implementations > since this change would then ride on the platform-independent API structure > that the former patch introduces. > > > > On Fri, Jan 16, 2015 at 4:52 AM, Savolainen, Petri (NSN - FI/Espoo) < > petri.savolai...@nsn.com> wrote: > > Yes, agree validation needs to be updated (soon or at the same time). > > Because the patch set is out now, someone could have picked that up and > started that work already yesterday. We just need to decide if we merge > this for 0.9 and if so, who updates validation suite and how those are > merged. This patch set builds and runs for the default target. > > ./bootstrap > ./configure > make > > > -Petri > > > > > -Original Message- > > From: ext Ola Liljedahl [mailto:ola.liljed...@linaro.org] > > Sent: Friday, January 16, 2015 12:43 PM > > To: Savolainen, Petri (NSN - FI/Espoo) > > Cc: ext Bill Fischofer; LNG ODP Mailman List > > Subject: Re: [lng-odp] [PATCH 00/15] Event introduction > > > > Petri this is quite well described but really should be part of the > > patch description (in the cover letter)? Then no need to have to ask > > why all this is done. > > I think we would like the validation suite (and everything else) to > > build as well... It's a bitch to change API's, I know. > > Even if the changes in some (more or less subjective) ways are not > > complete, if everything builds and runs then we know that ODP is in > > the same state as before the patch was applied. Cleaning up the > > implementation can and will always continue. > > > > > > On 16 January 2015 at 10:25, Savolainen, Petri (NSN
Re: [lng-odp] [PATCH 00/15] Event introduction
Maybe it’s better to test first which way results less (and more trivial) merge conflicts. I suspect that event first, directory/file restructure second would be easier job for git merge tool. Once we have decide that events are the way to go, someone can pick-up the job to update validation suite. It’s just matter of optimizing work flow for next couple of weeks. -Petri From: ext Bill Fischofer [mailto:bill.fischo...@linaro.org] Sent: Friday, January 16, 2015 1:13 PM To: Savolainen, Petri (NSN - FI/Espoo) Cc: ext Ola Liljedahl; LNG ODP Mailman List Subject: Re: [lng-odp] [PATCH 00/15] Event introduction We definitely need the validation tests to be updated as part of the initial patch, otherwise we have a patch that results in a non-buildable system, which violates our agreed-to patch rules. Given that Anders' API restructure patch is at a more complete state and is needed to support API inlining in a portable manner, I suggest that we integrate that patch first and then rebase this one (in a complete form) on it. This would also ease the conversion issues for other implementations since this change would then ride on the platform-independent API structure that the former patch introduces. On Fri, Jan 16, 2015 at 4:52 AM, Savolainen, Petri (NSN - FI/Espoo) mailto:petri.savolai...@nsn.com>> wrote: Yes, agree validation needs to be updated (soon or at the same time). Because the patch set is out now, someone could have picked that up and started that work already yesterday. We just need to decide if we merge this for 0.9 and if so, who updates validation suite and how those are merged. This patch set builds and runs for the default target. ./bootstrap ./configure make -Petri > -Original Message- > From: ext Ola Liljedahl > [mailto:ola.liljed...@linaro.org<mailto:ola.liljed...@linaro.org>] > Sent: Friday, January 16, 2015 12:43 PM > To: Savolainen, Petri (NSN - FI/Espoo) > Cc: ext Bill Fischofer; LNG ODP Mailman List > Subject: Re: [lng-odp] [PATCH 00/15] Event introduction > > Petri this is quite well described but really should be part of the > patch description (in the cover letter)? Then no need to have to ask > why all this is done. > I think we would like the validation suite (and everything else) to > build as well... It's a bitch to change API's, I know. > Even if the changes in some (more or less subjective) ways are not > complete, if everything builds and runs then we know that ODP is in > the same state as before the patch was applied. Cleaning up the > implementation can and will always continue. > > > On 16 January 2015 at 10:25, Savolainen, Petri (NSN - FI/Espoo) > mailto:petri.savolai...@nsn.com>> wrote: > > > > > > > > > > From: ext Bill Fischofer > > [mailto:bill.fischo...@linaro.org<mailto:bill.fischo...@linaro.org>] > > Sent: Thursday, January 15, 2015 11:26 PM > > To: Petri Savolainen > > Cc: LNG ODP Mailman List > > Subject: Re: [lng-odp] [PATCH 00/15] Event introduction > > > > > > > > Some more observations after having looked this over in a bit more > detail: > > > > > > > > This patch in its current form is basically a massive rename from > buffers to > > events and changing things like odp_buffer_pool_t to odp_pool_t. > Presumably > > this is intended to be followed by additional patches that surface new > > capabilities that build on this revised nomenclature, but for now the > > advantages of this change are unclear. While a patch is good, it would > be > > really helpful to have a description of what the envisioned target looks > > like so that the motivation behind this rename can be better > appreciated. > > > > > > > > This patch set introduces the new API structure. Implementation changes > are > > minimal since it’s an implementation choice if buffer is used as the > base > > class. Validation should be added and implementation cleaned where > needed > > after this. > > > > > > > > As we have talked this already multiple times: > > > > -Event replaces buffer as the “base class” of things that can be > > transmitted over queues and scheduled > > > > -Event has minimum metadata (only event type == > odp_event_type()) > > > > -Currently supported event types are: buffer, packet, timeout. > > Crypto completion event is likely to be the fourth one. > > > > -Buffer is just a another event (=raw buffer, no segmentation) > > > > -Benefit of the opaque base class is that different event types > are > > more independent (e.g. do not have to implement odp_buffer_size(), > > odp_buffer_a
Re: [lng-odp] [PATCH 00/15] Event introduction
We definitely need the validation tests to be updated as part of the initial patch, otherwise we have a patch that results in a non-buildable system, which violates our agreed-to patch rules. Given that Anders' API restructure patch is at a more complete state and is needed to support API inlining in a portable manner, I suggest that we integrate that patch first and then rebase this one (in a complete form) on it. This would also ease the conversion issues for other implementations since this change would then ride on the platform-independent API structure that the former patch introduces. On Fri, Jan 16, 2015 at 4:52 AM, Savolainen, Petri (NSN - FI/Espoo) < petri.savolai...@nsn.com> wrote: > Yes, agree validation needs to be updated (soon or at the same time). > > Because the patch set is out now, someone could have picked that up and > started that work already yesterday. We just need to decide if we merge > this for 0.9 and if so, who updates validation suite and how those are > merged. This patch set builds and runs for the default target. > > ./bootstrap > ./configure > make > > > -Petri > > > > -Original Message- > > From: ext Ola Liljedahl [mailto:ola.liljed...@linaro.org] > > Sent: Friday, January 16, 2015 12:43 PM > > To: Savolainen, Petri (NSN - FI/Espoo) > > Cc: ext Bill Fischofer; LNG ODP Mailman List > > Subject: Re: [lng-odp] [PATCH 00/15] Event introduction > > > > Petri this is quite well described but really should be part of the > > patch description (in the cover letter)? Then no need to have to ask > > why all this is done. > > I think we would like the validation suite (and everything else) to > > build as well... It's a bitch to change API's, I know. > > Even if the changes in some (more or less subjective) ways are not > > complete, if everything builds and runs then we know that ODP is in > > the same state as before the patch was applied. Cleaning up the > > implementation can and will always continue. > > > > > > On 16 January 2015 at 10:25, Savolainen, Petri (NSN - FI/Espoo) > > wrote: > > > > > > > > > > > > > > > From: ext Bill Fischofer [mailto:bill.fischo...@linaro.org] > > > Sent: Thursday, January 15, 2015 11:26 PM > > > To: Petri Savolainen > > > Cc: LNG ODP Mailman List > > > Subject: Re: [lng-odp] [PATCH 00/15] Event introduction > > > > > > > > > > > > Some more observations after having looked this over in a bit more > > detail: > > > > > > > > > > > > This patch in its current form is basically a massive rename from > > buffers to > > > events and changing things like odp_buffer_pool_t to odp_pool_t. > > Presumably > > > this is intended to be followed by additional patches that surface new > > > capabilities that build on this revised nomenclature, but for now the > > > advantages of this change are unclear. While a patch is good, it would > > be > > > really helpful to have a description of what the envisioned target > looks > > > like so that the motivation behind this rename can be better > > appreciated. > > > > > > > > > > > > This patch set introduces the new API structure. Implementation changes > > are > > > minimal since it’s an implementation choice if buffer is used as the > > base > > > class. Validation should be added and implementation cleaned where > > needed > > > after this. > > > > > > > > > > > > As we have talked this already multiple times: > > > > > > -Event replaces buffer as the “base class” of things that can > be > > > transmitted over queues and scheduled > > > > > > -Event has minimum metadata (only event type == > > odp_event_type()) > > > > > > -Currently supported event types are: buffer, packet, timeout. > > > Crypto completion event is likely to be the fourth one. > > > > > > -Buffer is just a another event (=raw buffer, no segmentation) > > > > > > -Benefit of the opaque base class is that different event types > > are > > > more independent (e.g. do not have to implement odp_buffer_size(), > > > odp_buffer_addr(), etc) > > > > > > -There are event types that do not carry data, but only > metadata > > > (e.g. timer timeout). Also in future, some event types may not be > linked > > to > > > a pool (user could not allocate, or ask for the pool) > >
Re: [lng-odp] [PATCH 00/15] Event introduction
Yes, agree validation needs to be updated (soon or at the same time). Because the patch set is out now, someone could have picked that up and started that work already yesterday. We just need to decide if we merge this for 0.9 and if so, who updates validation suite and how those are merged. This patch set builds and runs for the default target. ./bootstrap ./configure make -Petri > -Original Message- > From: ext Ola Liljedahl [mailto:ola.liljed...@linaro.org] > Sent: Friday, January 16, 2015 12:43 PM > To: Savolainen, Petri (NSN - FI/Espoo) > Cc: ext Bill Fischofer; LNG ODP Mailman List > Subject: Re: [lng-odp] [PATCH 00/15] Event introduction > > Petri this is quite well described but really should be part of the > patch description (in the cover letter)? Then no need to have to ask > why all this is done. > I think we would like the validation suite (and everything else) to > build as well... It's a bitch to change API's, I know. > Even if the changes in some (more or less subjective) ways are not > complete, if everything builds and runs then we know that ODP is in > the same state as before the patch was applied. Cleaning up the > implementation can and will always continue. > > > On 16 January 2015 at 10:25, Savolainen, Petri (NSN - FI/Espoo) > wrote: > > > > > > > > > > From: ext Bill Fischofer [mailto:bill.fischo...@linaro.org] > > Sent: Thursday, January 15, 2015 11:26 PM > > To: Petri Savolainen > > Cc: LNG ODP Mailman List > > Subject: Re: [lng-odp] [PATCH 00/15] Event introduction > > > > > > > > Some more observations after having looked this over in a bit more > detail: > > > > > > > > This patch in its current form is basically a massive rename from > buffers to > > events and changing things like odp_buffer_pool_t to odp_pool_t. > Presumably > > this is intended to be followed by additional patches that surface new > > capabilities that build on this revised nomenclature, but for now the > > advantages of this change are unclear. While a patch is good, it would > be > > really helpful to have a description of what the envisioned target looks > > like so that the motivation behind this rename can be better > appreciated. > > > > > > > > This patch set introduces the new API structure. Implementation changes > are > > minimal since it’s an implementation choice if buffer is used as the > base > > class. Validation should be added and implementation cleaned where > needed > > after this. > > > > > > > > As we have talked this already multiple times: > > > > -Event replaces buffer as the “base class” of things that can be > > transmitted over queues and scheduled > > > > -Event has minimum metadata (only event type == > odp_event_type()) > > > > -Currently supported event types are: buffer, packet, timeout. > > Crypto completion event is likely to be the fourth one. > > > > -Buffer is just a another event (=raw buffer, no segmentation) > > > > -Benefit of the opaque base class is that different event types > are > > more independent (e.g. do not have to implement odp_buffer_size(), > > odp_buffer_addr(), etc) > > > > -There are event types that do not carry data, but only metadata > > (e.g. timer timeout). Also in future, some event types may not be linked > to > > a pool (user could not allocate, or ask for the pool) > > > > -Application cannot access one event type through multiple APIs > > (e.g. mix odp_buffer_xxx() and odp_packet_xxx() calls when accessing a > > packet) > > > > -Pools are not only for buffers, but for multiple event types > > (buffers, packets, timeouts, etc) > > > > > > > > > > > > Unless we also get API inline support into v1.0, there will be a > performance > > hit here since as a result of the rename it seems a lot of applications > will > > be making frequent calls to odp_buffer_to_event() and > > odp_buffer_from_event() that were not needed before. > > > > > > > > Performance is exactly the same as earlier. There are same number of > handle > > conversions for packet, timeouts, etc (other than raw buffers). The > > conversion is still most likely a cast. I added some extra conversion > into > > implementation to limit implementation changes (but performance of two > type > > casts instead of one is the same). > > > > > > > > ev = odp_schedule(); > > > > pkt = odp_packet_from_e
Re: [lng-odp] [PATCH 00/15] Event introduction
Petri this is quite well described but really should be part of the patch description (in the cover letter)? Then no need to have to ask why all this is done. I think we would like the validation suite (and everything else) to build as well... It's a bitch to change API's, I know. Even if the changes in some (more or less subjective) ways are not complete, if everything builds and runs then we know that ODP is in the same state as before the patch was applied. Cleaning up the implementation can and will always continue. On 16 January 2015 at 10:25, Savolainen, Petri (NSN - FI/Espoo) wrote: > > > > > From: ext Bill Fischofer [mailto:bill.fischo...@linaro.org] > Sent: Thursday, January 15, 2015 11:26 PM > To: Petri Savolainen > Cc: LNG ODP Mailman List > Subject: Re: [lng-odp] [PATCH 00/15] Event introduction > > > > Some more observations after having looked this over in a bit more detail: > > > > This patch in its current form is basically a massive rename from buffers to > events and changing things like odp_buffer_pool_t to odp_pool_t. Presumably > this is intended to be followed by additional patches that surface new > capabilities that build on this revised nomenclature, but for now the > advantages of this change are unclear. While a patch is good, it would be > really helpful to have a description of what the envisioned target looks > like so that the motivation behind this rename can be better appreciated. > > > > This patch set introduces the new API structure. Implementation changes are > minimal since it’s an implementation choice if buffer is used as the base > class. Validation should be added and implementation cleaned where needed > after this. > > > > As we have talked this already multiple times: > > -Event replaces buffer as the “base class” of things that can be > transmitted over queues and scheduled > > -Event has minimum metadata (only event type == odp_event_type()) > > -Currently supported event types are: buffer, packet, timeout. > Crypto completion event is likely to be the fourth one. > > -Buffer is just a another event (=raw buffer, no segmentation) > > -Benefit of the opaque base class is that different event types are > more independent (e.g. do not have to implement odp_buffer_size(), > odp_buffer_addr(), etc) > > -There are event types that do not carry data, but only metadata > (e.g. timer timeout). Also in future, some event types may not be linked to > a pool (user could not allocate, or ask for the pool) > > -Application cannot access one event type through multiple APIs > (e.g. mix odp_buffer_xxx() and odp_packet_xxx() calls when accessing a > packet) > > -Pools are not only for buffers, but for multiple event types > (buffers, packets, timeouts, etc) > > > > > > Unless we also get API inline support into v1.0, there will be a performance > hit here since as a result of the rename it seems a lot of applications will > be making frequent calls to odp_buffer_to_event() and > odp_buffer_from_event() that were not needed before. > > > > Performance is exactly the same as earlier. There are same number of handle > conversions for packet, timeouts, etc (other than raw buffers). The > conversion is still most likely a cast. I added some extra conversion into > implementation to limit implementation changes (but performance of two type > casts instead of one is the same). > > > > ev = odp_schedule(); > > pkt = odp_packet_from_event(ev) > > > > vs. > > > > buf = odp_schedule(); > > pkt = odp_packet_from_buffer(buf); > > > > > > There are a few oddities. Why wasn't odp_buffer_pool.c renamed to > odp_pool.c since it now implements odp_pool_create(), not > odp_buffer_pool_create(), etc.? There also doesn't appear to be any way to > manipulate events other than by first converting them to buffers. For > example, when an event is obtained from odp_schedule() it can't be freed. > Instead, you do an odp_buffer_from_event() followed by an odp_buffer_free() > call. This seems awkward. > > > > Since .c is implementation. I did minimal implementation change. Others can > continue with implementation clean ups where needed. > > > > odp_event_free(odp_event_t* ev) can be added, but it would be mostly useful > when application wants to blindly drop an event (without checking its type > first). > > > > Event <-> buffer conversion is the feature. It promotes usage of correct > types when accessing the event. Also (linux-generic) implementation should > enforce type correctness and report a build (or run time) error if user > tries
Re: [lng-odp] [PATCH 00/15] Event introduction
From: ext Bill Fischofer [mailto:bill.fischo...@linaro.org] Sent: Thursday, January 15, 2015 11:26 PM To: Petri Savolainen Cc: LNG ODP Mailman List Subject: Re: [lng-odp] [PATCH 00/15] Event introduction Some more observations after having looked this over in a bit more detail: This patch in its current form is basically a massive rename from buffers to events and changing things like odp_buffer_pool_t to odp_pool_t. Presumably this is intended to be followed by additional patches that surface new capabilities that build on this revised nomenclature, but for now the advantages of this change are unclear. While a patch is good, it would be really helpful to have a description of what the envisioned target looks like so that the motivation behind this rename can be better appreciated. This patch set introduces the new API structure. Implementation changes are minimal since it’s an implementation choice if buffer is used as the base class. Validation should be added and implementation cleaned where needed after this. As we have talked this already multiple times: -Event replaces buffer as the “base class” of things that can be transmitted over queues and scheduled -Event has minimum metadata (only event type == odp_event_type()) -Currently supported event types are: buffer, packet, timeout. Crypto completion event is likely to be the fourth one. -Buffer is just a another event (=raw buffer, no segmentation) -Benefit of the opaque base class is that different event types are more independent (e.g. do not have to implement odp_buffer_size(), odp_buffer_addr(), etc) -There are event types that do not carry data, but only metadata (e.g. timer timeout). Also in future, some event types may not be linked to a pool (user could not allocate, or ask for the pool) -Application cannot access one event type through multiple APIs (e.g. mix odp_buffer_xxx() and odp_packet_xxx() calls when accessing a packet) -Pools are not only for buffers, but for multiple event types (buffers, packets, timeouts, etc) Unless we also get API inline support into v1.0, there will be a performance hit here since as a result of the rename it seems a lot of applications will be making frequent calls to odp_buffer_to_event() and odp_buffer_from_event() that were not needed before. Performance is exactly the same as earlier. There are same number of handle conversions for packet, timeouts, etc (other than raw buffers). The conversion is still most likely a cast. I added some extra conversion into implementation to limit implementation changes (but performance of two type casts instead of one is the same). ev = odp_schedule(); pkt = odp_packet_from_event(ev) vs. buf = odp_schedule(); pkt = odp_packet_from_buffer(buf); There are a few oddities. Why wasn't odp_buffer_pool.c renamed to odp_pool.c since it now implements odp_pool_create(), not odp_buffer_pool_create(), etc.? There also doesn't appear to be any way to manipulate events other than by first converting them to buffers. For example, when an event is obtained from odp_schedule() it can't be freed. Instead, you do an odp_buffer_from_event() followed by an odp_buffer_free() call. This seems awkward. Since .c is implementation. I did minimal implementation change. Others can continue with implementation clean ups where needed. odp_event_free(odp_event_t* ev) can be added, but it would be mostly useful when application wants to blindly drop an event (without checking its type first). Event <-> buffer conversion is the feature. It promotes usage of correct types when accessing the event. Also (linux-generic) implementation should enforce type correctness and report a build (or run time) error if user tries to e.g. do odp_buffer_addr(event) or odp_packet_data(buf). The odp_pool_param_t (formerly odp_buffer_pool_param_t) is also incomplete since it's not clear how its intended to be used for the various event types. For example, there is a pkt section that has some items but odp_pool_create() still only references the buf section for creating packet events. And the tmo section is null. It’s incomplete to minimize implementation changes at this point. Those packet (and timeout) pool parametesr have to be defined and implementation changed accordingly. This type change enabled per event/pool type parameters, but does not implement those yet (== does not change the current pool param functionality). It seems very late in v1.0 to be contemplating this large a change, especially as it doesn't seem to be fully fleshed out yet. It would seem if we did something partial now applications would still face a step function conversion when the "second half" of the change was introduced later. So I'm wondering if it might be better if this were deferred to post-v1.0 to allow time for it to be fully developed and intr
Re: [lng-odp] [PATCH 00/15] Event introduction
True, validation suites are not updated. Those can be updated after merge. -Petri From: ext Bill Fischofer [mailto:bill.fischo...@linaro.org] Sent: Thursday, January 15, 2015 9:58 PM To: Petri Savolainen Cc: LNG ODP Mailman List Subject: Re: [lng-odp] [PATCH 00/15] Event introduction Actually, looks like none of the unit tests are updated by this patch, so tests/validation do not compile with this patch applied. On Thu, Jan 15, 2015 at 1:48 PM, Bill Fischofer mailto:bill.fischo...@linaro.org>> wrote: Initial comment: Patch series applies, however appears incomplete as test/validation/odp_queue.c hasn't been updated: odp_queue.c: In function ‘init_queue_suite’: odp_queue.c:18:2: error: unknown type name ‘odp_buffer_pool_t’ odp_buffer_pool_t pool; ^ odp_queue.c:19:2: error: unknown type name ‘odp_buffer_pool_param_t’ odp_buffer_pool_param_t params; ^ odp_queue.c:21:8: error: request for member ‘buf_size’ in something not a structure or union params.buf_size = 0; ^ odp_queue.c:22:8: error: request for member ‘buf_align’ in something not a structure or union params.buf_align = ODP_CACHE_LINE_SIZE; ^ odp_queue.c:23:8: error: request for member ‘num_bufs’ in something not a structure or union params.num_bufs = 1024 * 10; ^ odp_queue.c:24:8: error: request for member ‘buf_type’ in something not a structure or union params.buf_type = ODP_BUFFER_TYPE_RAW; ^ odp_queue.c:24:21: error: ‘ODP_BUFFER_TYPE_RAW’ undeclared (first use in this function) params.buf_type = ODP_BUFFER_TYPE_RAW; ^ odp_queue.c:24:21: note: each undeclared identifier is reported only once for each function it appears in odp_queue.c:26:2: error: implicit declaration of function ‘odp_buffer_pool_create’ [-Werror=implicit-function-declaration] pool = odp_buffer_pool_create("msg_pool", ODP_SHM_NULL, ¶ms); ^ odp_queue.c:26:2: error: nested extern declaration of ‘odp_buffer_pool_create’ [-Werror=nested-externs] odp_queue.c:28:6: error: ‘ODP_BUFFER_POOL_INVALID’ undeclared (first use in this function) if (ODP_BUFFER_POOL_INVALID == pool) { ^ odp_queue.c: In function ‘test_odp_queue_sunnyday’: odp_queue.c:40:2: error: unknown type name ‘odp_buffer_pool_t’ odp_buffer_pool_t msg_pool; ^ odp_queue.c:68:2: error: implicit declaration of function ‘odp_buffer_pool_lookup’ [-Werror=implicit-function-declaration] msg_pool = odp_buffer_pool_lookup("msg_pool"); ^ odp_queue.c:68:2: error: nested extern declaration of ‘odp_buffer_pool_lookup’ [-Werror=nested-externs] cc1: all warnings being treated as errors Makefile:843: recipe for target 'odp_queue.o' failed make[2]: *** [odp_queue.o] Error 1 make[2]: Leaving directory '/home/bill/linaro/events/test/validation' Makefile:369: recipe for target 'all-recursive' failed make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory '/home/bill/linaro/events/test' Makefile:454: recipe for target 'all-recursive' failed make: *** [all-recursive] Error 1 bill@ubuntu:~/linaro/events$ On Thu, Jan 15, 2015 at 9:40 AM, Petri Savolainen mailto:petri.savolai...@linaro.org>> 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. 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 |
Re: [lng-odp] [PATCH 00/15] Event introduction
Some more observations after having looked this over in a bit more detail: This patch in its current form is basically a massive rename from buffers to events and changing things like odp_buffer_pool_t to odp_pool_t. Presumably this is intended to be followed by additional patches that surface new capabilities that build on this revised nomenclature, but for now the advantages of this change are unclear. While a patch is good, it would be really helpful to have a description of what the envisioned target looks like so that the motivation behind this rename can be better appreciated. Unless we also get API inline support into v1.0, there will be a performance hit here since as a result of the rename it seems a lot of applications will be making frequent calls to odp_buffer_to_event() and odp_buffer_from_event() that were not needed before. There are a few oddities. Why wasn't odp_buffer_pool.c renamed to odp_pool.c since it now implements odp_pool_create(), not odp_buffer_pool_create(), etc.? There also doesn't appear to be any way to manipulate events other than by first converting them to buffers. For example, when an event is obtained from odp_schedule() it can't be freed. Instead, you do an odp_buffer_from_event() followed by an odp_buffer_free() call. This seems awkward. The odp_pool_param_t (formerly odp_buffer_pool_param_t) is also incomplete since it's not clear how its intended to be used for the various event types. For example, there is a pkt section that has some items but odp_pool_create() still only references the buf section for creating packet events. And the tmo section is null. It seems very late in v1.0 to be contemplating this large a change, especially as it doesn't seem to be fully fleshed out yet. It would seem if we did something partial now applications would still face a step function conversion when the "second half" of the change was introduced later. So I'm wondering if it might be better if this were deferred to post-v1.0 to allow time for it to be fully developed and introduced as part of a later release? I think we can introduce new concepts in a reasonably backward-compatible manner with some planning. On Thu, Jan 15, 2015 at 1:58 PM, Bill Fischofer wrote: > Actually, looks like none of the unit tests are updated by this patch, so > tests/validation do not compile with this patch applied. > > On Thu, Jan 15, 2015 at 1:48 PM, Bill Fischofer > wrote: > >> Initial comment: >> >> Patch series applies, however appears incomplete as >> test/validation/odp_queue.c hasn't been updated: >> >> odp_queue.c: In function ‘init_queue_suite’: >> odp_queue.c:18:2: error: unknown type name ‘odp_buffer_pool_t’ >> odp_buffer_pool_t pool; >> ^ >> odp_queue.c:19:2: error: unknown type name ‘odp_buffer_pool_param_t’ >> odp_buffer_pool_param_t params; >> ^ >> odp_queue.c:21:8: error: request for member ‘buf_size’ in something not a >> structure or union >> params.buf_size = 0; >> ^ >> odp_queue.c:22:8: error: request for member ‘buf_align’ in something not >> a structure or union >> params.buf_align = ODP_CACHE_LINE_SIZE; >> ^ >> odp_queue.c:23:8: error: request for member ‘num_bufs’ in something not a >> structure or union >> params.num_bufs = 1024 * 10; >> ^ >> odp_queue.c:24:8: error: request for member ‘buf_type’ in something not a >> structure or union >> params.buf_type = ODP_BUFFER_TYPE_RAW; >> ^ >> odp_queue.c:24:21: error: ‘ODP_BUFFER_TYPE_RAW’ undeclared (first use in >> this function) >> params.buf_type = ODP_BUFFER_TYPE_RAW; >> ^ >> odp_queue.c:24:21: note: each undeclared identifier is reported only once >> for each function it appears in >> odp_queue.c:26:2: error: implicit declaration of function >> ‘odp_buffer_pool_create’ [-Werror=implicit-function-declaration] >> pool = odp_buffer_pool_create("msg_pool", ODP_SHM_NULL, ¶ms); >> ^ >> odp_queue.c:26:2: error: nested extern declaration of >> ‘odp_buffer_pool_create’ [-Werror=nested-externs] >> odp_queue.c:28:6: error: ‘ODP_BUFFER_POOL_INVALID’ undeclared (first use >> in this function) >> if (ODP_BUFFER_POOL_INVALID == pool) { >> ^ >> odp_queue.c: In function ‘test_odp_queue_sunnyday’: >> odp_queue.c:40:2: error: unknown type name ‘odp_buffer_pool_t’ >> odp_buffer_pool_t msg_pool; >> ^ >> odp_queue.c:68:2: error: implicit declaration of function >> ‘odp_buffer_pool_lookup’ [-Werror=implicit-function-declaration] >> msg_pool = odp_buffer_pool_lookup("msg_pool"); >> ^ >> odp_queue.c:68:2: error: nested extern declaration of >> ‘odp_buffer_pool_lookup’ [-Werror=nested-externs] >> cc1: all warnings being treated as errors >> Makefile:843: recipe for target 'odp_queue.o' failed >> make[2]: *** [odp_queue.o] Error 1 >> make[2]: Leaving directory '/home/bill/linaro/events/test/validation' >> Makefile:369: recipe for target 'all-recursive' failed >> make[1]: *** [all-recursive] Error 1 >> make[1]: Leaving directory '/home/bill/li
Re: [lng-odp] [PATCH 00/15] Event introduction
Actually, looks like none of the unit tests are updated by this patch, so tests/validation do not compile with this patch applied. On Thu, Jan 15, 2015 at 1:48 PM, Bill Fischofer wrote: > Initial comment: > > Patch series applies, however appears incomplete as > test/validation/odp_queue.c hasn't been updated: > > odp_queue.c: In function ‘init_queue_suite’: > odp_queue.c:18:2: error: unknown type name ‘odp_buffer_pool_t’ > odp_buffer_pool_t pool; > ^ > odp_queue.c:19:2: error: unknown type name ‘odp_buffer_pool_param_t’ > odp_buffer_pool_param_t params; > ^ > odp_queue.c:21:8: error: request for member ‘buf_size’ in something not a > structure or union > params.buf_size = 0; > ^ > odp_queue.c:22:8: error: request for member ‘buf_align’ in something not a > structure or union > params.buf_align = ODP_CACHE_LINE_SIZE; > ^ > odp_queue.c:23:8: error: request for member ‘num_bufs’ in something not a > structure or union > params.num_bufs = 1024 * 10; > ^ > odp_queue.c:24:8: error: request for member ‘buf_type’ in something not a > structure or union > params.buf_type = ODP_BUFFER_TYPE_RAW; > ^ > odp_queue.c:24:21: error: ‘ODP_BUFFER_TYPE_RAW’ undeclared (first use in > this function) > params.buf_type = ODP_BUFFER_TYPE_RAW; > ^ > odp_queue.c:24:21: note: each undeclared identifier is reported only once > for each function it appears in > odp_queue.c:26:2: error: implicit declaration of function > ‘odp_buffer_pool_create’ [-Werror=implicit-function-declaration] > pool = odp_buffer_pool_create("msg_pool", ODP_SHM_NULL, ¶ms); > ^ > odp_queue.c:26:2: error: nested extern declaration of > ‘odp_buffer_pool_create’ [-Werror=nested-externs] > odp_queue.c:28:6: error: ‘ODP_BUFFER_POOL_INVALID’ undeclared (first use > in this function) > if (ODP_BUFFER_POOL_INVALID == pool) { > ^ > odp_queue.c: In function ‘test_odp_queue_sunnyday’: > odp_queue.c:40:2: error: unknown type name ‘odp_buffer_pool_t’ > odp_buffer_pool_t msg_pool; > ^ > odp_queue.c:68:2: error: implicit declaration of function > ‘odp_buffer_pool_lookup’ [-Werror=implicit-function-declaration] > msg_pool = odp_buffer_pool_lookup("msg_pool"); > ^ > odp_queue.c:68:2: error: nested extern declaration of > ‘odp_buffer_pool_lookup’ [-Werror=nested-externs] > cc1: all warnings being treated as errors > Makefile:843: recipe for target 'odp_queue.o' failed > make[2]: *** [odp_queue.o] Error 1 > make[2]: Leaving directory '/home/bill/linaro/events/test/validation' > Makefile:369: recipe for target 'all-recursive' failed > make[1]: *** [all-recursive] Error 1 > make[1]: Leaving directory '/home/bill/linaro/events/test' > Makefile:454: recipe for target 'all-recursive' failed > make: *** [all-recursive] Error 1 > bill@ubuntu:~/linaro/events$ > > > On Thu, Jan 15, 2015 at 9:40 AM, Petri Savolainen < > petri.savolai...@linaro.org> 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. >> >> 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 +++-- >
Re: [lng-odp] [PATCH 00/15] Event introduction
Initial comment: Patch series applies, however appears incomplete as test/validation/odp_queue.c hasn't been updated: odp_queue.c: In function ‘init_queue_suite’: odp_queue.c:18:2: error: unknown type name ‘odp_buffer_pool_t’ odp_buffer_pool_t pool; ^ odp_queue.c:19:2: error: unknown type name ‘odp_buffer_pool_param_t’ odp_buffer_pool_param_t params; ^ odp_queue.c:21:8: error: request for member ‘buf_size’ in something not a structure or union params.buf_size = 0; ^ odp_queue.c:22:8: error: request for member ‘buf_align’ in something not a structure or union params.buf_align = ODP_CACHE_LINE_SIZE; ^ odp_queue.c:23:8: error: request for member ‘num_bufs’ in something not a structure or union params.num_bufs = 1024 * 10; ^ odp_queue.c:24:8: error: request for member ‘buf_type’ in something not a structure or union params.buf_type = ODP_BUFFER_TYPE_RAW; ^ odp_queue.c:24:21: error: ‘ODP_BUFFER_TYPE_RAW’ undeclared (first use in this function) params.buf_type = ODP_BUFFER_TYPE_RAW; ^ odp_queue.c:24:21: note: each undeclared identifier is reported only once for each function it appears in odp_queue.c:26:2: error: implicit declaration of function ‘odp_buffer_pool_create’ [-Werror=implicit-function-declaration] pool = odp_buffer_pool_create("msg_pool", ODP_SHM_NULL, ¶ms); ^ odp_queue.c:26:2: error: nested extern declaration of ‘odp_buffer_pool_create’ [-Werror=nested-externs] odp_queue.c:28:6: error: ‘ODP_BUFFER_POOL_INVALID’ undeclared (first use in this function) if (ODP_BUFFER_POOL_INVALID == pool) { ^ odp_queue.c: In function ‘test_odp_queue_sunnyday’: odp_queue.c:40:2: error: unknown type name ‘odp_buffer_pool_t’ odp_buffer_pool_t msg_pool; ^ odp_queue.c:68:2: error: implicit declaration of function ‘odp_buffer_pool_lookup’ [-Werror=implicit-function-declaration] msg_pool = odp_buffer_pool_lookup("msg_pool"); ^ odp_queue.c:68:2: error: nested extern declaration of ‘odp_buffer_pool_lookup’ [-Werror=nested-externs] cc1: all warnings being treated as errors Makefile:843: recipe for target 'odp_queue.o' failed make[2]: *** [odp_queue.o] Error 1 make[2]: Leaving directory '/home/bill/linaro/events/test/validation' Makefile:369: recipe for target 'all-recursive' failed make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory '/home/bill/linaro/events/test' Makefile:454: recipe for target 'all-recursive' failed make: *** [all-recursive] Error 1 bill@ubuntu:~/linaro/events$ On Thu, Jan 15, 2015 at 9:40 AM, Petri Savolainen < petri.savolai...@linaro.org> 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. > > 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/i
[lng-odp] [PATCH 00/15] Event introduction
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. 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