, ...).
Old enumerations are still functional but deprecated.
Algotrithm level capability functions provide a flexible way to
handle all possible key/digest/iv length combinations.
Signed-off-by: Petri Savolainen
---
include/odp/api/spec/crypto.h | 154 --
1
Added definitions for a look-a-side IPSEC offload API. In addition to
IPSEC packet transformations, it also supports:
* inbound SA look up
* outbound IP fragmentation
Signed-off-by: Petri Savolainen
---
Changes to draft:
* renamed odp_ipsec_proto_t to renamed odp_ipsec_protocol_t
* specify that
limit the number of modification in the commit.
Signed-off-by: Petri Savolainen
---
.../include/odp/api/plat/pool_types.h |6 -
.../linux-generic/include/odp_buffer_inlines.h | 160 +--
.../linux-generic/include/odp_buffer_internal.h| 104 +-
.../include
Added support for multi-segmented packets. The first segments
is the packet descriptor, which contains all metadata and
pointers to other segments.
Signed-off-by: Petri Savolainen
---
.../include/odp/api/plat/packet_types.h| 6 +-
.../linux-generic/include/odp_buffer_inlines.h
Round up global pool allocations to a burst size. Cache any
extra buffers for future use. Prefetch buffers header which
very newly allocated from global pool and will be returned to
the caller.
Signed-off-by: Petri Savolainen
---
.../linux-generic/include/odp_buffer_internal.h| 3
Moved scheduler ring code into a new header file, so that
it can be used also in other parts of the implementation.
Signed-off-by: Petri Savolainen
---
platform/linux-generic/Makefile.am | 1 +
platform/linux-generic/include/odp_ring_internal.h | 111
Applications must use pool capabilibty to check maximum values
for parameters. Used maximum segment length since application
seems to support only single segment packets.
Signed-off-by: Petri Savolainen
---
test/common_plat/performance/odp_crypto.c | 47 +++
1 file
. Renamed odp_buffer_pool_headroom() and _tailroom() to
simply pool_headroom() and _tailroom(), since those are internal
functions (not API as previous names hint). Also moved those
into pool.c, since inlining is not needed for functions that are
called only in (netmap) init phase.
Signed-off-by: Petri
y the maximum packet length
to be allocated from the pool. Implementations may use this
information to optimize e.g. memory usage, etc. Application must
not exceed the max_len parameter value on alloc calls. Pool
capabilities define already max_len.
Signed-off-by: Petri Savolainen
---
include/odp/api
Check pool capability limits for packet length and segment
length, and do not exceed those.
Signed-off-by: Petri Savolainen
---
test/common_plat/validation/api/pktio/pktio.c | 26 ++
1 file changed, 22 insertions(+), 4 deletions(-)
diff --git a/test/common_plat
segmentation implementation
* Reviewed-and-tested-by: Bill Fischofer
v2:
* rebased to api-next branch
* added a comment that ring size must be larger than number of items in it
* fixed clang build issue
* added parens in align macro
v1:
* Reviewed-by: Brian Brooks
Petri Savolainen (23):
linux-gen
Added checks for correct alignment. Also updated tests to call
odp_pool_param_init() for parameter initialization.
Signed-off-by: Petri Savolainen
---
test/common_plat/validation/api/buffer/buffer.c | 113 +---
1 file changed, 63 insertions(+), 50 deletions(-)
diff --git a
Improve performance by changing the first parameter of
buffer_alloc_multi() to pool pointer (from handle), to avoid
double lookup of the pool pointer. Pointer is available for
packet alloc calls already.
Signed-off-by: Petri Savolainen
---
platform/linux-generic/include/odp_buffer_internal.h
Use odp_pool_param_init() to initialize pool parameters. Also
pktio test must use capability to determine maximum packet
segment length.
Signed-off-by: Petri Savolainen
---
example/generator/odp_generator.c | 2 +-
test/common_plat/validation/api/crypto/crypto.c | 2 +-
test
Added test cases to allocate and free multiple multi-segment
packets.
Signed-off-by: Petri Savolainen
---
test/common_plat/validation/api/packet/packet.c | 73 +++--
1 file changed, 68 insertions(+), 5 deletions(-)
diff --git a/test/common_plat/validation/api/packet
Check pool parameters against maximum capabilities. Also defined
a limit for maximum buffer and user area sizes. Chose 10 MB as
a limit since it's small enough to be available in all Linux systems
and it should be more than enough for normal pool usage.
Signed-off-by: Petri Savol
Added multi-data versions of ring enqueue and dequeue operations.
Signed-off-by: Petri Savolainen
---
platform/linux-generic/include/odp_ring_internal.h | 65 ++
1 file changed, 65 insertions(+)
diff --git a/platform/linux-generic/include/odp_ring_internal.h
b/platform
Use multi enq and deq operations to optimize global pool
access performance. Temporary uint32_t arrays are needed
since handles are pointer size variables.
Signed-off-by: Petri Savolainen
---
platform/linux-generic/odp_pool.c | 32
1 file changed, 20 insertions
Remove support for zero length allocations which were never
required by the API specification or tested by the validation
suite.
Signed-off-by: Petri Savolainen
---
platform/linux-generic/odp_packet.c | 28
1 file changed, 28 deletions(-)
diff --git a/platform
Reduced oversized packet length and segment length requirements
from 32 kB to 1 kB (tens of bytes are actually used). Also check
that lengths are not larger than pool capabilities for those.
Signed-off-by: Petri Savolainen
---
test/common_plat/validation/api/crypto/crypto.c | 24
Enable segmentation support with CONFIG_PACKET_MAX_SEGS
configuration option.
Signed-off-by: Petri Savolainen
---
platform/linux-generic/include/odp_config_internal.h | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/platform/linux-generic/include/odp_config_internal.h
b
Added a macro to round up a value to the next power of two,
if it's not already a power of two. Also removed duplicated
code from the same file.
Signed-off-by: Petri Savolainen
---
.../linux-generic/include/odp_align_internal.h | 34 +-
1 file changed, 7 inser
This is a bug correction for multi-segment packet handling. Packet
pull tail cannot decrement packet length more than there are data
in the last segment. Trunc tail must be used instead.
Signed-off-by: Petri Savolainen
---
platform/linux-generic/pktio/socket.c | 25 +++--
1
test to concatenate two copies of the same
packet.
Signed-off-by: Petri Savolainen
---
test/common_plat/validation/api/packet/packet.c | 15 +++
1 file changed, 11 insertions(+), 4 deletions(-)
diff --git a/test/common_plat/validation/api/packet/packet.c
b/test/common_plat/valid
In some error cases, netmap and dpdk pktios were calling
odp_packet_free_multi with zero packets. Moved existing error
check to avoid a free call with zero packets.
Signed-off-by: Petri Savolainen
---
platform/linux-generic/pktio/dpdk.c | 10 ++
platform/linux-generic/pktio/netmap.c
IPC pktio implementation depends heavily on pool internals. It's
build is disabled due to pool re-implementation. IPC should be
re-implemented with a cleaner internal interface towards pool and
shm.
Signed-off-by: Petri Savolainen
---
platform/linux-generic/pktio/ipc.c | 3 ++-
1 file ch
Added definitions for a look-a-side IPSEC offload API. In addition to
IPSEC packet transformations, it also supports:
* inbound SA look up
* outbound IP fragmentation
Signed-off-by: Petri Savolainen
---
include/odp/api/spec/event.h | 2 +-
include/odp/api/spec/ipsec.h
limit the number of modification in the commit.
Signed-off-by: Petri Savolainen
---
.../include/odp/api/plat/pool_types.h |6 -
.../linux-generic/include/odp_buffer_inlines.h | 160 +--
.../linux-generic/include/odp_buffer_internal.h| 104 +-
.../include
Added support for multi-segmented packets. The first segments
is the packet descriptor, which contains all metadata and
pointers to other segments.
Signed-off-by: Petri Savolainen
---
.../include/odp/api/plat/packet_types.h| 6 +-
.../linux-generic/include/odp_buffer_inlines.h
. Renamed odp_buffer_pool_headroom() and _tailroom() to
simply pool_headroom() and _tailroom(), since those are internal
functions (not API as previous names hint). Also moved those
into pool.c, since inlining is not needed for functions that are
called only in (netmap) init phase.
Signed-off-by: Petri
Moved scheduler ring code into a new header file, so that
it can be used also in other parts of the implementation.
Signed-off-by: Petri Savolainen
---
platform/linux-generic/Makefile.am | 1 +
platform/linux-generic/include/odp_ring_internal.h | 111
Round up global pool allocations to a burst size. Cache any
extra buffers for future use. Prefetch buffers header which
very newly allocated from global pool and will be returned to
the caller.
Signed-off-by: Petri Savolainen
---
.../linux-generic/include/odp_buffer_internal.h| 3
Added checks for correct alignment. Also updated tests to call
odp_pool_param_init() for parameter initialization.
Signed-off-by: Petri Savolainen
---
test/common_plat/validation/api/buffer/buffer.c | 113 +---
1 file changed, 63 insertions(+), 50 deletions(-)
diff --git a
Improve performance by changing the first parameter of
buffer_alloc_multi() to pool pointer (from handle), to avoid
double lookup of the pool pointer. Pointer is available for
packet alloc calls already.
Signed-off-by: Petri Savolainen
---
platform/linux-generic/include/odp_buffer_internal.h
Use multi enq and deq operations to optimize global pool
access performance. Temporary uint32_t arrays are needed
since handles are pointer size variables.
Signed-off-by: Petri Savolainen
---
platform/linux-generic/odp_pool.c | 32
1 file changed, 20 insertions
align macro
v1 reviews:
Reviewed-by: Brian Brooks
Petri Savolainen (19):
linux-gen: ipc: disable build of ipc pktio
linux-gen: pktio: do not free zero packets
linux-gen: ring: created common ring implementation
linux-gen: align: added round up power of two
linux-gen: pool
Use odp_pool_param_init() to initialize pool parameters. Also
pktio test must use capability to determine maximum packet
segment length.
Signed-off-by: Petri Savolainen
---
example/generator/odp_generator.c | 2 +-
test/common_plat/validation/api/crypto/crypto.c | 2 +-
test
Applications must use pool capabilibty to check maximum values
for parameters. Used maximum segment length since application
seems to support only single segment packets.
Signed-off-by: Petri Savolainen
---
test/common_plat/performance/odp_crypto.c | 47 +++
1 file
Remove support for zero length allocations which were never
required by the API specification or tested by the validation
suite.
Signed-off-by: Petri Savolainen
---
platform/linux-generic/odp_packet.c | 28
1 file changed, 28 deletions(-)
diff --git a/platform
y the maximum packet length
to be allocated from the pool. Implementations may use this
information to optimize e.g. memory usage, etc. Application must
not exceed the max_len parameter value on alloc calls. Pool
capabilities define already max_len.
Signed-off-by: Petri Savolainen
---
include/odp/api
Added test cases to allocate and free multiple multi-segment
packets.
Signed-off-by: Petri Savolainen
---
test/common_plat/validation/api/packet/packet.c | 73 +++--
1 file changed, 68 insertions(+), 5 deletions(-)
diff --git a/test/common_plat/validation/api/packet
test to concatenate two copies of the same
packet.
Signed-off-by: Petri Savolainen
---
test/common_plat/validation/api/packet/packet.c | 15 +++
1 file changed, 11 insertions(+), 4 deletions(-)
diff --git a/test/common_plat/validation/api/packet/packet.c
b/test/common_plat/valid
Added multi-data versions of ring enqueue and dequeue operations.
Signed-off-by: Petri Savolainen
---
platform/linux-generic/include/odp_ring_internal.h | 65 ++
1 file changed, 65 insertions(+)
diff --git a/platform/linux-generic/include/odp_ring_internal.h
b/platform
Added a macro to round up a value to the next power of two,
if it's not already a power of two. Also removed duplicated
code from the same file.
Signed-off-by: Petri Savolainen
---
.../linux-generic/include/odp_align_internal.h | 34 +-
1 file changed, 7 inser
In some error cases, netmap and dpdk pktios were calling
odp_packet_free_multi with zero packets. Moved existing error
check to avoid a free call with zero packets.
Signed-off-by: Petri Savolainen
---
platform/linux-generic/pktio/dpdk.c | 10 ++
platform/linux-generic/pktio/netmap.c
Enable segmentation support with CONFIG_PACKET_MAX_SEGS
configuration option.
Signed-off-by: Petri Savolainen
---
platform/linux-generic/include/odp_config_internal.h | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/platform/linux-generic/include/odp_config_internal.h
b
IPC pktio implementation depends heavily on pool internals. It's
build is disabled due to pool re-implementation. IPC should be
re-implemented with a cleaner internal interface towards pool and
shm.
Signed-off-by: Petri Savolainen
---
platform/linux-generic/pktio/ipc.c | 3 ++-
1 file ch
limit the number of modification in the commit.
Signed-off-by: Petri Savolainen
---
.../include/odp/api/plat/pool_types.h |6 -
.../linux-generic/include/odp_buffer_inlines.h | 160 +--
.../linux-generic/include/odp_buffer_internal.h| 104 +-
.../include
. Renamed odp_buffer_pool_headroom() and _tailroom() to
simply pool_headroom() and _tailroom(), since those are internal
functions (not API as previous names hint). Also moved those
into pool.c, since inlining is not needed for functions that are
called only in (netmap) init phase.
Signed-off-by: Petri
Moved scheduler ring code into a new header file, so that
it can be used also in other parts of the implementation.
Signed-off-by: Petri Savolainen
---
platform/linux-generic/Makefile.am | 1 +
platform/linux-generic/include/odp_ring_internal.h | 111
Improve performance by changing the first parameter of
buffer_alloc_multi() to pool pointer (from handle), to avoid
double lookup of the pool pointer. Pointer is available for
packet alloc calls already.
Signed-off-by: Petri Savolainen
---
platform/linux-generic/include/odp_buffer_internal.h
: Brian Brooks
Petri Savolainen (10):
linux-gen: ipc: disable build of ipc pktio
linux-gen: pktio: do not free zero packets
linux-gen: ring: created common ring implementation
linux-gen: align: added round up power of two
linux-gen: pool: reimplement pool with ring
linux-gen: ring
Added multi-data versions of ring enqueue and dequeue operations.
Signed-off-by: Petri Savolainen
---
platform/linux-generic/include/odp_ring_internal.h | 65 ++
1 file changed, 65 insertions(+)
diff --git a/platform/linux-generic/include/odp_ring_internal.h
b/platform
Round up global pool allocations to a burst size. Cache any
extra buffers for future use. Prefetch buffers header which
very newly allocated from global pool and will be returned to
the caller.
Signed-off-by: Petri Savolainen
---
.../linux-generic/include/odp_buffer_internal.h| 3
Use multi enq and deq operations to optimize global pool
access performance. Temporary uint32_t arrays are needed
since handles are pointer size variables.
Signed-off-by: Petri Savolainen
---
platform/linux-generic/odp_pool.c | 32
1 file changed, 20 insertions
Added a macro to round up a value to the next power of two,
if it's not already a power of two. Also removed duplicated
code from the same file.
Signed-off-by: Petri Savolainen
---
.../linux-generic/include/odp_align_internal.h | 34 +-
1 file changed, 7 inser
In some error cases, netmap and dpdk pktios were calling
odp_packet_free_multi with zero packets. Moved existing error
check to avoid a free call with zero packets.
Signed-off-by: Petri Savolainen
---
platform/linux-generic/pktio/dpdk.c | 10 ++
platform/linux-generic/pktio/netmap.c
IPC pktio implementation depends heavily on pool internals. It's
build is disabled due to pool re-implementation. IPC should be
re-implemented with a cleaner internal interface towards pool and
shm.
Signed-off-by: Petri Savolainen
---
platform/linux-generic/Makefile.am | 2 --
1 file chang
limit the number of modification in the commit.
Signed-off-by: Petri Savolainen
---
.../include/odp/api/plat/pool_types.h |6 -
.../linux-generic/include/odp_buffer_inlines.h | 160 +--
.../linux-generic/include/odp_buffer_internal.h| 104 +-
.../include
. Renamed odp_buffer_pool_headroom() and _tailroom() to
simply pool_headroom() and _tailroom(), since those are internal
functions (not API as previous names hint). Also moved those
into pool.c, since inlining is not needed for functions that are
called only in (netmap) init phase.
Signed-off-by: Petri
Moved scheduler ring code into a new header file, so that
it can be used also in other parts of the implementation.
Signed-off-by: Petri Savolainen
---
platform/linux-generic/Makefile.am | 1 +
platform/linux-generic/include/odp_ring_internal.h | 109
Round up global pool allocations to a burst size. Cache any
extra buffers for future use. Prefetch buffers header which
very newly allocated from global pool and will be returned to
the caller.
Signed-off-by: Petri Savolainen
---
.../linux-generic/include/odp_buffer_internal.h| 3
Improve performance by changing the first parameter of
buffer_alloc_multi() to pool pointer (from handle), to avoid
double lookup of the pool pointer. Pointer is available for
packet alloc calls already.
Signed-off-by: Petri Savolainen
---
platform/linux-generic/include/odp_buffer_internal.h
Added multi-data versions of ring enqueue and dequeue operations.
Signed-off-by: Petri Savolainen
---
platform/linux-generic/include/odp_ring_internal.h | 65 ++
1 file changed, 65 insertions(+)
diff --git a/platform/linux-generic/include/odp_ring_internal.h
b/platform
. Otherwise,
all cases were improved. Especially, scheduler driven cases suffered on bad
pool scalability.
Petri Savolainen (10):
linux-gen: ipc: disable build of ipc pktio
linux-gen: pktio: do not free zero packets
linux-gen: ring: created common ring implementation
linux-gen: align: added round
Added a macro to round up a value to the next power of two,
if it's not already a power of two. Also removed duplicated
code from the same file.
Signed-off-by: Petri Savolainen
---
.../linux-generic/include/odp_align_internal.h | 34 +-
1 file changed, 7 inser
Use multi enq and deq operations to optimize global pool
access performance. Temporary uint32_t arrays are needed
since handles are pointer size variables.
Signed-off-by: Petri Savolainen
---
platform/linux-generic/odp_pool.c | 32
1 file changed, 20 insertions
In some error cases, netmap and dpdk pktios were calling
odp_packet_free_multi with zero packets. Moved existing error
check to avoid a free call with zero packets.
Signed-off-by: Petri Savolainen
---
platform/linux-generic/pktio/dpdk.c | 10 ++
platform/linux-generic/pktio/netmap.c
IPC pktio implementation depends heavily on pool internals. It's
build is disabled due to pool re-implementation. IPC should be
re-implemented with a cleaner internal interface towards pool and
shm.
Signed-off-by: Petri Savolainen
---
platform/linux-generic/Makefile.am | 2 --
1 file chang
performance difference when e.g. odp_atomic_xxx calls
are not inlined.
Signed-off-by: Petri Savolainen
---
configure.ac | 26 -
platform/linux-generic/.gitignore | 2 +-
platform/linux-generic/Makefile.am | 2
Moved ticketlock implementation into ticketlock_inlines.h header
file, which enables inlined version to be used inside
implementation and through API.
Signed-off-by: Petri Savolainen
---
platform/linux-generic/Makefile.am | 1 +
.../include/odp/api/plat/ticketlock_inlines.h
Added support for a buffer header to carry a burst of buffer
pointers. The buffer itself is the last one a burst. Burst are
built with a enq_multi call, so single enq operations do not
benefit from it.
Signed-off-by: Petri Savolainen
---
.../linux-generic/include/odp_buffer_internal.h| 7
fixed to 1).
Signed-off-by: Petri Savolainen
---
platform/linux-generic/include/odp_schedule_if.h | 3 -
platform/linux-generic/odp_queue.c | 134 +++
platform/linux-generic/odp_schedule.c| 1 -
platform/linux-generic/odp_schedule_ordered.c
Use inlined ticketlock calls instead of API calls. Inlining
improves performance and makes it easier to profile functions
which use ticketlocks. Cycle consumption of caller functions
are more interesting than combined cycle consumption of all
ticketlocks.
Signed-off-by: Petri Savolainen
Added main burst size configuration option (CONFIG_BURST_SIZE),
which helps to keep various burst sizes in sync. Increased common
burst size from 8 to 16. This increases scheduled queue throughput
about 30-40%.
Signed-off-by: Petri Savolainen
---
platform/linux-generic/include
Use inlined ticketlock calls instead of API calls.
Signed-off-by: Petri Savolainen
---
platform/linux-generic/include/odp_pool_internal.h | 22 +++---
1 file changed, 3 insertions(+), 19 deletions(-)
diff --git a/platform/linux-generic/include/odp_pool_internal.h
b/platform
y to check which
queues workers are using (only tx in sched mode).
Signed-off-by: Petri Savolainen
---
test/common_plat/performance/odp_l2fwd.c | 221 ---
1 file changed, 112 insertions(+), 109 deletions(-)
diff --git a/test/common_plat/performance/odp_l2fwd
Replaced linear destination port search in scheduler mode
with a lookup table. Table index is API provided pktio_index
and data is application port index.
Signed-off-by: Petri Savolainen
---
test/common_plat/performance/odp_l2fwd.c | 68 +++-
1 file changed, 41
Non-sched modes were missing update of output event queue
handle in the case of multiple pktios per thread.
Signed-off-by: Petri Savolainen
---
test/common_plat/performance/odp_l2fwd.c | 6 ++
1 file changed, 6 insertions(+)
diff --git a/test/common_plat/performance/odp_l2fwd.c
b/test
performance difference when e.g. odp_atomic_xxx calls
are not inlined.
Signed-off-by: Petri Savolainen
---
v2:
* ABI compat enabled by default
* print static/shared/abi_compat selection in config results
* added missing header file include guards
configure.ac
performance difference when e.g. odp_atomic_xxx calls
are not inlined.
Signed-off-by: Petri Savolainen
---
configure.ac | 20 -
platform/linux-generic/.gitignore | 1 -
platform/linux-generic/include/odp/api/atomic.h| 2
Application requested 100ms timeout for no reason in the
scheduler mode. For example on odp-linux, performance is improved
about 10% when the timeout is removed (as time keeping creates
system calls).
Signed-off-by: Petri Savolainen
---
test/common_plat/performance/odp_l2fwd.c | 6 ++
1
.
Signed-off-by: Petri Savolainen
---
.../linux-generic/include/odp_schedule_internal.h | 3 +-
platform/linux-generic/odp_schedule.c | 259 +
2 files changed, 168 insertions(+), 94 deletions(-)
diff --git a/platform/linux-generic/include/odp_schedule_internal.h
Increased queue dequeue batch size to improve throughput. Low
priority queues have smaller batch size than high/default, so
that head of line blocking latency is limited.
Signed-off-by: Petri Savolainen
---
.../linux-generic/include/odp_schedule_internal.h | 2 +-
platform/linux-generic
Implement scheduler pktio poll command queues with a ring
based data structure instead of odp_queue_t queues.
Also scheduler initialization and termination is
simplified as there is no more dependency to pool, buffer
and queue APIs.
Signed-off-by: Petri Savolainen
---
platform/linux-generic
Optimized pktio poll loop if-branches with likely/unlikely hints.
Signed-off-by: Petri Savolainen
---
platform/linux-generic/odp_schedule.c | 34 +-
1 file changed, 21 insertions(+), 13 deletions(-)
diff --git a/platform/linux-generic/odp_schedule.c
b/platform
74s 310s
speed up1,181,331,472,85
Petri Savolainen (6):
linux-gen: sched: ring based priority queues
linux-gen: sched: ring based pktio command queues
linux-gen: sched: increase number of pktin
linux-gen: sched: pktio poll loop optimization
linux-gen: sched: increas
Use local schedule_release_atomic call instead of the API call.
Signed-off-by: Petri Savolainen
---
platform/linux-generic/odp_schedule.c | 23 +--
1 file changed, 13 insertions(+), 10 deletions(-)
diff --git a/platform/linux-generic/odp_schedule.c
b/platform/linux-generic
Increased maximum number of pktin queues supported by
the scheduler.
Signed-off-by: Petri Savolainen
---
platform/linux-generic/odp_schedule.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/platform/linux-generic/odp_schedule.c
b/platform/linux-generic/odp_schedule.c
index
Application requested 100ms timeout for no reason in the
scheduler mode. For example on odp-linux, performance is improved
about 10% when the timeout is removed (as time keeping creates
system calls).
Signed-off-by: Petri Savolainen
---
test/common_plat/performance/odp_l2fwd.c | 9 ++---
1
Implement scheduler pktio poll command queues with a ring
based data structure instead of odp_queue_t queues.
Also scheduler initialization and termination is
simplified as there is no more dependency to pool, buffer
and queue APIs.
Signed-off-by: Petri Savolainen
---
platform/linux-generic
.
Signed-off-by: Petri Savolainen
---
.../linux-generic/include/odp_schedule_internal.h | 3 +-
platform/linux-generic/odp_schedule.c | 259 +
2 files changed, 168 insertions(+), 94 deletions(-)
diff --git a/platform/linux-generic/include/odp_schedule_internal.h
Increased queue dequeue batch size to improve throughput. Low
priority queues have smaller batch size than high/default, so
that head of line blocking latency is limited.
Signed-off-by: Petri Savolainen
---
.../linux-generic/include/odp_schedule_internal.h | 2 +-
platform/linux-generic
Optimized pktio poll loop if-branches with likely/unlikely hints.
Signed-off-by: Petri Savolainen
---
platform/linux-generic/odp_schedule.c | 34 +-
1 file changed, 21 insertions(+), 13 deletions(-)
diff --git a/platform/linux-generic/odp_schedule.c
b/platform
Use local schedule_release_atomic call instead of the API call.
Signed-off-by: Petri Savolainen
---
platform/linux-generic/odp_schedule.c | 23 +--
1 file changed, 13 insertions(+), 10 deletions(-)
diff --git a/platform/linux-generic/odp_schedule.c
b/platform/linux-generic
Increased maximum number of pktin queues supported by
the scheduler.
Signed-off-by: Petri Savolainen
---
platform/linux-generic/odp_schedule.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/platform/linux-generic/odp_schedule.c
b/platform/linux-generic/odp_schedule.c
index
me of odp_scheduling:
-
cores
4 8 10 20
master 15,3s 62,5s 109s884,9s
patch 13s 47s 74s 310s
speed up1,181,331,472,85
Petri Savolainen (6):
scheduler scheduling a priority queue until an
event is found or the queue is empty (over empty or destroyed
queues).
This fixes bug https://bugs.linaro.org/show_bug.cgi?id=2457
Signed-off-by: Petri Savolainen
---
platform/linux-generic/odp_schedule.c | 24 +++-
1 file changed
pool functions (get_buf(), ret_buf(), etc) were moved
from pool header to c source file, since those were actual local
to the c source file. Also some unused pool variables are removed
also.
Signed-off-by: Petri Savolainen
---
.../linux-generic/include/odp_buffer_inlines.h | 26 +-
.../linux
Optimize local cache implementation.
Signed-off-by: Petri Savolainen
---
.../linux-generic/include/odp_buffer_inlines.h | 26 +-
.../linux-generic/include/odp_buffer_internal.h| 5 +-
platform/linux-generic/include/odp_internal.h | 2 -
.../linux-generic/include
301 - 400 of 1113 matches
Mail list logo