linux-mm.kvack.org archive mirror
 help / color / mirror / Atom feed
From: Christoph Lameter <clameter@sgi.com>
To: Dave Hansen <hansendc@us.ibm.com>
Cc: Andi Kleen <ak@suse.de>,
	linux-kernel@vger.kernel.org, linux-arch@vger.kernel.org,
	Martin Bligh <mbligh@google.com>,
	linux-mm@kvack.org,
	KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
Subject: Re: [PATCH 1/4] x86_64: Switch to SPARSE_VIRTUAL
Date: Mon, 2 Apr 2007 13:11:04 -0700 (PDT)	[thread overview]
Message-ID: <Pine.LNX.4.64.0704021258500.31698@schroedinger.engr.sgi.com> (raw)
In-Reply-To: <1175543696.22373.51.camel@localhost.localdomain>

On Mon, 2 Apr 2007, Dave Hansen wrote:

> MAX_ORDER, and the section size is at least MAX_ORDER.  If we *did* have
> this, then the page allocator would already be broken for these
> nodes. ;)

Ahh... Ok.
 
> So, this SPARSE_VIRTUAL does introduce a new dependency, which Andi
> calculated above.  But, in reality, I don't think it's a big deal.  Just
> to spell it out a bit more, if this:
> 
> 	VMEMMAP_MAPPING_SIZE/sizeof(struct page) * PAGE_SIZE
> 
> (where VMEMMAP_MAPPING_SIZE is PMD_SIZE in your case) is any larger than
> the granularity on which your NUMA nodes are divided, then you might
> have a problem with mem_map for one NUMA node getting allocated on
> another.  

This is only a problem if

1. We are not on NUMA emulation. In that case: Who cares. The SPARSEMEM
   sections make sure that the MAX_ORDER blocks do not overlap.

2. There is a hole less than 128 MB between the nodes.

3. The maximum overlap can then be theoretically less than 2M in terms of
   page structs. That is less than 128MB can overlap at the beginning of a 
   node. Typically the start of a node gets used for allocation system
   control areas. I.e. node data, vmemmap 2M blocks etc. For those we
   only use the page structs during bootstrap. They are not performance
   critical. We can just ignore the problem for those.

   In order for this to become a problem the overlap would need to
   more than the management data at the front of a node. The larger 
   the zone is the more 2M blocks will be allocated from the beginning a 
   node and the less we can actually get into this situation.

If this is an actual problem then we could take out this particular
2M page and replace it with single 4K pages that can be individually
placed. Yaw.... Too complex.

I think we can ignore this. The only problem could be reduced performance
accessing page structs of some small portion of a node.

> It might be worth a comment, or at least some kind of WARN_ON().
> Perhaps we can stick something in online_page() to check if:
> 
> 	page_to_nid(page) == page_to_nid(virt_to_page(page))

Could do that but the check is going to be too agressive. Check would 
have to be done after all control information has been allocated. WARN_ON 
would be sufficient since this is not going to impact functionality.

--
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:[~2007-04-02 20:11 UTC|newest]

Thread overview: 46+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-04-01  7:10 [PATCH 1/2] Generic Virtual Memmap suport for SPARSEMEM Christoph Lameter
2007-04-01  7:10 ` [PATCH 1/4] x86_64: Switch to SPARSE_VIRTUAL Christoph Lameter
2007-04-01  7:11   ` Christoph Lameter
2007-04-01 10:46   ` Andi Kleen
2007-04-02 15:37     ` Christoph Lameter
2007-04-02 15:44       ` Andi Kleen
2007-04-02 15:51         ` Martin J. Bligh
2007-04-02 15:54         ` Christoph Lameter
2007-04-02 17:14           ` Andi Kleen
2007-04-02 17:34             ` Christoph Lameter
2007-04-02 19:54           ` Dave Hansen
2007-04-02 20:11             ` Christoph Lameter [this message]
2007-04-02 20:13       ` Dave Hansen
2007-04-02 20:30         ` Christoph Lameter
2007-04-02 20:38           ` Martin Bligh
2007-04-02 20:51             ` Christoph Lameter
2007-04-05 11:50               ` Andy Whitcroft
2007-04-05 18:27                 ` Christoph Lameter
2007-04-07 22:06                   ` [PATCH 1/4] x86_64: (SPARSE_VIRTUAL doubles sparsemem speed) Christoph Lameter
2007-04-07 22:18                     ` Andi Kleen
2007-04-09 16:40                     ` William Lee Irwin III
2007-04-09 17:16                       ` Christoph Lameter
2007-04-09 18:20                         ` William Lee Irwin III
2007-04-02 21:08           ` [PATCH 1/4] x86_64: Switch to SPARSE_VIRTUAL Dave Hansen
2007-04-02 21:28             ` Christoph Lameter
2007-04-02 21:43               ` Martin Bligh
2007-04-02 21:56               ` Dave Hansen
2007-04-02 22:29                 ` Christoph Lameter
2007-04-02 22:31                 ` Andi Kleen
2007-04-02 22:37                   ` Christoph Lameter
2007-04-02 22:41                     ` Martin Bligh
2007-04-02 22:49                       ` Christoph Lameter
2007-04-02 22:52                         ` Martin Bligh
2007-04-05 12:07                   ` Andy Whitcroft
2007-04-04 21:27               ` Bob Picco
2007-04-04 22:38                 ` Christoph Lameter
2007-04-02 23:03       ` Bjorn Helgaas
2007-04-02 15:44     ` Christoph Lameter
2007-04-02 16:18     ` Christoph Lameter
2007-04-02 20:50 ` [PATCH 1/2] Generic Virtual Memmap suport for SPARSEMEM Dave Hansen
2007-04-02 21:00   ` Christoph Lameter
2007-04-02 21:22     ` Dave Hansen
2007-04-02 21:31       ` Christoph Lameter
2007-04-02 21:42         ` Dave Hansen
2007-04-02 21:53           ` Christoph Lameter
2007-04-02 22:05             ` Dave Hansen

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=Pine.LNX.4.64.0704021258500.31698@schroedinger.engr.sgi.com \
    --to=clameter@sgi.com \
    --cc=ak@suse.de \
    --cc=hansendc@us.ibm.com \
    --cc=kamezawa.hiroyu@jp.fujitsu.com \
    --cc=linux-arch@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=mbligh@google.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