Age | Commit message (Collapse) | Author |
|
Add configure option 'timer.inline_poll_interval' for adjusting inline
timer polling frequency.
Signed-off-by: Matias Elo <matias.elo@nokia.com>
Reviewed-by: Bill Fischofer <bill.fischofer@linaro.org>
Signed-off-by: Maxim Uvarov <maxim.uvarov@linaro.org>
|
|
Signed-off-by: Matias Elo <matias.elo@nokia.com>
Reviewed-by: Bill Fischofer <bill.fischofer@linaro.org>
Signed-off-by: Maxim Uvarov <maxim.uvarov@linaro.org>
|
|
Add configure option 'timer.inline' for enabling inline timer
implementation.
Signed-off-by: Matias Elo <matias.elo@nokia.com>
Reviewed-by: Bill Fischofer <bill.fischofer@linaro.org>
Signed-off-by: Maxim Uvarov <maxim.uvarov@linaro.org>
|
|
Fixes timer thread failing due to uninitialized variables.
Signed-off-by: Matias Elo <matias.elo@nokia.com>
Reviewed-by: Bill Fischofer <bill.fischofer@linaro.org>
Signed-off-by: Maxim Uvarov <maxim.uvarov@linaro.org>
|
|
Signed-off-by: Matias Elo <matias.elo@nokia.com>
Reviewed-by: Bill Fischofer <bill.fischofer@linaro.org>
Signed-off-by: Maxim Uvarov <maxim.uvarov@linaro.org>
|
|
ARMv8.1 specific casp() function failed to build due to
register numbering issues. CASP instructions require that the
first register of a pair is even. Force register numbering
to start from even numbers (x0 and x2).
Signed-off-by: Petri Savolainen <petri.savolainen@linaro.org>
Reviewed-by: Dmitry Eremin-Solenikov <dmitry.ereminsolenikov@linaro.org>
Reviewed-by: Bill Fischofer <bill.fischofer@linaro.org>
Signed-off-by: Maxim Uvarov <maxim.uvarov@linaro.org>
|
|
Print out feature flags that were used in build time. The
output may be used to check e.g. if binary was built with
ARMv8.0 or >= ARMv8.1 instructions.
Signed-off-by: Petri Savolainen <petri.savolainen@linaro.org>
Reviewed-by: Dmitry Eremin-Solenikov <dmitry.ereminsolenikov@linaro.org>
Reviewed-by: Bill Fischofer <bill.fischofer@linaro.org>
Signed-off-by: Maxim Uvarov <maxim.uvarov@linaro.org>
|
|
Some systems may have /proc interface not mounted, let
odp linux generic run there with dummy values.
https://bugs.linaro.org/show_bug.cgi?id=3989
Signed-off-by: Maxim Uvarov <maxim.uvarov@linaro.org>
Dmitry Eremin-Solenikov <dmitry.ereminsolenikov@linaro.org>
|
|
Reserve single VA memory in global init instead of only allocating the
address space. Allocating only the address space doesn't work if shm blocks
are reserved after ODP process has been forked.
Signed-off-by: Matias Elo <matias.elo@nokia.com>
Reviewed-by: Bill Fischofer <bill.fischofer@linaro.org>
Signed-off-by: Maxim Uvarov <maxim.uvarov@linaro.org>
|
|
Simplify adjusting single VA memory size by moving the value to ODP config
(shm.single_va_size). The default size is dropped to 128MB to save memory.
Signed-off-by: Matias Elo <matias.elo@nokia.com>
Reviewed-by: Bill Fischofer <bill.fischofer@linaro.org>
Signed-off-by: Maxim Uvarov <maxim.uvarov@linaro.org>
|
|
Move internal block memory mapping from odp_shm_lookup() to odp_shm_addr().
Calling odp_shm_addr() is mandatory when sharing shm blocks
(not ODP_SHM_SINGLE_VA) between ODP processes. Calling odp_shm_lookup() is
optional.
Signed-off-by: Matias Elo <matias.elo@nokia.com>
Reviewed-by: Bill Fischofer <bill.fischofer@linaro.org>
Signed-off-by: Maxim Uvarov <maxim.uvarov@linaro.org>
|
|
ishm pool create is done during global init so no need to use
_ODP_ISHM_SINGLE_VA flag.
Signed-off-by: Matias Elo <matias.elo@nokia.com>
Reviewed-by: Bill Fischofer <bill.fischofer@linaro.org>
Signed-off-by: Maxim Uvarov <maxim.uvarov@linaro.org>
|
|
Ease code maintenance by removing the following unused functions:
find_block_by_address(void *addr)
_odp_ishm_free_by_name(const char *name)
_odp_ishm_free_by_address(void *addr)
_odp_ishm_lookup_by_index(int block_index)
_odp_ishm_lookup_by_address(void *addr)
Signed-off-by: Matias Elo <matias.elo@nokia.com>
Reviewed-by: Bill Fischofer <bill.fischofer@linaro.org>
Signed-off-by: Maxim Uvarov <maxim.uvarov@linaro.org>
|
|
Ease code maintenance by removing unnecessary code.
Signed-off-by: Matias Elo <matias.elo@nokia.com>
Reviewed-by: Bill Fischofer <bill.fischofer@linaro.org>
Signed-off-by: Maxim Uvarov <maxim.uvarov@linaro.org>
|
|
Combine three shm reservations into one reservation. This
simplifies shm usage and results less ODP internally
allocated SHM blocks. Also one combined block is more memory
efficient than multiple (saves memory and page mappings).
Signed-off-by: Petri Savolainen <petri.savolainen@linaro.org>
Reviewed-by: Bill Fischofer <bill.fischofer@linaro.org>
Signed-off-by: Maxim Uvarov <maxim.uvarov@linaro.org>
|
|
Highlight that printed values are from ODP SHM only, i.e. it's
not generic memory allocation status of the entire system.
Signed-off-by: Petri Savolainen <petri.savolainen@linaro.org>
Reviewed-by: Bill Fischofer <bill.fischofer@linaro.org>
Signed-off-by: Maxim Uvarov <maxim.uvarov@linaro.org>
|
|
Only memory reservations larger than ISHM_HUGE_PAGE_LIMIT (64kB) are
allocated using huge pages (if available). Smaller reservations are done
using normal pages to conserve memory.
Signed-off-by: Matias Elo <matias.elo@nokia.com>
Reviewed-by: Bill Fischofer <bill.fischofer@linaro.org>
Signed-off-by: Maxim Uvarov <maxim.uvarov@linaro.org>
|
|
Add internal shm flag for allocating shm memory always from huge pages.
This is required by zero-copy dpdk packet pool. Internal _odp_shm_reserve()
function is added for passing extra shm flags.
Signed-off-by: Matias Elo <matias.elo@nokia.com>
Reviewed-by: Bill Fischofer <bill.fischofer@linaro.org>
Signed-off-by: Maxim Uvarov <maxim.uvarov@linaro.org>
|
|
odp_shm_internal.h contents were not used so delete the file and rename
odp_ishm_internal.h to odp_shm_internal.h.
Signed-off-by: Matias Elo <matias.elo@nokia.com>
Reviewed-by: Bill Fischofer <bill.fischofer@linaro.org>
Signed-off-by: Maxim Uvarov <maxim.uvarov@linaro.org>
|
|
Reserving large shm blocks without huge pages increases page misses.
Signed-off-by: Matias Elo <matias.elo@nokia.com>
Reviewed-by: Bill Fischofer <bill.fischofer@linaro.org>
Signed-off-by: Maxim Uvarov <maxim.uvarov@linaro.org>
|
|
it might be useful to package small binary which prints
platform default builtin config file.
Signed-off-by: Maxim Uvarov <maxim.uvarov@linaro.org>
Reviewed-by: Bill Fischofer <bill.fischofer@linaro.org>
|
|
Add salt/nonce length checks. Add missing nonce into an IPSEC
performance test case.
Signed-off-by: Petri Savolainen <petri.savolainen@linaro.org>
Reviewed-by: Bill Fischofer <bill.fischofer@linaro.org>
Dmitry Eremin-Solenikov <dmitry.ereminsolenikov@linaro.org>
Signed-off-by: Maxim Uvarov <maxim.uvarov@linaro.org>
|
|
The function is not used anymore.
Signed-off-by: Petri Savolainen <petri.savolainen@linaro.org>
Reviewed-by: Bill Fischofer <bill.fischofer@linaro.org>
Signed-off-by: Maxim Uvarov <maxim.uvarov@linaro.org>
|
|
Use sched_cb_pktin_poll instead of sched_cb_pktin_poll_old, so
that the old pktin poll function can be removed.
Signed-off-by: Petri Savolainen <petri.savolainen@linaro.org>
Reviewed-by: Bill Fischofer <bill.fischofer@linaro.org>
Signed-off-by: Maxim Uvarov <maxim.uvarov@linaro.org>
|
|
Read from scheduler configuration if an automatic schedule
group is enabled or disabled.
Signed-off-by: Petri Savolainen <petri.savolainen@linaro.org>
Reviewed-by: Bill Fischofer <bill.fischofer@linaro.org>
Signed-off-by: Maxim Uvarov <maxim.uvarov@linaro.org>
|
|
Added config request function to scheduler internal interface.
Other modules may use this to examine scheduler configuration.
Signed-off-by: Petri Savolainen <petri.savolainen@linaro.org>
Reviewed-by: Bill Fischofer <bill.fischofer@linaro.org>
Signed-off-by: Maxim Uvarov <maxim.uvarov@linaro.org>
|
|
Added options to disable unused automatic schedule groups.
Signed-off-by: Petri Savolainen <petri.savolainen@linaro.org>
Reviewed-by: Bill Fischofer <bill.fischofer@linaro.org>
Signed-off-by: Maxim Uvarov <maxim.uvarov@linaro.org>
|
|
Enforcing the packet and byte based SA life times is currently slow if
the same SA is being handled by multiple threads since the threads
keep checking and updating the same shared byte and packet counters.
Make the implementation more scalable by having a thread-local quota
of packets and bytes for each SA and by updating the shared byte
and packet counters less frequently (i.e. when the quota runs out).
This introduces some inexactness to life time warnings and errors.
The warnings and errors about soft and hard limits being reached
may come a bit earlier than expected based on the packets sent to
the wire.
Signed-off-by: Janne Peltonen <janne.peltonen@nokia.com>
Reviewed-by: Bill Fischofer <bill.fischofer@linaro.org>
Signed-off-by: Maxim Uvarov <maxim.uvarov@linaro.org>
|
|
Increase max spread weight. The default value is kept the same.
Signed-off-by: Petri Savolainen <petri.savolainen@linaro.org>
Reviewed-by: Bill Fischofer <bill.fischofer@linaro.org>
Signed-off-by: Maxim Uvarov <maxim.uvarov@linaro.org>
|
|
Use the new config file option instead of fixed prefer ratio.
Signed-off-by: Petri Savolainen <petri.savolainen@linaro.org>
Reviewed-by: Bill Fischofer <bill.fischofer@linaro.org>
Signed-off-by: Maxim Uvarov <maxim.uvarov@linaro.org>
|
|
Add new config file option to control scheduler internal queue
preference ratio.
Signed-off-by: Petri Savolainen <petri.savolainen@linaro.org>
Reviewed-by: Bill Fischofer <bill.fischofer@linaro.org>
Signed-off-by: Maxim Uvarov <maxim.uvarov@linaro.org>
|
|
Process inline timers (if enabled) during odp_queue_deq() and
odp_queue_deq_multi() calls. This fixes inline timers not working if
odp_schedule() or odp_schedule_multi() was never called.
Signed-off-by: Matias Elo <matias.elo@nokia.com>
Reviewed-by: Bill Fischofer <bill.fischofer@linaro.org>
Signed-off-by: Maxim Uvarov <maxim.uvarov@linaro.org>
|
|
Reduce inline timer overhead by not polling timers until at least one
timer pool has been created.
Signed-off-by: Matias Elo <matias.elo@nokia.com>
Reviewed-by: Bill Fischofer <bill.fischofer@linaro.org>
Signed-off-by: Maxim Uvarov <maxim.uvarov@linaro.org>
|
|
Add internal queue interface functions queue_timer_add_fn_t and
queue_timer_rem_fn_t for adding/removing inline timers.
Signed-off-by: Matias Elo <matias.elo@nokia.com>
Reviewed-by: Bill Fischofer <bill.fischofer@linaro.org>
Signed-off-by: Maxim Uvarov <maxim.uvarov@linaro.org>
|
|
Change maximum pool size back to 1M. Maximum packet pool
capability is defined in the config file. This is the upper
limit for that config. Also this is max capability of buffer
and tmo pools.
Signed-off-by: Petri Savolainen <petri.savolainen@linaro.org>
Signed-off-by: Maxim Uvarov <maxim.uvarov@linaro.org>
|
|
This config is used to for maximum capability. The default
capability needs to be modest so that system memory limit is
not exceeded. User may increase maximum number of packets when
system memory size allows (and SHM single VA is not used).
Signed-off-by: Petri Savolainen <petri.savolainen@linaro.org>
Signed-off-by: Maxim Uvarov <maxim.uvarov@linaro.org>
|
|
Do also checks against maximum number of packets and
max packet headroom size.
Signed-off-by: Petri Savolainen <petri.savolainen@linaro.org>
Signed-off-by: Maxim Uvarov <maxim.uvarov@linaro.org>
|
|
Change from debug to error message on pool create checks.
These are slow path errors and it's helpful to see those
also when not debugging.
Signed-off-by: Petri Savolainen <petri.savolainen@linaro.org>
Signed-off-by: Maxim Uvarov <maxim.uvarov@linaro.org>
|
|
Only scalable queues use build time the queue size config.
Move it to scalable config file.
Signed-off-by: Petri Savolainen <petri.savolainen@linaro.org>
Signed-off-by: Maxim Uvarov <maxim.uvarov@linaro.org>
|
|
It was hard to notice from log that config file version has
a mismatch. This is a common error when config file version
has updated, but a user has not updated his own config file.
Improve error check output, so that failure reason is better
highlighted.
Signed-off-by: Petri Savolainen <petri.savolainen@linaro.org>
Signed-off-by: Maxim Uvarov <maxim.uvarov@linaro.org>
|
|
Some DPDK NICs need at least 2176 byte buffers (2048B + headroom) to not
segment standard ethernet frames. Increase minimum segment length to avoid
this and add matching check to zero-copy dpdk pktio pool create.
Reported-by: P. Gyanesh Kumar Patra <pgyanesh.patra@gmail.com>
Signed-off-by: Matias Elo <matias.elo@nokia.com>
Tested-by: P. Gyanesh Kumar Patra <pgyanesh.patra@gmail.com>
Signed-off-by: Maxim Uvarov <maxim.uvarov@linaro.org>
|
|
Stop and close used pktio devices on exit to free used resources.
Signed-off-by: Matias Elo <matias.elo@nokia.com>
Reviewed-by: Dmitry Eremin-Solenikov <dmitry.ereminsolenikov@linaro.org>
Signed-off-by: Maxim Uvarov <maxim.uvarov@linaro.org>
|
|
Enables using ipc in process mode.
Signed-off-by: Matias Elo <matias.elo@nokia.com>
Reviewed-by: Bill Fischofer <bill.fischofer@linaro.org>
Signed-off-by: Maxim Uvarov <maxim.uvarov@linaro.org>
|
|
Enables using scalable scheduler in process mode.
Signed-off-by: Matias Elo <matias.elo@nokia.com>
Reviewed-by: Bill Fischofer <bill.fischofer@linaro.org>
Signed-off-by: Maxim Uvarov <maxim.uvarov@linaro.org>
|
|
These functions are not needed after iquery scheduler was
removed.
Signed-off-by: Petri Savolainen <petri.savolainen@linaro.org>
Signed-off-by: Maxim Uvarov <maxim.uvarov@linaro.org>
|
|
Iquery scheduler has no advantage compared to basic and scalable
scheduler. It has not been developed for a long time. Remove it
to reduce maintenance overhead.
Signed-off-by: Petri Savolainen <petri.savolainen@linaro.org>
Signed-off-by: Maxim Uvarov <maxim.uvarov@linaro.org>
|
|
Remove iquery from scheduler and queue interface.
Signed-off-by: Petri Savolainen <petri.savolainen@linaro.org>
Signed-off-by: Maxim Uvarov <maxim.uvarov@linaro.org>
|
|
Packets to different destination queues interleaved resulted
bad indexes when pktin_recv_buf() was recording which packets
belong to the same dest_queue.
Signed-off-by: Petri Savolainen <petri.savolainen@linaro.org>
Reviewed-by: Bill Fischofer <bill.fischofer@linaro.org>
Signed-off-by: Maxim Uvarov <maxim.uvarov@linaro.org>
|
|
Reduce maximum pool size, so that maximum size (packet) pool
requires less than 1GB of SHM memory. The limit of 1GB (for
default configuration) comes from maximum SHM reserve size
in process mode (single VA) and limited memory size CI virtual
machines.
This define can be increased when pool size options are added
into the configuration file.
Signed-off-by: Petri Savolainen <petri.savolainen@linaro.org>
Reviewed-by: Bill Fischofer <bill.fischofer@linaro.org>
Signed-off-by: Maxim Uvarov <maxim.uvarov@linaro.org>
|
|
Reader tail index is needed to detect if a reader is so much
behind that a writer is going to overwrite the data it is
reading.
Signed-off-by: Petri Savolainen <petri.savolainen@linaro.org>
Reviewed-by: Bill Fischofer <bill.fischofer@linaro.org>
Signed-off-by: Maxim Uvarov <maxim.uvarov@linaro.org>
|