linux-mm.kvack.org archive mirror
 help / color / mirror / Atom feed
From: Andrea Arcangeli <andrea@suse.de>
To: Andrew Morton <akpm@osdl.org>
Cc: pbadari@us.ibm.com, ak@suse.de, hugh@veritas.com,
	jdike@addtoit.com, dvhltc@us.ibm.com, linux-mm@kvack.org
Subject: Re: [RFC] madvise(MADV_TRUNCATE)
Date: Thu, 27 Oct 2005 23:37:21 +0200	[thread overview]
Message-ID: <20051027213721.GX5091@opteron.random> (raw)
In-Reply-To: <20051027135058.2f72e706.akpm@osdl.org>

On Thu, Oct 27, 2005 at 01:50:58PM -0700, Andrew Morton wrote:
> This is what I'm asking about.  What's the requirement?  What's the
> application?  What's the workload?  What's the testcase?  All that old
> stuff.  This should have been the very, very first thing which Badari
> presented to us.

I mentioned the reason we need that feature at the end of the last email.

> If we do it this way then we should do it for other filesystems.  And then

Why do you think so? Even O_DIRECT and the acl were not supported by all
the fs immediately, what's wrong with that? This is normal procedure as
far as I can tell. If -ENOSYS is returned, it means the app should
fallback to some other way to do the truncate by hand (depending on the
app, bzero could work or some other app can be ok with doing nothing at
all if -ENOSYS is returned).

> we should do it for files which _aren't_ mmapped.  And then we should do it
> on a finer-than-PAGE_SIZE granularity.

I agree with this. I also suggested doing all of it, not just the mmap
interface. However the only thing they care about is the mmap interface,
and this is why this is coming first. Also note, my MADV_TRUNCATE is by
coincidence needed by IBM too, the testcase I was trying to improve was
not an IBM workload, I learnt about the IBM effort only a few days ago.
But others happen to need it for the very same reason (no, not Oracle,
but Oracle would benefit from it too of course).

> IOW: we're unlikely to implement MADV_TRUNCATE for anything other than
> tmpfs, in which case MADV_TRUNCATE will remain a tmpfs specific hack, no?

In 2.6 yes. But in the future it's an API we can extend to work on more
fs with well defined semantics.

What's the benefit in having MADV_DISCARD that works on tmpfs, and then
some day in the future to add a MADV_TRUNCATE that works on other fs too?

The retval of MADV_TRUNCATE will still be an error in both cases for
older kernels. So we may go for the more generic API in the first place
IMHO.

The less MADV_MESS there is the better and the more explicit the name is
the better too.

> Or to swap it out.

Ok, the whole point is to release the swap. This stuff is already in
completely swap for ages, nobody touched it for ages, but it's bad for
performance and for swap fragmentation if after a peak of load 16G
remains always in swap when infact the app could release all the
swap after the load went down (if only it could use MADV_TRUNCATE).
 
At some point during the lifetime of the appliaction thousand of clients
connects, each one allocats from tmpfs, then when the load goes down we
want to free the swap that contains no useful info anymore. Perhaps such
a peak load will never happen again in the lifetime of the application,
and we want to have swap available for other usages. munmap isn't
enough, that's tmpfs backed storage, only truncate can release the swap.

> I think we need to restart this discussion.  Can we please have a

Sure no problem.

> *detailed* description of the problem?

Hope the above clarifies some more bits.

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

  reply	other threads:[~2005-10-27 21:37 UTC|newest]

Thread overview: 86+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2005-10-26 22:49 Badari Pulavarty
2005-10-27  8:38 ` Andi Kleen
2005-10-27 13:17   ` Andrea Arcangeli
2005-10-27 15:00     ` Badari Pulavarty
2005-10-27 15:11       ` Andrea Arcangeli
2005-10-27 18:20         ` Andrew Morton
2005-10-27 18:35           ` Badari Pulavarty
2005-10-27 18:50             ` Andrew Morton
2005-10-27 19:40               ` Gerrit Huizenga
2005-10-27 19:56                 ` Andi Kleen
2005-10-27 23:21                   ` Darren Hart
2005-10-27 20:05               ` Theodore Ts'o
2005-10-27 20:16                 ` Andrea Arcangeli
2005-10-28  1:42                 ` Badari Pulavarty
2005-10-28 16:33                   ` Theodore Ts'o
2005-10-27 20:22               ` Jeff Dike
2005-10-27 20:04           ` Andrea Arcangeli
2005-10-27 20:50             ` Andrew Morton
2005-10-27 21:37               ` Andrea Arcangeli [this message]
2005-10-27 22:23                 ` Andrew Morton
2005-10-27 23:05                   ` Badari Pulavarty
2005-10-27 23:16                     ` Andrew Morton
2005-10-27 23:33                       ` Peter Chubb
2005-10-28  0:22                   ` Andrea Arcangeli
2005-10-28  0:32                     ` Andrew Morton
2005-10-28  1:10                       ` Andrea Arcangeli
2005-10-28  1:27                       ` Badari Pulavarty
2005-10-28  2:00                         ` Andrew Morton
2005-10-27 22:32               ` Badari Pulavarty
2005-10-27 23:28             ` Peter Chubb
2005-10-27 23:49               ` Andrew Morton
2005-10-27 23:56                 ` Nathan Scott
2005-10-28  0:15                   ` Andrea Arcangeli
2005-10-27 23:59                 ` Peter Chubb
2005-10-28  3:46 ` Jeff Dike
2005-10-28 11:03   ` Blaisorblade
2005-10-28 13:29     ` Andrea Arcangeli
2005-10-28 16:56       ` Blaisorblade
2005-10-28 16:16     ` Badari Pulavarty
2005-10-28 18:40       ` Blaisorblade
2005-10-28 18:56         ` Badari Pulavarty
2005-10-29  0:35         ` Badari Pulavarty
2005-10-28 16:19   ` Badari Pulavarty
2005-10-28 17:10     ` Blaisorblade
2005-10-28 18:28       ` Jeff Dike
2005-10-28 18:44         ` Blaisorblade
2005-10-28 18:42     ` Jeff Dike
2005-10-28 18:54       ` Badari Pulavarty
2005-10-29  0:03       ` Badari Pulavarty
2005-10-29  2:51         ` Jeff Dike
2005-10-31 16:34           ` Badari Pulavarty
2005-10-31 19:15           ` Badari Pulavarty
2005-10-31 19:49           ` [RFC][PATCH] madvise(MADV_TRUNCATE) Badari Pulavarty
2005-11-01  0:05             ` Jeff Dike
2005-11-02  1:15               ` [PATCH] 2.6.14 patch for supporting madvise(MADV_FREE) Badari Pulavarty
2005-11-02  1:43                 ` Andrea Arcangeli
2005-11-02 15:49                   ` Badari Pulavarty
2005-11-02 16:12                   ` [PATCH] 2.6.14 patch for supporting madvise(MADV_REMOVE) Badari Pulavarty
2005-11-02 19:54                     ` New bug in patch and existing Linux code - race with install_page() (was: Re: [PATCH] 2.6.14 patch for supporting madvise(MADV_REMOVE)) Blaisorblade
2005-11-02 20:12                       ` Hugh Dickins
2005-11-02 20:45                         ` Hugh Dickins
2005-11-02 21:36                       ` Badari Pulavarty
2005-11-02 21:55                         ` Hugh Dickins
2005-11-02 22:02                           ` Badari Pulavarty
2005-11-12  0:25                     ` [PATCH] 2.6.14 patch for supporting madvise(MADV_REMOVE) Andrew Morton
2005-11-12  0:34                       ` Badari Pulavarty
2005-11-12  1:43                         ` Andrew Morton
2005-11-12  4:41                           ` Badari Pulavarty
2006-01-16 13:06                             ` differences between MADV_FREE and MADV_DONTNEED Andrea Arcangeli
2006-01-16 16:02                               ` Suleiman Souhlal
2006-01-16 16:28                                 ` Andrea Arcangeli
2006-01-16 17:03                                   ` Suleiman Souhlal
2006-01-16 17:24                                     ` Andrea Arcangeli
2006-01-16 21:43                                       ` Eric W. Biederman
2006-01-17  0:24                                         ` Suleiman Souhlal
2006-01-17  1:04                                           ` Nicholas Miell
2006-01-17 12:43                                             ` Christoph Hellwig
2006-01-17 18:23                                               ` Eric W. Biederman
2006-01-17 22:55                                                 ` Nicholas Miell
2007-03-01 18:11                                                 ` Samuel Thibault
2006-01-17 19:06                                               ` Badari Pulavarty
2006-01-17  1:06                               ` Blaisorblade
2006-01-17  1:33                                 ` Andrea Arcangeli
2005-11-12  0:34                     ` [PATCH] 2.6.14 patch for supporting madvise(MADV_REMOVE) Andrew Morton
2005-10-28 17:55   ` [RFC] madvise(MADV_TRUNCATE) Blaisorblade
2005-10-28 21:23     ` Theodore Ts'o

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20051027213721.GX5091@opteron.random \
    --to=andrea@suse.de \
    --cc=ak@suse.de \
    --cc=akpm@osdl.org \
    --cc=dvhltc@us.ibm.com \
    --cc=hugh@veritas.com \
    --cc=jdike@addtoit.com \
    --cc=linux-mm@kvack.org \
    --cc=pbadari@us.ibm.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox