On 01.05.2012 12:29, Vladimir 'φ-coder/phcoder' Serbinenko wrote: > On 30.04.2012 19:24, Vladimir 'φ-coder/phcoder' Serbinenko wrote: >> On 30.04.2012 17:26, Bean wrote: >>> Hi, >>> >>> 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 >>> problem. >>> >>> 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. >> This is pretty easy to do leveraging some of the code I did for POSIX >> support. But: >> - Due to additional time and space required it should be done only when >> mm-debug is enabled. >> - The additional data has to be stored before rather than after the >> range since we store all the info before. >> - Integrating with automated tests isn't that easy since some memory is >> intentionally never freed i.a. disk cache or otherwise in use (i.a. >> terminal). We need exceptions for those. >> I have half-working patch, just needs few fixes. >> >> > Patch attached. It still has a bug since printing the report to terminal > may change allocations and so iterator may become invalid. That's > another reason why terminal should be excluded altogether from memory > tracking. > > -- Regards Vladimir 'φ-coder/phcoder' Serbinenko