All of lore.kernel.org
 help / color / mirror / Atom feed
From: Dave Hansen <haveblue@us.ibm.com>
To: Yasunori Goto <ygoto@us.fujitsu.com>
Cc: Linux Kernel ML <linux-kernel@vger.kernel.org>,
	Linux Hotplug Memory Support  <lhms-devel@lists.sourceforge.net>,
	Linux-Node-Hotplug <lhns-devel@lists.sourceforge.net>,
	linux-mm <linux-mm@kvack.org>,
	"BRADLEY CHRISTIANSEN [imap]" <bradc1@us.ibm.com>
Subject: Re: [Lhns-devel] Merging Nonlinear and Numa style memory hotplug
Date: Wed, 23 Jun 2004 20:26:06 -0700	[thread overview]
Message-ID: <1088047565.3918.183.camel@nighthawk> (raw)
In-Reply-To: <20040623184303.25D9.YGOTO@us.fujitsu.com>

On Wed, 2004-06-23 at 20:04, Yasunori Goto wrote:

> > Can they be allocated elsewhere, instead
> > of directly inside the translation tables, or otherwise derived?  Also,
> > why does the booked/free_count have to be kept here?  Can't that be
> > determined by simply looping through and looking at all the pages'
> > flags?
> 
> It might be OK. But there might be some other influence by it 
> (for example, new lock will be necessary in alloc_pages()...).
> I think measurement is necessary to find which implementation
> is the fastest. If I will have a time, I would like to try it.

I'm pretty sure your current implementation is the faster of the two
approaches.  However, I think we should take a performance hit during
the hotplug operations in order to decrease the storage overhead.  It's
not like we'll be publishing benchmarks during remove operations...

> > Also, can you provide a patch which is just your modifications to Dave's
> > original nonlinear patch?
> 
> No, I don't have it (at least now).
> Base of my patches is Iwamoto-san's patch which is for 2.6.5.
> But Dave-san's patch is for linux-2.6.5-mm. So, I had to change
> Dave-san's patch for it.
> 
> And, other difference thing is about mem_map.
> Dave-san's patch divides virtual address of mem_map per mem_section.
> But it is cause of increasing steps at 'buddy allocator' like this.
>   
>   - buddy1 = base + (page_idx ^ -mask);
>   - buddy2 = base + page_idx;
>   + buddy1 = pfn_to_page(base + (page_idx ^ -mask);
>   + buddy2 = pfn_to_page(base + page_idx);
> 
> So, I would like to try contiguous virtual mem_map yet,
> if it is possible.

I'd love to see an implementation, but I'm not horribly sure how
feasible it is.  I think they use that approach on ia64 right now, and I
don't think it's very popular.

But, it could be interesting.  I'll be curious to see how it turns out.

> > Instead of remove_from_freelist(unsigned int section), I'd hope that we
> > could support a much more generic interface in the page allocator:
> > allocate by physical address.  remove_from_freelist() has some intimate
> > knowledge of the buddy allocator that I think is a bit complex.  
> 
> I don't think I understand your idea at this point.
> If booked pages remain in free_list, page allocator has to
> search many pages which include booked pages.
> remove_from_reelist() is to avoid this.

Oh, I like *that* part.  The first step in a "removal" is to allocate
the pages.  I'd just like to see that allocation be more based on pfns
or physical addresses than sections.  That's a much more generic
interface, and would be applicable to things outside of
CONFIG_NONLINEAR.  I'll post an example of this in a day or two.

-- Dave


WARNING: multiple messages have this Message-ID (diff)
From: Dave Hansen <haveblue@us.ibm.com>
To: Yasunori Goto <ygoto@us.fujitsu.com>
Cc: Linux Kernel ML <linux-kernel@vger.kernel.org>,
	Linux Hotplug Memory Support <lhms-devel@lists.sourceforge.net>,
	Linux-Node-Hotplug <lhns-devel@lists.sourceforge.net>,
	linux-mm <linux-mm@kvack.org>,
	"BRADLEY CHRISTIANSEN [imap]" <bradc1@us.ibm.com>
Subject: Re: [Lhns-devel] Merging Nonlinear and Numa style memory hotplug
Date: Wed, 23 Jun 2004 20:26:06 -0700	[thread overview]
Message-ID: <1088047565.3918.183.camel@nighthawk> (raw)
In-Reply-To: <20040623184303.25D9.YGOTO@us.fujitsu.com>

On Wed, 2004-06-23 at 20:04, Yasunori Goto wrote:

> > Can they be allocated elsewhere, instead
> > of directly inside the translation tables, or otherwise derived?  Also,
> > why does the booked/free_count have to be kept here?  Can't that be
> > determined by simply looping through and looking at all the pages'
> > flags?
> 
> It might be OK. But there might be some other influence by it 
> (for example, new lock will be necessary in alloc_pages()...).
> I think measurement is necessary to find which implementation
> is the fastest. If I will have a time, I would like to try it.

I'm pretty sure your current implementation is the faster of the two
approaches.  However, I think we should take a performance hit during
the hotplug operations in order to decrease the storage overhead.  It's
not like we'll be publishing benchmarks during remove operations...

> > Also, can you provide a patch which is just your modifications to Dave's
> > original nonlinear patch?
> 
> No, I don't have it (at least now).
> Base of my patches is Iwamoto-san's patch which is for 2.6.5.
> But Dave-san's patch is for linux-2.6.5-mm. So, I had to change
> Dave-san's patch for it.
> 
> And, other difference thing is about mem_map.
> Dave-san's patch divides virtual address of mem_map per mem_section.
> But it is cause of increasing steps at 'buddy allocator' like this.
>   
>   - buddy1 = base + (page_idx ^ -mask);
>   - buddy2 = base + page_idx;
>   + buddy1 = pfn_to_page(base + (page_idx ^ -mask);
>   + buddy2 = pfn_to_page(base + page_idx);
> 
> So, I would like to try contiguous virtual mem_map yet,
> if it is possible.

I'd love to see an implementation, but I'm not horribly sure how
feasible it is.  I think they use that approach on ia64 right now, and I
don't think it's very popular.

But, it could be interesting.  I'll be curious to see how it turns out.

> > Instead of remove_from_freelist(unsigned int section), I'd hope that we
> > could support a much more generic interface in the page allocator:
> > allocate by physical address.  remove_from_freelist() has some intimate
> > knowledge of the buddy allocator that I think is a bit complex.  
> 
> I don't think I understand your idea at this point.
> If booked pages remain in free_list, page allocator has to
> search many pages which include booked pages.
> remove_from_reelist() is to avoid this.

Oh, I like *that* part.  The first step in a "removal" is to allocate
the pages.  I'd just like to see that allocation be more based on pfns
or physical addresses than sections.  That's a much more generic
interface, and would be applicable to things outside of
CONFIG_NONLINEAR.  I'll post an example of this in a day or two.

-- Dave

--
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>

  reply	other threads:[~2004-06-24  3:26 UTC|newest]

Thread overview: 32+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2004-06-22 19:00 Merging Nonlinear and Numa style memory hotplug Yasunori Goto
2004-06-22 19:00 ` Yasunori Goto
2004-06-23 22:32 ` [Lhns-devel] " Dave Hansen
2004-06-23 22:32   ` Dave Hansen
2004-06-24  3:04   ` Yasunori Goto
2004-06-24  3:04     ` Yasunori Goto
2004-06-24  3:26     ` Dave Hansen [this message]
2004-06-24  3:26       ` Dave Hansen
2004-06-24 13:28     ` [Lhms-devel] " Dave Hansen
2004-06-24 13:28       ` Dave Hansen
2004-06-24 22:19       ` Yasunori Goto
2004-06-24 22:19         ` Yasunori Goto
2004-06-24 22:37         ` Dave Hansen
2004-06-24 22:37           ` Dave Hansen
2004-06-25  3:11           ` [Lhms-devel] " Yasunori Goto
2004-06-25  3:11             ` Yasunori Goto
2004-06-25  3:19             ` Dave Hansen
2004-06-25  3:19               ` Dave Hansen
2004-06-25 18:48               ` Yasunori Goto
2004-06-25 18:48                 ` Yasunori Goto
2004-06-25 18:59                 ` Dave Hansen
2004-06-25 18:59                   ` Dave Hansen
2004-06-25 20:45                   ` Yasunori Goto
2004-06-25 20:45                     ` Yasunori Goto
2004-06-25 20:49                     ` Dave Hansen
2004-06-25 20:49                       ` Dave Hansen
2004-06-25 20:54                     ` Dave Hansen
2004-06-25 20:54                       ` Dave Hansen
2004-06-25  4:49         ` [Lhms-devel] Re: [Lhns-devel] " Shai Fultheim
2004-06-25  4:49           ` Shai Fultheim
2004-06-25 15:16           ` Dave Hansen
2004-06-25 15:16             ` 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=1088047565.3918.183.camel@nighthawk \
    --to=haveblue@us.ibm.com \
    --cc=bradc1@us.ibm.com \
    --cc=lhms-devel@lists.sourceforge.net \
    --cc=lhns-devel@lists.sourceforge.net \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=ygoto@us.fujitsu.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.