Re: [RFC] sys_punchhole()

From: Rob Landley
Date: Mon Nov 21 2005 - 03:31:39 EST

On Wednesday 16 November 2005 16:01, Badari Pulavarty wrote:
> Hmm. Someone other than me asking for it ?
> I did the madvise() hack and asking to see if any one really needs
> sys_punchole().

I run into a potential use case for every once in a while. For example, there
was recent discussion on the User Mode Linux list about this, since the
"physical memory" that uses is an mmaped file so the logical way to give
unused memory back to the host OS (initially via a hotplug memory interface
driven by some kind of daemon, since the pagecache expands to fill all
available space even when the data is also redundantly cached by the host OS)
would by via sys_punchole().

Of course UML's physmem file is normally on a tmpfs() mount, where
madvise(DONTNEED) has special behavior to work like punch anyway. So it
looks like special cases to work around this lack can be added ad infinitum
so there's never any immediate need for the actual generic functionality.

On the other hand, if you're going to support holes at all, having to recreate
the file to get your hole back is kind of silly. I personally think the
ability to create holes in a new file but not create holes in an existing
file is every bit as strange as being able to extend a file but not truncate
it. (See the java 1.1 api for an example of _that_ particular thinko...)

To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at
Please read the FAQ at