Linux 4.6 Release – Main Changes, ARM and MIPS Architectures

Linus Torvalds released Linux Kernel 4.6 earlier today: It’s just as well I didn’t cut the rc cycle short, since the last week ended up getting a few more fixes than expected, but nothing in there feels all that odd or out of line. So 4.6 is out there at the normal schedule, and that obviously also means that I’ll start doing merge window pull requests for 4.7 starting tomorrow. Since rc7, there’s been small noise all over, with driver fixes being the bulk of it, but there is minor noise all over (perf tooling, networking, filesystems,  documentation, some small arch fixes..) The appended shortlog will give you a feel for what’s been going on during the last week. The 4.6 kernel on the whole was a fairly big release – more commits than we’ve had in a while. But it all felt fairly calm despite that. Linux 4.5 added […]

uClinux kernel panic: Stack overflow

If you’re using ucLinux, you may get kernel panic errors coming out of nowhere. There may be several reasons (buffer overflow, out of memory..), but the most common is stack overflow for the process or one of the threads. To increase the stack size of a flat binary you’ll need to adjust the LDFLAGS as follows:

This will set the stack size to 64KB. To change the stack size of a thread (e.g. 32KB below), you’ll need to set the stack size attribute:

How to detect which thread suffers from stack overflow? First, you can check your code for recursive function calls and local variables (especially arrays) both of which will be added at runtime to the stack to estimate what should be the stack size. So if you have large arrays you may use a pointer + a call to malloc instead. If this can not fix […]

Memfault IoT and embedded debugging platform