All of lore.kernel.org
 help / color / mirror / Atom feed
* Reclaim space from unused ramdisk?
@ 2005-07-26 22:16 Mike Mohr
  2005-07-26 23:21 ` Marc Ballarin
  2005-07-27  6:25 ` Jan Engelhardt
  0 siblings, 2 replies; 8+ messages in thread
From: Mike Mohr @ 2005-07-26 22:16 UTC (permalink / raw)
  To: linux-kernel

I wonder if it would be possible to somehow reclaim space that has
been previously reserved for a ramdisk without rebooting.  I read the
ramdisk docs in the latest kernel source and it seems that it is not
currently possible.  However, the kernel keeps track of the memory
allocated for said ramdisks; would it not be possible with root (or
even kernel) permissions to remove the flag that prevents the VM
subsystem from reclaiming that space?  I realize that rot permissions
may not be high enough.  In that case, could a module be written that
takes a device name as a parameter then uses it to look up the
reserved memory that device uses, then resets the necessary flag and
finally unloads itself?  It would have to check that the filesystem
was unmounted, of course.

How difficult would this be to write?

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: Reclaim space from unused ramdisk?
  2005-07-26 22:16 Reclaim space from unused ramdisk? Mike Mohr
@ 2005-07-26 23:21 ` Marc Ballarin
  2005-07-27  6:25 ` Jan Engelhardt
  1 sibling, 0 replies; 8+ messages in thread
From: Marc Ballarin @ 2005-07-26 23:21 UTC (permalink / raw)
  To: Mike Mohr; +Cc: linux-kernel

On Tue, 26 Jul 2005 15:16:58 -0700
Mike Mohr <akihana@gmail.com> wrote:

> I wonder if it would be possible to somehow reclaim space that has
> been previously reserved for a ramdisk without rebooting.  I read the
> ramdisk docs in the latest kernel source and it seems that it is not
> currently possible.  However, the kernel keeps track of the memory
> allocated for said ramdisks; would it not be possible with root (or
> even kernel) permissions to remove the flag that prevents the VM
> subsystem from reclaiming that space?  I realize that rot permissions
> may not be high enough.  In that case, could a module be written that
> takes a device name as a parameter then uses it to look up the
> reserved memory that device uses, then resets the necessary flag and
> finally unloads itself?  It would have to check that the filesystem
> was unmounted, of course.
> 
> How difficult would this be to write?

Hi,

ramfs (always there) and tmpfs (optional) already do this.
tmpfs can be swapped out, ramfs always uses physical memory.

mount -t ramfs none /mnt/blah
mount -t tmpfs none /mnt/blah

Regards

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: Reclaim space from unused ramdisk?
  2005-07-26 22:16 Reclaim space from unused ramdisk? Mike Mohr
  2005-07-26 23:21 ` Marc Ballarin
@ 2005-07-27  6:25 ` Jan Engelhardt
  2005-07-27  6:56   ` Andrew Morton
  1 sibling, 1 reply; 8+ messages in thread
From: Jan Engelhardt @ 2005-07-27  6:25 UTC (permalink / raw)
  To: Mike Mohr; +Cc: linux-kernel

>I wonder if it would be possible to somehow reclaim space that has
>been previously reserved for a ramdisk without rebooting.

free_ramdisk.c:

#include <sys/ioctl.h>
#include <sys/mount.h>
#include <sys/stat.h>
#include <sys/types.h>
#include <errno.h>
#include <fcntl.h>
#include <stdio.h>
#include <string.h>
#include <unistd.h>

int main(int argc, const char **argv) {
    int eax = 0;
    while(*argv != NULL) {
        int fd = open(*argv, O_RDWR);
        if(fd < 0) {
            fprintf(stderr, "Warning: Cannot open %s: %s\n",
             *argv, strerror(errno));
            if(eax == 0) { eax = errno; }
            continue;
        }
        ioctl(fd, BLKFLSBUF, 0);
        close(fd);
        ++argv;
    }
    return eax == 0;
}

//eof


>How difficult would this be to write?


Jan Engelhardt
-- 
| Alphagate Systems, http://alphagate.hopto.org/

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: Reclaim space from unused ramdisk?
  2005-07-27  6:25 ` Jan Engelhardt
@ 2005-07-27  6:56   ` Andrew Morton
  2005-07-27  7:52     ` Jan Engelhardt
  0 siblings, 1 reply; 8+ messages in thread
From: Andrew Morton @ 2005-07-27  6:56 UTC (permalink / raw)
  To: Jan Engelhardt; +Cc: akihana, linux-kernel

Jan Engelhardt <jengelh@linux01.gwdg.de> wrote:
>
> >I wonder if it would be possible to somehow reclaim space that has
> >been previously reserved for a ramdisk without rebooting.
> 
> free_ramdisk.c:
> 
> #include <sys/ioctl.h>
> #include <sys/mount.h>
> #include <sys/stat.h>
> #include <sys/types.h>
> #include <errno.h>
> #include <fcntl.h>
> #include <stdio.h>
> #include <string.h>
> #include <unistd.h>
> 
> int main(int argc, const char **argv) {
>     int eax = 0;
>     while(*argv != NULL) {
>         int fd = open(*argv, O_RDWR);
>         if(fd < 0) {
>             fprintf(stderr, "Warning: Cannot open %s: %s\n",
>              *argv, strerror(errno));
>             if(eax == 0) { eax = errno; }
>             continue;
>         }
>         ioctl(fd, BLKFLSBUF, 0);
>         close(fd);
>         ++argv;
>     }
>     return eax == 0;
> }
> 

hmm, yes.  That's a special-case in the ramdisk driver.

The command `blockdev --flushbufs /dev/ram0' should have the same effect.

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: Reclaim space from unused ramdisk?
  2005-07-27  6:56   ` Andrew Morton
@ 2005-07-27  7:52     ` Jan Engelhardt
  2005-07-27  7:55       ` Andrew Morton
  0 siblings, 1 reply; 8+ messages in thread
From: Jan Engelhardt @ 2005-07-27  7:52 UTC (permalink / raw)
  To: Andrew Morton; +Cc: akihana, linux-kernel

>> }
>> 
>
>hmm, yes.  That's a special-case in the ramdisk driver.
>
>The command `blockdev --flushbufs /dev/ram0' should have the same effect.

Interesting. Command not found, here. URL?



Jan Engelhardt
-- 

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: Reclaim space from unused ramdisk?
  2005-07-27  7:52     ` Jan Engelhardt
@ 2005-07-27  7:55       ` Andrew Morton
  2005-07-27  8:28         ` Jan Engelhardt
  0 siblings, 1 reply; 8+ messages in thread
From: Andrew Morton @ 2005-07-27  7:55 UTC (permalink / raw)
  To: Jan Engelhardt; +Cc: akihana, linux-kernel

Jan Engelhardt <jengelh@linux01.gwdg.de> wrote:
>
> >> }
> >> 
> >
> >hmm, yes.  That's a special-case in the ramdisk driver.
> >
> >The command `blockdev --flushbufs /dev/ram0' should have the same effect.
> 
> Interesting. Command not found, here. URL?
> 

It ships with util-linux.  Weird that a distro would omit it.

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: Reclaim space from unused ramdisk?
  2005-07-27  7:55       ` Andrew Morton
@ 2005-07-27  8:28         ` Jan Engelhardt
  2005-07-27  9:04           ` Jan Engelhardt
  0 siblings, 1 reply; 8+ messages in thread
From: Jan Engelhardt @ 2005-07-27  8:28 UTC (permalink / raw)
  To: Andrew Morton; +Cc: akihana, linux-kernel

>> >> }
>> >
>> >hmm, yes.  That's a special-case in the ramdisk driver.
>> >The command `blockdev --flushbufs /dev/ram0' should have the same effect.
>> 
>> Interesting. Command not found, here. URL?
>
>It ships with util-linux.  Weird that a distro would omit it.

Don't look at me, look at SUSE.

Euh, is it already included in util-linux-2.12q?


Jan Engelhardt
-- 

^ permalink raw reply	[flat|nested] 8+ messages in thread

* Re: Reclaim space from unused ramdisk?
  2005-07-27  8:28         ` Jan Engelhardt
@ 2005-07-27  9:04           ` Jan Engelhardt
  0 siblings, 0 replies; 8+ messages in thread
From: Jan Engelhardt @ 2005-07-27  9:04 UTC (permalink / raw)
  To: Andrew Morton; +Cc: akihana, linux-kernel

>>It ships with util-linux.  Weird that a distro would omit it.
>
>Euh, is it already included in util-linux-2.12q?

I hate me. It was not in $PATH (/sbin).




^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2005-07-27  9:04 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2005-07-26 22:16 Reclaim space from unused ramdisk? Mike Mohr
2005-07-26 23:21 ` Marc Ballarin
2005-07-27  6:25 ` Jan Engelhardt
2005-07-27  6:56   ` Andrew Morton
2005-07-27  7:52     ` Jan Engelhardt
2005-07-27  7:55       ` Andrew Morton
2005-07-27  8:28         ` Jan Engelhardt
2005-07-27  9:04           ` Jan Engelhardt

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.