-
Notifications
You must be signed in to change notification settings - Fork 13.3k
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
Move continuation stack from .bss onto sys stack #4622
Conversation
Since the amount of available stack space on the system stack is reduced, it would be great if some heavy users of @me-no-dev's *Async libraries could test this. |
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.
4k that's incredible! happily working for me
Thanks @igrr @earlephilhower @Adam5Wu
c980a6e
to
2d5f12b
Compare
@igrr I don't know if I qualify as a "heavy user" of the Async libs, but I do use AsyncUDP, AsyncTCP, the AsyncWebserver, and an AsyncDNSServer that I wrote myself based on AsyncUDP. My app has been working fine with this for several days. |
I think I may have found a negative impact: Took me 5 hours and 2 hotspots, before I realized this commit might be related. It kind of make sense, according to the log, some pubkey crypto is involved during WPS, and it probably needed some big chunk of sys stack, which this commit took away... Although I haven't tested, but it is possible other SDK functions are also broken by this commit, if they need heavy crypto: airkiss? smartconfig? mesh? |
See #4553.
Allocate continuation stack on the system stack. This is done by overriding the application entry point. Also includes some cleanup in core_esp8266_main.cpp: group extern declarations and global/static variables, move
atexit
into libc_replacements.c.Saves 4k in .bss at the expense of extra 4k system stack usage.