Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Tracing shows k_busy_wait() being executed very often on nRF platforms #35046

Closed
carlescufi opened this issue May 10, 2021 · 1 comment
Closed
Assignees
Labels
area: Kernel area: Timer Timer bug The issue is a bug, or the PR is fixing a bug platform: nRF Nordic nRFx priority: high High impact/importance bug

Comments

@carlescufi
Copy link
Member

carlescufi commented May 10, 2021

As per the screenshots below, provided by @nashif, k_busy_wait() is executing repeatedly on traces obtained on a Nordic board.

This can be reproduced by building samples/synchronization with tracing enabled.

nRF Platform:
Screenshot 2021-05-08 at 08 30 36

k64f Platform:
Screenshot 2021-05-08 at 08 29 32

@carlescufi carlescufi added bug The issue is a bug, or the PR is fixing a bug priority: high High impact/importance bug area: Kernel area: Timer Timer platform: nRF Nordic nRFx labels May 10, 2021
@nordic-krch
Copy link
Contributor

It is expected. k_busy_wait(1) is used inside uart_poll_out when driver is pending for driver readiness to send next byte. Safe loop is used there which is using k_busy_wait to track timeout.

NRFX_WAIT_FOR(is_tx_ready(dev), 100, 1, res);

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area: Kernel area: Timer Timer bug The issue is a bug, or the PR is fixing a bug platform: nRF Nordic nRFx priority: high High impact/importance bug
Projects
None yet
Development

No branches or pull requests

2 participants