linux-mm.kvack.org archive mirror
 help / color / mirror / Atom feed
From: Dave Hansen <haveblue@us.ibm.com>
To: Adam Litke <agl@us.ibm.com>
Cc: linux-mm@kvack.org, mel@csn.ul.ie, apw@shadowen.org,
	nacc@linux.vnet.ibm.com, agl@linux.vnet.ibm.com
Subject: Re: [PATCH 1/3] hugetlb: Correct page count for surplus huge pages
Date: Mon, 25 Feb 2008 15:11:49 -0800	[thread overview]
Message-ID: <1203981109.11846.22.camel@nimitz.home.sr71.net> (raw)
In-Reply-To: <1203980580.3837.30.camel@localhost.localdomain>

On Mon, 2008-02-25 at 17:03 -0600, Adam Litke wrote:
> > It also seems a bit goofy to me to zero the refcount here, then reset it
> > to one later on in update_and_free_page().
> 
> Yeah, it is a special case -- and commented accordingly.  Do you have
> any ideas how to avoid it without the wasted time of an
> enqueue_huge_page()/dequeue_huge_page() cycle?

There are a couple of steps here, right?

1. alloc from the buddy list
2. initialize to set ->dtor, page->_count, etc...
3. enqueue_huge_page()
4. somebody does dequeue_huge_page() and gets it

I wonder if it might get simpler if you just make the pages on the
freelists "virgin buddy pages".  Basically don't touch pages much until
after they're dequeued.  Flip flop (a la John Kerry) the order around a
bit:

1. alloc from the buddy list
2. enqueue_huge_page()
3. somebody does dequeue_huge_page() and before it returns, we:
4. initialize to set ->dtor, page->_count, etc...

This has the disadvantage of shifting some work from a "once per alloc
from the buddy list" to "once per en/dequeue".  Basically, just try and
re-think when you turn pages from plain buddy pages into
hugetlb-flavored pages.  

-- 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:"dont@kvack.org"> email@kvack.org </a>

  reply	other threads:[~2008-02-25 23:11 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-02-25 22:01 [PATCH 0/3] hugetlb: Dynamic pool resize improvements Adam Litke
2008-02-25 22:01 ` [PATCH 1/3] hugetlb: Correct page count for surplus huge pages Adam Litke
2008-02-25 22:26   ` Dave Hansen
2008-02-25 23:03     ` Adam Litke
2008-02-25 23:11       ` Dave Hansen [this message]
2008-02-26 16:53         ` Adam Litke
2008-02-26 16:48           ` Dave Hansen
2008-02-25 22:01 ` [PATCH 2/3] hugetlb: Close a difficult to trigger reservation race Adam Litke
2008-02-25 22:01 ` [PATCH 3/3] hugetlb: Decrease hugetlb_lock cycling in gather_surplus_huge_pages Adam Litke
2008-02-25 22:31   ` Dave Hansen
2008-02-25 22:51     ` Adam Litke
  -- strict thread matches above, loose matches on Subject: below --
2008-03-03 18:06 [PATCH 0/3] hugetlb: Dynamic pool resize improvements Adam Litke
2008-03-03 18:06 ` [PATCH 1/3] hugetlb: Correct page count for surplus huge pages Adam Litke

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=1203981109.11846.22.camel@nimitz.home.sr71.net \
    --to=haveblue@us.ibm.com \
    --cc=agl@linux.vnet.ibm.com \
    --cc=agl@us.ibm.com \
    --cc=apw@shadowen.org \
    --cc=linux-mm@kvack.org \
    --cc=mel@csn.ul.ie \
    --cc=nacc@linux.vnet.ibm.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;
as well as URLs for NNTP newsgroup(s).