From: Rob Landley <rob@landley.net>
To: Nick Piggin <nickpiggin@yahoo.com.au>
Cc: Gerrit Huizenga <gh@us.ibm.com>, Ingo Molnar <mingo@elte.hu>,
Kamezawa Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>,
Dave Hansen <haveblue@us.ibm.com>, Mel Gorman <mel@csn.ul.ie>,
"Martin J. Bligh" <mbligh@mbligh.org>,
Andrew Morton <akpm@osdl.org>,
kravetz@us.ibm.com, linux-mm <linux-mm@kvack.org>,
Linux Kernel Mailing List <linux-kernel@vger.kernel.org>,
lhms <lhms-devel@lists.sourceforge.net>
Subject: Re: [Lhms-devel] [PATCH 0/7] Fragmentation Avoidance V19
Date: Thu, 3 Nov 2005 00:07:33 -0600 [thread overview]
Message-ID: <200511030007.34285.rob@landley.net> (raw)
In-Reply-To: <43699573.4070301@yahoo.com.au>
On Wednesday 02 November 2005 22:43, Nick Piggin wrote:
> Rob Landley wrote:
> > In the UML case, I want the system to automatically be able to hand back
> > any sufficiently large chunks of memory it currently isn't using.
>
> I'd just be happy with UML handing back page sized chunks of memory that
> it isn't currently using. How does contiguous memory (in either the host
> or the guest) help this?
Smaller chunks of memory are likely to be reclaimed really soon, and adding in
the syscall overhead working with individual pages of memory is almost
guaranteed to slow us down. Plus with punch, we'd be fragmenting the heck
out of the underlying file.
> > What does this have to do with specifying hard limits of anything?
> > What's to specify? Workloads vary. Deal with it.
>
> Umm, if you hadn't bothered to read the thread then I won't go through
> it all again. The short of it is that if you want guaranteed unfragmented
> memory you have to specify a limit.
I read it. It just didn't contain an answer the the question. I want UML to
be able to hand back however much memory it's not using, but handing back
individual pages as we free them and inserting a syscall overhead for every
page freed and allocated is just nuts. (Plus, at page size, the OS isn't
likely to zero them much faster than we can ourselves even without the
syscall overhead.) Defragmentation means we can batch this into a
granularity that makes it worth it.
This has nothing to do with hard limits on anything.
> Have you looked at the frag patches?
I've read Mel's various descriptions, and tried to stay more or less up to
date ever since LWN brought it to my attention. But I can't say I'm a linux
VM system expert. (The last time I felt I had a really firm grasp on it was
before Andrea and Rik started arguing circa 2.4 and Andrea spent six months
just assuming everybody already knew what a classzone was. I've had other
things to do since then...)
> Do you realise that they have to
> balance between the different types of memory blocks?
I realise they merge them back together into larger chunks as they free up
space, and split larger chunks when they haven't got a smaller one.
> Duplicating the
> same or similar infrastructure (in this case, a memory zoning facility)
> is a bad thing in general.
Even when they keep track of very different things? The memory zoning thing
is about where stuff is in physical memory, and it exists because various
hardware that wants to access memory (24 bit DMA, 32 bit DMA, and PAE) is
evil and crippled and we have to humor it by not asking it to do stuff it
can't.
The fragmentation stuff is about what long contiguous runs of free memory we
can arrange, and it's also nice to be able to categorize them as "zeroed" or
"not zeroed" to make new allocations faster. Where they actually are in
memory is not at issue here.
You can have prezeroed memory in 32 bit DMA space, and prezeroed memory in
highmem, but there's memory in both that isn't prezeroed. I thought there
was a hierarchy of zones. You want overlapping, interlaced, randomly laid
out zones.
> >>[*] and there are, sadly enough - see the recent patches I posted to
> >> lkml for example.
> >
> > I was under the impression that zone balancing is, conceptually speaking,
> > a difficult problem.
>
> I am under the impression that you think proper fragmentation avoidance
> is easier.
I was under the impression it was orthogonal to figuring out whether or not a
given bank of physical memory is accessable to your sound blaster without an
IOMMU.
> >> But I'm fairly confident that once the particularly
> >> silly ones have been fixed,
> >
> > Great, you're advocating migrating the fragmentation patches to an area
> > of code that has known problems you yourself describe as "particularly
> > silly". A ringing endorsement, that.
>
> Err, the point is so we don't now have 2 layers doing very similar things,
> at least one of which has "particularly silly" bugs in it.
Similar is not identical. You seem to be implying that the IO elevator and
the network stack queueing should be merged because they do similar things.
> > The fact that the migrated version wouldn't even address fragmentation
> > avoidance at all (the topic of this thread!) is apparently a side issue.
>
> Zones can be used to guaranteee physically contiguous regions with exactly
> the same effectiveness as the frag patches.
If you'd like to write a counter-patch to Mel's to prove it...
> >> zone balancing will no longer be a
> >> derogatory term as has been thrown around (maybe rightly) in this
> >> thread!
> >
> > If I'm not mistaken, you introduced zones into this thread, you are the
> > primary (possibly only) proponent of them.
>
> So you didn't look at Yasunori Goto's patch from last year that implements
> exactly what I described, then?
I saw the patch he just posted, if that's what you mean. By his own
admission, it doesn't address fragmentation at all.
> > Yes, zones are a way of categorizing memory.
>
> Yes, have you read Mel's patches? Guess what they do?
The swap file is a way of storing data on disk. So is ext3. Obviously, one
is a trivial extension of the other and there's no reason to have both.
> > They're not a way of defragmenting it.
>
> Guess what they don't?
I have no idea what you intended to mean by that. Mel posted a set of patches
in a thread titled "fragmentation avoidance", and you've been arguing about
hotplug, and pointing to a set of patches from Goto that do not address
fragmentation at all. This confuses me.
Rob
--
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>
next prev parent reply other threads:[~2005-11-03 6:07 UTC|newest]
Thread overview: 253+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-10-30 18:33 Mel Gorman
2005-10-30 18:34 ` [PATCH 1/7] Fragmentation Avoidance V19: 001_antidefrag_flags Mel Gorman
2005-10-30 18:34 ` [PATCH 2/7] Fragmentation Avoidance V19: 002_usemap Mel Gorman
2005-10-30 18:34 ` [PATCH 3/7] Fragmentation Avoidance V19: 003_fragcore Mel Gorman
2005-10-30 18:34 ` [PATCH 4/7] Fragmentation Avoidance V19: 004_fallback Mel Gorman
2005-10-30 18:34 ` [PATCH 5/7] Fragmentation Avoidance V19: 005_largealloc_tryharder Mel Gorman
2005-10-30 18:34 ` [PATCH 6/7] Fragmentation Avoidance V19: 006_percpu Mel Gorman
2005-10-30 18:34 ` [PATCH 7/7] Fragmentation Avoidance V19: 007_stats Mel Gorman
2005-10-31 5:57 ` [Lhms-devel] [PATCH 0/7] Fragmentation Avoidance V19 Mike Kravetz
2005-10-31 6:37 ` Nick Piggin
2005-10-31 7:54 ` Andrew Morton
2005-10-31 7:11 ` Nick Piggin
2005-10-31 16:19 ` Mel Gorman
2005-10-31 23:54 ` Nick Piggin
2005-11-01 1:28 ` Mel Gorman
2005-11-01 1:42 ` Nick Piggin
2005-10-31 14:34 ` Martin J. Bligh
2005-10-31 19:24 ` Andrew Morton
2005-10-31 19:40 ` Martin J. Bligh
2005-10-31 23:59 ` Nick Piggin
2005-11-01 1:36 ` Mel Gorman
2005-10-31 23:29 ` Nick Piggin
2005-11-01 0:59 ` Mel Gorman
2005-11-01 1:31 ` Nick Piggin
2005-11-01 2:07 ` Mel Gorman
2005-11-01 2:35 ` Nick Piggin
2005-11-01 11:57 ` Mel Gorman
2005-11-01 13:56 ` Ingo Molnar
2005-11-01 14:10 ` Dave Hansen
2005-11-01 14:29 ` Ingo Molnar
2005-11-01 14:49 ` Dave Hansen
2005-11-01 15:01 ` Ingo Molnar
2005-11-01 15:22 ` Dave Hansen
2005-11-02 8:49 ` Ingo Molnar
2005-11-02 9:02 ` Nick Piggin
2005-11-02 9:17 ` Ingo Molnar
2005-11-02 9:32 ` Dave Hansen
2005-11-02 9:48 ` Nick Piggin
2005-11-02 10:54 ` Dave Hansen
2005-11-02 15:02 ` Martin J. Bligh
2005-11-03 3:21 ` Nick Piggin
2005-11-03 15:36 ` Martin J. Bligh
2005-11-03 15:40 ` Arjan van de Ven
2005-11-03 15:51 ` Linus Torvalds
2005-11-03 15:57 ` Martin J. Bligh
2005-11-03 16:20 ` Arjan van de Ven
2005-11-03 16:27 ` Mel Gorman
2005-11-03 16:46 ` Linus Torvalds
2005-11-03 16:52 ` Martin J. Bligh
2005-11-03 17:19 ` Linus Torvalds
2005-11-03 17:48 ` Dave Hansen
2005-11-03 17:51 ` Martin J. Bligh
2005-11-03 17:59 ` Arjan van de Ven
2005-11-03 18:08 ` Linus Torvalds
2005-11-03 18:17 ` Martin J. Bligh
2005-11-03 18:44 ` Linus Torvalds
2005-11-03 18:51 ` Martin J. Bligh
2005-11-03 19:35 ` Linus Torvalds
2005-11-03 22:40 ` Martin J. Bligh
2005-11-03 22:56 ` Linus Torvalds
2005-11-03 23:01 ` Martin J. Bligh
2005-11-04 0:58 ` Nick Piggin
2005-11-04 1:06 ` Linus Torvalds
2005-11-04 1:20 ` Paul Mackerras
2005-11-04 1:22 ` Nick Piggin
2005-11-04 1:48 ` Mel Gorman
2005-11-04 1:59 ` Nick Piggin
2005-11-04 2:35 ` Mel Gorman
2005-11-04 1:26 ` Mel Gorman
2005-11-03 21:11 ` Mel Gorman
2005-11-03 18:03 ` Linus Torvalds
2005-11-03 20:00 ` Paul Jackson
2005-11-03 20:46 ` Mel Gorman
2005-11-03 18:48 ` Martin J. Bligh
2005-11-03 19:08 ` Linus Torvalds
2005-11-03 22:37 ` Martin J. Bligh
2005-11-03 23:16 ` Linus Torvalds
2005-11-03 23:39 ` Martin J. Bligh
2005-11-04 0:42 ` Nick Piggin
2005-11-04 4:39 ` Andrew Morton
2005-11-04 16:22 ` Mel Gorman
2005-11-03 15:53 ` Martin J. Bligh
2005-11-02 14:57 ` Martin J. Bligh
2005-11-01 16:48 ` Kamezawa Hiroyuki
2005-11-01 16:59 ` Kamezawa Hiroyuki
2005-11-01 17:19 ` Mel Gorman
2005-11-02 0:32 ` KAMEZAWA Hiroyuki
2005-11-02 11:22 ` Mel Gorman
2005-11-01 18:06 ` linux-os (Dick Johnson)
2005-11-02 7:19 ` Ingo Molnar
2005-11-02 7:46 ` Gerrit Huizenga
2005-11-02 8:50 ` Nick Piggin
2005-11-02 9:12 ` Gerrit Huizenga
2005-11-02 9:37 ` Nick Piggin
2005-11-02 10:17 ` Gerrit Huizenga
2005-11-02 23:47 ` Rob Landley
2005-11-03 4:43 ` Nick Piggin
2005-11-03 6:07 ` Rob Landley [this message]
2005-11-03 7:34 ` Nick Piggin
2005-11-03 17:54 ` Rob Landley
2005-11-03 20:13 ` Jeff Dike
2005-11-03 16:35 ` Jeff Dike
2005-11-03 16:23 ` Badari Pulavarty
2005-11-03 18:27 ` Jeff Dike
2005-11-03 18:49 ` Rob Landley
2005-11-04 4:52 ` Andrew Morton
2005-11-04 5:35 ` Paul Jackson
2005-11-04 5:48 ` Andrew Morton
2005-11-04 6:42 ` Paul Jackson
2005-11-04 7:10 ` Andrew Morton
2005-11-04 7:45 ` Paul Jackson
2005-11-04 8:02 ` Andrew Morton
2005-11-04 9:52 ` Paul Jackson
2005-11-04 15:27 ` Martin J. Bligh
2005-11-04 15:19 ` Martin J. Bligh
2005-11-04 17:38 ` Andrew Morton
2005-11-04 6:16 ` Bron Nelson
2005-11-04 7:26 ` [patch] swapin rlimit Ingo Molnar
2005-11-04 7:36 ` Andrew Morton
2005-11-04 8:07 ` Ingo Molnar
2005-11-04 10:06 ` Paul Jackson
2005-11-04 15:24 ` Martin J. Bligh
2005-11-04 8:18 ` Arjan van de Ven
2005-11-04 10:04 ` Paul Jackson
2005-11-04 15:14 ` Rob Landley
2005-11-04 10:14 ` Bernd Petrovitsch
2005-11-04 10:21 ` Ingo Molnar
2005-11-04 11:17 ` Bernd Petrovitsch
2005-11-02 10:41 ` [Lhms-devel] [PATCH 0/7] Fragmentation Avoidance V19 Ingo Molnar
2005-11-02 11:04 ` Gerrit Huizenga
2005-11-02 12:00 ` Ingo Molnar
2005-11-02 12:42 ` Dave Hansen
2005-11-02 15:02 ` Gerrit Huizenga
2005-11-03 0:10 ` Rob Landley
2005-11-02 7:57 ` Nick Piggin
2005-11-02 0:51 ` Nick Piggin
2005-11-02 7:42 ` Dave Hansen
2005-11-02 8:24 ` Nick Piggin
2005-11-02 8:33 ` Yasunori Goto
2005-11-02 8:43 ` Nick Piggin
2005-11-02 14:51 ` Martin J. Bligh
2005-11-02 23:28 ` Rob Landley
2005-11-03 5:26 ` Jeff Dike
2005-11-03 5:41 ` Rob Landley
2005-11-04 3:26 ` [uml-devel] " Blaisorblade
2005-11-04 15:50 ` Rob Landley
2005-11-04 17:18 ` Blaisorblade
2005-11-04 17:44 ` Rob Landley
2005-11-02 12:38 ` [Lhms-devel] [PATCH 0/7] Fragmentation Avoidance V19 - Summary Mel Gorman
2005-11-03 3:14 ` Nick Piggin
2005-11-03 12:19 ` Mel Gorman
2005-11-10 18:47 ` Steve Lord
2005-11-03 15:34 ` Martin J. Bligh
2005-11-01 14:41 ` [Lhms-devel] [PATCH 0/7] Fragmentation Avoidance V19 Mel Gorman
2005-11-01 14:46 ` Ingo Molnar
2005-11-01 15:23 ` Mel Gorman
2005-11-01 18:33 ` Rob Landley
2005-11-01 19:02 ` Ingo Molnar
2005-11-01 14:50 ` Dave Hansen
2005-11-01 15:24 ` Mel Gorman
2005-11-02 5:11 ` Andrew Morton
2005-11-01 18:23 ` Rob Landley
2005-11-01 20:31 ` Joel Schopp
2005-11-01 20:59 ` Joel Schopp
2005-11-02 1:06 ` Nick Piggin
2005-11-02 1:41 ` Martin J. Bligh
2005-11-02 2:03 ` Nick Piggin
2005-11-02 2:24 ` Martin J. Bligh
2005-11-02 2:49 ` Nick Piggin
2005-11-02 4:39 ` Martin J. Bligh
2005-11-02 5:09 ` Nick Piggin
2005-11-02 5:14 ` Martin J. Bligh
2005-11-02 6:23 ` KAMEZAWA Hiroyuki
2005-11-02 10:15 ` Nick Piggin
2005-11-02 7:19 ` Yasunori Goto
2005-11-02 11:48 ` Mel Gorman
2005-11-02 11:41 ` Mel Gorman
2005-11-02 11:37 ` Mel Gorman
2005-11-02 15:11 ` Mel Gorman
2005-11-01 15:25 ` Martin J. Bligh
2005-11-01 15:33 ` Dave Hansen
2005-11-01 16:57 ` Mel Gorman
2005-11-01 17:00 ` Mel Gorman
2005-11-01 18:58 ` Rob Landley
2005-11-01 14:40 ` Avi Kivity
2005-11-04 1:00 Andy Nelson
2005-11-04 1:16 ` Martin J. Bligh
2005-11-04 1:27 ` Nick Piggin
2005-11-04 5:14 ` Linus Torvalds
2005-11-04 6:10 ` Paul Jackson
2005-11-04 6:38 ` Ingo Molnar
2005-11-04 7:26 ` Paul Jackson
2005-11-04 7:37 ` Ingo Molnar
2005-11-04 15:31 ` Linus Torvalds
2005-11-04 15:39 ` Martin J. Bligh
2005-11-04 15:53 ` Ingo Molnar
2005-11-06 7:34 ` Paul Jackson
2005-11-06 15:55 ` Linus Torvalds
2005-11-06 18:18 ` Paul Jackson
2005-11-06 8:44 ` Kyle Moffett
2005-11-06 16:12 ` Linus Torvalds
2005-11-06 17:00 ` Linus Torvalds
2005-11-07 8:00 ` Ingo Molnar
2005-11-07 11:00 ` Dave Hansen
2005-11-07 12:20 ` Ingo Molnar
2005-11-07 19:34 ` Steven Rostedt
2005-11-07 23:38 ` Joel Schopp
2005-11-04 7:44 ` Eric Dumazet
2005-11-07 16:42 ` Adam Litke
2005-11-04 14:56 ` Andy Nelson
2005-11-04 15:18 ` Ingo Molnar
2005-11-04 15:39 ` Andy Nelson
2005-11-04 16:05 ` Ingo Molnar
2005-11-04 16:07 ` Linus Torvalds
2005-11-04 16:40 ` Ingo Molnar
2005-11-04 17:22 ` Linus Torvalds
2005-11-04 17:43 ` Andy Nelson
2005-11-04 16:00 ` Linus Torvalds
2005-11-04 16:13 ` Martin J. Bligh
2005-11-04 16:40 ` Linus Torvalds
2005-11-04 17:10 ` Martin J. Bligh
2005-11-04 16:14 ` Andy Nelson
2005-11-04 16:49 ` Linus Torvalds
2005-11-04 15:19 Andy Nelson
2005-11-04 17:03 Andy Nelson
2005-11-04 17:49 ` Linus Torvalds
2005-11-04 17:51 ` Andy Nelson
2005-11-04 20:12 ` Ingo Molnar
2005-11-04 21:04 ` Andy Nelson
2005-11-04 21:14 ` Ingo Molnar
2005-11-04 21:22 ` Linus Torvalds
2005-11-04 21:39 ` Linus Torvalds
2005-11-05 2:48 ` Rob Landley
2005-11-06 10:59 ` Paul Jackson
2005-11-04 21:31 ` Gregory Maxwell
2005-11-04 22:43 ` Andi Kleen
2005-11-05 0:07 ` Nick Piggin
2005-11-06 1:30 ` Zan Lynx
2005-11-06 2:25 ` Rob Landley
2005-11-04 17:56 Andy Nelson
2005-11-04 21:51 Andy Nelson
2005-11-05 1:37 Seth, Rohit, Nick
2005-11-07 0:34 ` Andy Nelson
2005-11-07 18:58 ` Adam Litke
2005-11-07 20:51 ` Rohit Seth
2005-11-07 20:55 ` Andy Nelson
2005-11-07 20:58 ` Martin J. Bligh
2005-11-07 21:20 ` Rohit Seth
2005-11-07 21:33 ` Adam Litke
2005-11-08 2:12 ` David Gibson
2005-11-07 21:11 ` Adam Litke
2005-11-07 21:31 ` Rohit Seth
2005-11-05 1:52 Seth, Rohit, Friday, November
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=200511030007.34285.rob@landley.net \
--to=rob@landley.net \
--cc=akpm@osdl.org \
--cc=gh@us.ibm.com \
--cc=haveblue@us.ibm.com \
--cc=kamezawa.hiroyu@jp.fujitsu.com \
--cc=kravetz@us.ibm.com \
--cc=lhms-devel@lists.sourceforge.net \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=mbligh@mbligh.org \
--cc=mel@csn.ul.ie \
--cc=mingo@elte.hu \
--cc=nickpiggin@yahoo.com.au \
/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