List:General Discussion« Previous MessageNext Message »
From:Joerg Bruehe Date:July 29 2005 6:22pm
Subject:Re: malloc troubles on 64-bit machine
View as plain text  
Matthijs,


thank you for your detailed description:

Matthijs van der Klip wrote:
> [[...]]
> 
> I'd like to start with the following:
> 
> http://lists.debian.org/debian-kernel/2004/12/msg00410.html
> 
> This implies I'm not the only one strugling with 'Active' memory on a 2.6 
> kernel. Interesting detail: the problem report is issued by a MySQL 
> developer named Ingo Strüwing, maybe you know him? Either way, I already 
> contacted him to share my experiences.

I know him very well :-)
If Ingo does not have an answer, I will probably have none either.

> 
> Furthermore I have started a thread on the Fedora mailing list about this, 
> as it seems to be related to somewhat whacky memory management.
> 
> Now back to the problem, what I've found out is basically the following:
> 
> - When doing a malloc call it appears the requested amount of memory is 
>   tested against the total amount of memory minus the amount of 'Active' 
>   (according to /proc/meminfo) memory. [[...]]
> 
> - Interestingly enough it is perfectly possible to allocate multiple 2GB 
>   blocks in above situation. This can be done almost without limit, [[...]]
> 
> - Even more interesting is the fact that 'fillmem' is in fact able to 
>   reclaim the Active memory. [[...]]

This is quite a detailed description, IMHO.

> 
> Now the only question that remains is why the Active memory goes close to 
> zero when exiting fillmem and is not when ending a compile run. I asked 

Again IMHO, it shows an error in memory management.

> this question on the Fedora list to find out if this is a normal situation 
> or if there could be a memory leak somewhere in the compiler, linker etc 

"Memory leak" typically means that a process acquired additional memory, 
does not use it any longer but also does not return it for future 
allocations. So the process' memory consumption would grow, but at its 
exit the system would make all that memory available again.
AIUI, what you describe is that it does _not_ become available after 
process exit, but this is a system issue and not internal to the 
application process / program.

> chain. In the meanwhile I can use the mentioned workaround, but it's still 
> a bit weird situation.

I agree.

> 
>>Have you ever tried to wait a bit after a failing restart and then
>>attempt it again, rather than rebooting?
> 
> 
> We have waited up to 48 hours, but alas the Active memory never 
> returned...

So my assumption of delayed releasing was wrong. Sorry I cannot help.


Regards,
Jörg

-- 
Joerg Bruehe, Senior Production Engineer
MySQL AB, www.mysql.com
Thread
malloc troubles on 64-bit machineJigal van Hemert26 Jul
  • Re: malloc troubles on 64-bit machineJoerg Bruehe26 Jul
  • Re: malloc troubles on 64-bit machineJigal van Hemert26 Jul
    • Re: malloc troubles on 64-bit machineJoerg Bruehe27 Jul
Re: malloc troubles on 64-bit machineMatthijs van der Klip29 Jul
  • Re: malloc troubles on 64-bit machineJoerg Bruehe29 Jul
    • Re: malloc troubles on 64-bit machineMatthijs van der Klip1 Aug
      • Re: malloc troubles on 64-bit machineJoerg Bruehe1 Aug
        • Re: malloc troubles on 64-bit machineMatthijs van der Klip8 Aug
          • Re: malloc troubles on 64-bit machineIngo Strüwing9 Aug