linux-mm.kvack.org archive mirror
 help / color / mirror / Atom feed
From: Balbir Singh <balbir@linux.vnet.ibm.com>
To: Andi Kleen <andi@firstfloor.org>
Cc: Nick Piggin <nickpiggin@yahoo.com.au>,
	akpm@osdl.org, torvalds@osdl.org, linux-kernel@vger.kernel.org,
	linux-mm@kvack.org
Subject: Re: [PATCH] Document huge memory/cache overhead of memory controller in Kconfig
Date: Thu, 21 Feb 2008 16:33:33 +0530	[thread overview]
Message-ID: <47BD5A85.5010401@linux.vnet.ibm.com> (raw)
In-Reply-To: <47BD546B.1050504@firstfloor.org>

Andi Kleen wrote:
> Nick Piggin wrote:
>> On Wednesday 20 February 2008 23:52, Balbir Singh wrote:
>>> Andi Kleen wrote:
>>>> Document huge memory/cache overhead of memory controller in Kconfig
>>>>
>>>> I was a little surprised that 2.6.25-rc* increased struct page for the
>>>> memory controller.  At least on many x86-64 machines it will not fit into
>>>> a single cache line now anymore and also costs considerable amounts of
>>>> RAM.
>>> The size of struct page earlier was 56 bytes on x86_64 and with 64 bytes it
>>> won't fit into the cacheline anymore? Please also look at
>>> http://lwn.net/Articles/234974/
>> BTW. We'll probably want to increase the width of some counters
>> in struct page at some point for 64-bit, 
> 
> You mean change count to atomic64_t? Do you have real evidence
> the 32bit counter is a problem?
> 
>> so then it really will
>> go over with the memory controller!
> 
> Not sure how they are related? The count and the memory controller
> data would be always separate.
> 
> BTW if the memory controllers were limited in number it would
> be also possible on 64bit to encode them in the high bits of
> ->flags. I assume 16bit or so could be spared in there. Probably
> would not be enough though.
> 
>> Actually, an external data structure is a pretty good idea. We
>> could probably do it easily with a radix tree (pfn->memory
>> controller). And that might be a better option for distros.
> 
> I would think just a separate vmalloc()ed array for the counters
> would be easy enough. That array could be allocated the first time
> the memory controller is used (so making it zero cost for
> distribution kernels when it is not used at all) and then also on
> memory hotplug etc. If we assume most memory will be in
> memory controllers that is also more efficient (in terms of
> memory and of cache consumption) than any kind
> of tree.
> 
> Balbir mentioned one reason they didn't do that earlier was
> that they worried about the limited vmalloc space on 32bit,
> but I don't think that's a good reason against it. That is because
> vmalloc on 32bit is limited because of the limited direct
> mapped kernel memory, but increasing mem_map size eats that
> the same limited resource. So rather the 32bit vmalloc
> reservation can be just increased by the same amount as the
> mem_map increase would be (ok modulo hotplug, but that
> is difficult anyways on 32bit)
> 
> Another issue is that it will slightly increase TLB/cache
> cost of the memory controller, but I think that would be a fair
> trade off for it being zero cost when disabled but compiled
> in.
> 
> Doing it with vmalloc should be easy enough. I can do such
> a patch later unless someone beats me to it...
> 

I'll get to it, but I have too many things on my plate at the moment. KAMEZAWA
also wanted to look at it. I looked through some vmalloc() internals yesterday
and I am worried about allocating all the memory on a single node in a NUMA
system and changing VMALLOC_XXXX on every architecture to provide more vmalloc
space. I might be missing something obvious.



-- 
	Warm Regards,
	Balbir Singh
	Linux Technology Center
	IBM, ISTL

--
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:[~2008-02-21 11:09 UTC|newest]

Thread overview: 33+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-02-20 12:23 [PATCH] Document huge memory/cache overhead of memory controller in Kconfig Andi Kleen
2008-02-20 12:52 ` Balbir Singh
2008-02-20 15:00   ` John Stoffel
2008-02-20 15:20     ` Balbir Singh
2008-02-20 15:49       ` Jan Engelhardt
2008-02-20 16:10         ` John Stoffel
2008-02-20 16:15           ` Balbir Singh
2008-02-20 17:00             ` Andi Kleen
2008-02-21  6:49             ` KAMEZAWA Hiroyuki
2008-02-21  6:52               ` Balbir Singh
2008-02-20 18:19         ` Pavel Machek
2008-02-20 18:28           ` Jan Engelhardt
2008-02-20 18:51             ` Pavel Machek
2008-02-21 14:46               ` KOSAKI Motohiro
2008-02-21 14:52                 ` Balbir Singh
2008-02-21 23:55                 ` Pavel Machek
2008-02-22  3:09                   ` KOSAKI Motohiro
2008-02-20 16:15       ` John Stoffel
2008-02-20 16:54       ` Ray Lee
2008-02-20 16:57     ` Andi Kleen
2008-02-21  4:35   ` Nick Piggin
2008-02-21  5:06     ` Balbir Singh
     [not found]       ` <200802211622.51751.nickpiggin@yahoo.com.au>
2008-02-21  5:46         ` Balbir Singh
2008-02-21 10:44       ` Andi Kleen
2008-02-22  4:41         ` Balbir Singh
2008-02-22  9:51           ` Andi Kleen
2008-02-22 12:14             ` Balbir Singh
2008-02-22 13:00               ` Andi Kleen
2008-02-22 15:47                 ` Balbir Singh
2008-02-21 10:37     ` Andi Kleen
2008-02-21 11:03       ` Balbir Singh [this message]
2008-02-22  6:59         ` KAMEZAWA Hiroyuki
2008-02-22  7:06           ` Balbir Singh

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=47BD5A85.5010401@linux.vnet.ibm.com \
    --to=balbir@linux.vnet.ibm.com \
    --cc=akpm@osdl.org \
    --cc=andi@firstfloor.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=nickpiggin@yahoo.com.au \
    --cc=torvalds@osdl.org \
    /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;
as well as URLs for NNTP newsgroup(s).