When run the Zperf UDP throughput with '-a' (Asynchronous call),
zperf_work_q thread will generate and send the packets to tx_q thread.
When zperf_work_q and tx_q threads have same priority, if zperf_work_q
fails to take the semaphore of fifo_slot, it will not wait and directly
drop the net_pkt. Then it will allocate new net_pkt, repeat, and always
occupy the CPU, which leads to extreme low throughput.
For TX, when take the semaphore of fifo_slot, setting a wait time of
K_FOREVER to let other thread to process and free these packets.
For RX, when failed to take the semaphore of fifo_slot, yield the CPU
to let the thread of data path with same priority to run to reduce
dropping packets.
Signed-off-by: Maochen Wang <maochen.wang@nxp.com>
In rare occasions when sending DAD NS packet fails, we should still
setup the DAD timer, unless we implement some kind of more advanced
retry mechanism. If we don't do that, the IPv6 address added to the
interface will never be usable in such cases.
Signed-off-by: Robert Lubos <robert.lubos@nordicsemi.no>
DAD creates an entry in the neighbor cache for the queried (own)
address. In case the address is removed from the interface while DAD is
still incomplete, we need to remove the corresponding cache entry (just
like in case of DAD timeout) to avoid stale entries in the cache.
Signed-off-by: Robert Lubos <robert.lubos@nordicsemi.no>
Using L2 address of length 1 (invalid/unsupported one) confused IPv6
layer during LL address generation - since that length was not a valid
one, the address was not initialized properly and a part of it was set
semi-random. This could result for example in filling out the neighbor
tables.
Signed-off-by: Robert Lubos <robert.lubos@nordicsemi.no>
Don't try to dereference line_names if the index is beyond
line_names_len, this can happen if there's less line names than the
total amount of supported gpios specified.
Signed-off-by: Fabio Baltieri <fabiobaltieri@google.com>
Move SHELL_DYNAMIC_CMD_CREATE after the function, then the forward
declaration is unnecessary.
Signed-off-by: Fabio Baltieri <fabiobaltieri@google.com>
As part of cleaning up usage of non-inclusive language in-tree,
I spotted an obsolete mention to a udev rule that ModemManager doesn't
use anymore. Drop it.
See commit 9639e52726854782508e35a75c6abf874bd9e608 in ModemManager
repo.
Signed-off-by: Benjamin Cabé <benjamin@zephyrproject.org>
Add workaround to HFCLK start and stop in nrf54l. In future workaround
will be in nrfx driver.
Signed-off-by: Krzysztof Chruściński <krzysztof.chruscinski@nordicsemi.no>
During the transition to STM32_CLOCK macro (in 57723cf), the `clocks`
property of peripherals requiring more than one bit to be set were
mistakenly modified. Commit 2c3294b079
partially fixed these errors, but some nodes for the U5 series are still
wrong.
Restore `clocks` on affected devices in corresponding STM32U5 DTSI.
Fixes: 57723cf405
Signed-off-by: Mathieu Choplain <mathieu.choplain@st.com>
Sphinx documents should not appear in multiple toctrees.
Consolidate SMP Groups under SMP Protocol Specification.
Signed-off-by: Benjamin Cabé <benjamin@zephyrproject.org>
Add the -imacros property for assembler language to compensate
for changes introduced in PR #84800.
Signed-off-by: Björn Bergman <bjorn.bergman@iar.com>
Errors were logged for some cases in zephyr_img_mgmt.c, but not all.
This commit adds error logs for all error cases.
Signed-off-by: Nick Brook <nrbrook@gmail.com>
This revert the idea of 3fa7d78 from #78845.
The 3rd level IRQ APIs won't compile when
CONFIG_3RD_LEVEL_INTERRUPT_BITS=0.
Updated testcases accordingly.
Signed-off-by: Yong Cong Sin <ycsin@meta.com>
Signed-off-by: Yong Cong Sin <yongcong.sin@gmail.com>
Calculate the EBO properly, so the total frame written to TX FIFO
does not exceed maximum Ethernet frame length.
Makes the TCP stack to work properly, otherwise packets > 1472 are dopped,
as they would be padded by 64 more bytes
and hence exceed maximum Ethernet frame size.
Signed-off-by: Maciej Panek <panekmaciej@outlook.com>
Refactors the code in adin2111_offload_thread
to improve its readability. Adds code to read RX FIFO
in OA mode until it is empty.
Signed-off-by: Maciej Panek <panekmaciej@outlook.com>
Since the callback can be executed from either software or a hardware
interrupt, it's possible for multiple instances of the callback function
to run concurrently. That should not happen and can be particularly
problematic on SMP systems. This commit adds a spinlock to prevent
concurrent execution.
This addresses a Twister CI failure discovered in #85539.
Signed-off-by: Xudong Zheng <7pkvm5aw@slicealias.com>
Previously, intel_ish platforms would fail to link due to
missing `arch_mem_map()` and `arch_mem_unmap()` symbols due
to nuances in the x86 architecture on those platforms.
A separate commit has made MMU a non-user-configurable option,
which removes the ambiguity in POSIX.
Signed-off-by: Chris Friedt <cfriedt@tenstorrent.com>
With MMU being converted to a non-user-configurable option, we can
rely on that exclusively to know whether arch_mem_map() and
arch_mem_unmap() are available and we can remove the workarounds
in POSIX at the Kconfig level.
Signed-off-by: Chris Friedt <cfriedt@tenstorrent.com>
MMU is enabled via the arch specific MMU option and by the platform.
i.e. X86_MMU or ARM_MMU selects MMU.
Signed-off-by: Anas Nashif <anas.nashif@intel.com>