Re: Page tables apparently don't get completely freed on 64-bit Fiasco.OC

Adam Lackorzynski <[email protected]>
Newsgroups gmane.comp.micro-kernel.l4.devel
Message-ID <[email protected]>
On Tue Dec 11, 2012 at 21:04:14 +0100, Christian Prochaska wrote:
> When running the test case from
> https://github.com/genodelabs/genode/issues/559 on 64-bit Fiasco.OC, the
> kernel runs out of memory after the sequential construction and
> destruction of tasks. I've added some debug output to the kernel which
> tracks the kernel memory allocations and deallocations. The attached log
> files cover the creation and destruction of one task on 64-bit and
> 32-bit Fiasco.OC.
> 
> In the 64-bit case the allocations reported in lines (05/06), (07/08),
> (12/13), (14/15), (20/21) and (24/25) don't have matching calls of
> 'free()'. These allocations belong to the 'Ptab::Walk::sync()' and
> 'Ptab::Walk::walk()' functions. It looks like only a part of the page
> table gets destroyed during 'Mem_space::dir_shutdown()'.
> 
> In the 32-bit case the amout of memory available after the destruction
> of the task is the same as before the construction, but what I found odd
> about the log output is that the allocations reported in lines (10/11)
> and (14/15) don't have matching calls of 'free()', whereas the
> allocations reported in lines (09) and (12/13) each have two calls of
> 'free()' (in lines (22/25) and (28/32)), which makes the amount of
> memory available balanced again.

Thanks for the report. Interestingly we have found the same (or at least
very similar issue) just a few days ago. We'll look into this.


Adam
-- 
Adam                 [email protected]
  Lackorzynski         http://os.inf.tu-dresden.de/~adam/
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.