Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 7 Jan 2010 00:17:36 +0100
From:      Pieter de Goeje <pieter@degoeje.nl>
To:        freebsd-hackers@freebsd.org
Cc:        shrivatsan <shrivatsan@gmail.com>
Subject:   Re: Question regarding memory disks
Message-ID:  <201001070017.36855.pieter@degoeje.nl>
In-Reply-To: <5a13b8941001061349m701d17fbl489ec8cf883e8c3c@mail.gmail.com>
References:  <5a13b8941001061349m701d17fbl489ec8cf883e8c3c@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On Wednesday 06 January 2010 22:49:44 shrivatsan wrote:
> Hi,
>
> I have configured a malloc-backed memory disk, and I mount the device on to
> the file system. I write some data onto the file system. I see that the
> free memory indicated by kmem_map_free goes down, and this is proportional
> to the size of the data written. However, even after removing all the
> data, kmem_map_free doesn't seem to go up. Its only after detaching the
> memory disk does the free memory go up. May I know the reason for this
> behavior?
>
>
> Thanks,
> -shrivatsan

Because when you "erase" something, all it does is unlink (delete the 
reference to) the data. So there is currently no way the memory disk can free 
the memory associated with the data. That is also why you should normally use 
swap backed memory disks instead, or use tmpfs. These can return memory to 
the system.

The ability of the filesystem to mark certain blocks as "erased" is important 
not only for memory disks but also for solid state drives. It is a feature 
UFS2 is currently lacking unfortunately.

- Pieter



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201001070017.36855.pieter>