While testing network function in efi mode, I've found several memory
leak related to fragmentation, but there is still some memory problem
that's very tricky to locate. For example, you can run testspeed on a
large file several times in a row and it could show the memory error.
Since network condition are very difficult to reproduce, I have to
look at the source of this issue, memory allocation. Currently it has
mm_debug option that could print out file and line number of each
memory call, but it's quite useless since we can't find the relevant
informaton with full screen of prints.
Here are some of my ideas for enhanced memory protection support:
1, when we allocate memory, we append some information at the end of
the buffer, which include filename, lineno of caller, and tag to
indicate what is used for and some padding to detect memory overwrite
2. add a command to print the current memory list with extended
information, this can be used to find memory leaks.
3. it's also a good idea to run the memory check in automated test to
locate potential issue.