-
Notifications
You must be signed in to change notification settings - Fork 8.2k
samples: net: zperf: allow networking code to be relocated to RAM #60273
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
samples: net: zperf: allow networking code to be relocated to RAM #60273
Conversation
|
The following west manifest projects have been modified in this Pull Request:
Note: This message is automatically posted and updated by the Manifest GitHub Action. |
|
The other alternative to this I have considered is something similar to #50792, where the network relocation options are integrated into the subsystem. My reasoning for keeping the relocation directives within the zperf sample is that a user tuning their application for performance will likely want to relocate a specific subset of the networking stack, and I feel that the decision of which portions to relocate is generally an application one. One unfortunate side effect of this is that the NXP HAL now uses an application specific Kconfig to determine if the MCUX Ethernet driver should be relocated to RAM, which is required in order to realize the performance numbers within this PR. |
rlubos
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm not an expert on code relocation, but changes in the sample look ok.
|
This pull request has been marked as stale because it has been open (more than) 60 days with no activity. Remove the stale label or add a comment saying that you would like to have the label removed otherwise this pull request will automatically be closed in 14 days. Note, that you can always re-open a closed pull request at any time. |
ssharks
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I have never worked with code relocation, but it looks like a valuable addition. It would be a said if it would be lost.
Could you look at the reference to the NXP hal, after a rebase we should be good to proceed.
west.yml
Outdated
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This does not look like an upstreamable change, could you use a hash here?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It is not upstreamable- the relevant PR needs to be merged first
The reason this change is currently stalled is that we need to relocate the NXP HAL driver to RAM as well as the in tree ethernet driver code, and we do not want to make the relocation directive in the HAL dependent on this application defined KConfig.
|
@danieldegrasse if you'd like this into 3.5 then please let me know on Discord so we can merge the HAL PR |
|
This pull request has been marked as stale because it has been open (more than) 60 days with no activity. Remove the stale label or add a comment saying that you would like to have the label removed otherwise this pull request will automatically be closed in 14 days. Note, that you can always re-open a closed pull request at any time. |
|
Updated this PR onto latest main, and removed the HAL changes. The HAL change does enable the Ethernet driver code to be relocated to ITCM, which improves performance further, so here are new performance numbers without this change:
|
Enable relocation of key networking stack functions to RAM when running the zperf example. This will enable better performance on platforms with fast code RAM. Signed-off-by: Daniel DeGrasse <[email protected]>
Relocate network stack to RAM for iMX RT boards when running the zperf sample. Relocating the network stack to ITCM greatly improves performance on these platforms. Also, remove overlays for the RT1050 and RT1060 setting the system timer to systick. This is no longer required as this is the default timer for these boards. Signed-off-by: Daniel DeGrasse <[email protected]>
Enable relocation of key networking stack functions to RAM when running
the zperf example. This will enable better performance on platforms with
fast code RAM.
Some performance numbers using this PR:
Signed-off-by: Daniel DeGrasse [email protected]