From: Hiroyuki KAMEZAWA <kamezawa.hiroyu@jp.fujitsu.com>
To: "Luck, Tony" <tony.luck@intel.com>
Cc: "Martin J. Bligh" <mbligh@aracnet.com>,
LinuxIA64 <linux-ia64@vger.kernel.org>,
linux-mm <linux-mm@kvack.org>
Subject: Re: [RFC/PATCH] pfn_valid() more generic : arch independent part[0/2]
Date: Thu, 07 Oct 2004 06:28:29 +0000 [thread overview]
Message-ID: <4164E20D.5020400@jp.fujitsu.com> (raw)
In-Reply-To: <B8E391BBE9FE384DAA4C5C003888BE6F0226680C@scsmsx401.amr.corp.intel.com>
Hi,
Luck, Tony wrote:
>>Because pfn_valid() often returns 0 in inner loop of free_pages_bulk(),
>>I want to avoid page fault caused by using get_user() in pfn_valid().
>
>
> How often? Surely this is only a problem at the edges of blocks
> of memory? I suppose it depends on whether your discontig memory
> appears in blocks much smaller than MAXORDER. But even there it
> should only be an issue coalescing buddies that are bigger than
> the granule size (since all of the pages in a granule on ia64 are
> guaranteed to exist, the buddy of any page must also exist).
>
Currently, my Tiger4 shows memory map like this.
this is a record of memmap_init() called by virtual_memmap_init().
NOTE: MAX_ORDER is 4Gbytes.
mem_map(1) from 36e length 1fb6d --- ZONE_DMA (36e to 1fedb)
mem_map(2) from 1fedc length 124 --- ZONE_DMA (1fedc to 20000)
ZONE_DMA is 0G to 4G.
mem_map(3) from 40000 length 40000 --- ZONE_NORMAL (4G to 8G, this mem_map is aligned)
mem_map(4) from a0000 length 20000 --- ZONE_NORMAL (10G to 12G)
mem_map(5) from bfedc length 124 --- ZONE_NORMAL (this is involved in mem_map(4))
ZONE_NORMAL is 4G to 12G.
node's start_pfn and end_pfn is aligned to granule size, but holes in memmap is not.
The vmemmap is aligned to # of page structs in one page.
virtual_memmap_init() is called directly from efi_memmap_walk() and
it doesn't take granule size of ia64 into account.
Hmm....
It looks what I should do is to make memmap to be aligned to ia64's granule.
thanks for your advise. I maybe considerd this problem too serious.
If vmemmap is aligned, ia64_pfn_valid() will work fine. or only 1 level table
will be needed.
Thanks.
Kame <kamezawa.hiroyu@jp.fujitsu.com>
WARNING: multiple messages have this Message-ID (diff)
From: Hiroyuki KAMEZAWA <kamezawa.hiroyu@jp.fujitsu.com>
To: "Luck, Tony" <tony.luck@intel.com>
Cc: "Martin J. Bligh" <mbligh@aracnet.com>,
LinuxIA64 <linux-ia64@vger.kernel.org>,
linux-mm <linux-mm@kvack.org>
Subject: Re: [RFC/PATCH] pfn_valid() more generic : arch independent part[0/2]
Date: Thu, 07 Oct 2004 15:28:29 +0900 [thread overview]
Message-ID: <4164E20D.5020400@jp.fujitsu.com> (raw)
In-Reply-To: <B8E391BBE9FE384DAA4C5C003888BE6F0226680C@scsmsx401.amr.corp.intel.com>
Hi,
Luck, Tony wrote:
>>Because pfn_valid() often returns 0 in inner loop of free_pages_bulk(),
>>I want to avoid page fault caused by using get_user() in pfn_valid().
>
>
> How often? Surely this is only a problem at the edges of blocks
> of memory? I suppose it depends on whether your discontig memory
> appears in blocks much smaller than MAXORDER. But even there it
> should only be an issue coalescing buddies that are bigger than
> the granule size (since all of the pages in a granule on ia64 are
> guaranteed to exist, the buddy of any page must also exist).
>
Currently, my Tiger4 shows memory map like this.
this is a record of memmap_init() called by virtual_memmap_init().
NOTE: MAX_ORDER is 4Gbytes.
mem_map(1) from 36e length 1fb6d --- ZONE_DMA (36e to 1fedb)
mem_map(2) from 1fedc length 124 --- ZONE_DMA (1fedc to 20000)
ZONE_DMA is 0G to 4G.
mem_map(3) from 40000 length 40000 --- ZONE_NORMAL (4G to 8G, this mem_map is aligned)
mem_map(4) from a0000 length 20000 --- ZONE_NORMAL (10G to 12G)
mem_map(5) from bfedc length 124 --- ZONE_NORMAL (this is involved in mem_map(4))
ZONE_NORMAL is 4G to 12G.
node's start_pfn and end_pfn is aligned to granule size, but holes in memmap is not.
The vmemmap is aligned to # of page structs in one page.
virtual_memmap_init() is called directly from efi_memmap_walk() and
it doesn't take granule size of ia64 into account.
Hmm....
It looks what I should do is to make memmap to be aligned to ia64's granule.
thanks for your advise. I maybe considerd this problem too serious.
If vmemmap is aligned, ia64_pfn_valid() will work fine. or only 1 level table
will be needed.
Thanks.
Kame <kamezawa.hiroyu@jp.fujitsu.com>
--
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:"aart@kvack.org"> aart@kvack.org </a>
next prev parent reply other threads:[~2004-10-07 6:28 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2004-10-06 6:20 [RFC/PATCH] pfn_valid() more generic : intro[0/2] Hiroyuki KAMEZAWA
2004-10-06 6:20 ` Hiroyuki KAMEZAWA
2004-10-06 6:33 ` Luck, Tony
2004-10-06 6:33 ` Luck, Tony
2004-10-06 7:33 ` Hiroyuki KAMEZAWA
2004-10-06 7:33 ` Hiroyuki KAMEZAWA
2004-10-06 6:37 ` [RFC/PATCH] pfn_valid() more generic : arch independent part[0/2] Hiroyuki KAMEZAWA
2004-10-06 6:37 ` Hiroyuki KAMEZAWA
2004-10-06 15:14 ` Martin J. Bligh
2004-10-06 15:14 ` Martin J. Bligh
2004-10-07 0:10 ` Hiroyuki KAMEZAWA
2004-10-07 0:10 ` Hiroyuki KAMEZAWA
2004-10-07 5:22 ` Luck, Tony
2004-10-07 5:22 ` Luck, Tony
2004-10-07 6:28 ` Hiroyuki KAMEZAWA [this message]
2004-10-07 6:28 ` Hiroyuki KAMEZAWA
2004-10-07 6:51 ` align vmemmap to ia64's granule Hiroyuki KAMEZAWA
2004-10-07 14:38 ` [RFC/PATCH] pfn_valid() more generic : arch independent part[0/2] Martin J. Bligh
2004-10-07 14:38 ` Martin J. Bligh
2004-10-07 23:38 ` Hiroyuki KAMEZAWA
2004-10-07 23:38 ` Hiroyuki KAMEZAWA
2004-10-07 15:53 ` Luck, Tony
2004-10-07 15:53 ` Luck, Tony
2004-10-07 16:02 ` Martin J. Bligh
2004-10-07 16:02 ` Martin J. Bligh
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=4164E20D.5020400@jp.fujitsu.com \
--to=kamezawa.hiroyu@jp.fujitsu.com \
--cc=linux-ia64@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=mbligh@aracnet.com \
--cc=tony.luck@intel.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.