Skip to content

Asm versions of netstack memcpy() and lwip_standard_chksum() #51

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

Merged
merged 1 commit into from
Sep 2, 2013
Merged

Asm versions of netstack memcpy() and lwip_standard_chksum() #51

merged 1 commit into from
Sep 2, 2013

Conversation

adamgreen
Copy link
Contributor

I just targeted the GCC_ARM toolchain with these changes to minimize
risk. For the same reason, I only targeted this memcpy() to be used by
the network stack.

For tests such as TCPEchoServer
(http://mbed.org/users/emilmont/notebook/networking-libraries-benchmark/)
this change showed a 28% improvement (14Mbps to 18Mbps) when the echo
test was modified to instead use 1K data buffers.

I targetted these two functions based on manual profiling samples which
showed that a great deal of time was being spent in these two functions
when the network stack was being slammed with UDP packets.

For tests such as TCPEchoServer
(http://mbed.org/users/emilmont/notebook/networking-libraries-benchmark/)
this change showed a 28% improvement (14Mbps to 18Mbps) when the echo
test was modified to instead use 1K data buffers.

I targetted these two functions based on manual profiling samples which
showed that a great deal of time was being spent in these two functions
when the network stack was being slammed with UDP packets.
bogdanm added a commit that referenced this pull request Sep 2, 2013
Asm versions of netstack memcpy() and lwip_standard_chksum()

[Note] I'm generally a bit reluctant when including optimizations like this (from an architectural standpoint), because they tend to be a bit too specific (for example, this one works only with lwIP+GCC+Cortex-M3 or M4), but for now it looks as this is the right place for them, although the optimized memcpy should ideally be in libc (or even better replaced with a DMA transfer in this particular case). But this will be both a nice optimization and a reminder of what we need to implement/change in the future.
@bogdanm bogdanm merged commit 42e27e7 into ARMmbed:master Sep 2, 2013
@adamgreen
Copy link
Contributor Author

Thanks.

@adamgreen adamgreen deleted the netMorePerformanceWork branch September 2, 2013 15:48
bridadan pushed a commit that referenced this pull request Jun 21, 2016
Exporters - virtual dirs support for progen exporters
cmonr pushed a commit that referenced this pull request May 24, 2018
BLE: Fix wrong macro name for IAR
linlingao added a commit to linlingao/mbed-os that referenced this pull request Jul 12, 2019
Add rtc_api.c. RTC is not added to targets.json because the RTC can n…
Jookia pushed a commit to Jookia/mbed-os that referenced this pull request Mar 11, 2023
…un not being on PATH causing all tests to pass! (ARMmbed#51)

* Print the command when a greentea test is being run.  Also fix mbedhtrun not being on PATH causing all tests to pass!

* Also remove useless -f argument to mbedhtrun (not used with --skip-flashing)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants