From: Paul Jackson <pj@sgi.com>
To: Paul Jackson <pj@sgi.com>
Cc: linux-mm@kvack.org, akpm@osdl.org, nickpiggin@yahoo.com.au,
rientjes@google.com, ak@suse.de, mbligh@google.com,
rohitseth@google.com, menage@google.com, clameter@sgi.com
Subject: Re: [RFC] another way to speed up fake numa node page_alloc
Date: Sun, 1 Oct 2006 23:18:11 -0700 [thread overview]
Message-ID: <20061001231811.26f91c47.pj@sgi.com> (raw)
In-Reply-To: <20060925091452.14277.9236.sendpatchset@v0>
pj wrote:
+struct zonelist_faster {
+ nodemask_t fullnodes; /* nodes recently lacking free memory */
+ unsigned long last_full_zap; /* jiffies when fullnodes last zero'd */
+ unsigned short node_id[MAX_NUMNODES * MAX_NR_ZONES]; /* zone -> nid */
+};
This seems broken on systems with more than one zone per node.
If whichever zone comes first of the several zones on a node (the
several consecutive zones in the zonelist that evaluate to the same
node) ever gets full, then the other zones on that node will be
skipped over, because they would end up on a full node. Once per
second, we will retry the first zone from that node, but if it is still
full, we would -still- skip over the remaining zones without looking at
them. That is, these other zones wouldn't even get the courtesy of a
once per second consideration.
Only if every allowed node in the system is full will we actually
rescan the zonelist with this faster mechanism disabled and seriously
examine these other zones on such a node.
Perhaps instead of a single 'nodemask_t fullnodes', I need a small
array of these nodemasks, one per MAX_NR_ZONES. Then I could select
which fullnodes nodemask to check by taking my index into the node_id[]
array, modulo MAX_NR_ZONES.
--
I won't rest till it's the best ...
Programmer, Linux Scalability
Paul Jackson <pj@sgi.com> 1.925.600.0401
--
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>
next prev parent reply other threads:[~2006-10-02 6:18 UTC|newest]
Thread overview: 28+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-09-25 9:14 Paul Jackson
2006-09-26 6:08 ` David Rientjes
2006-09-26 7:06 ` Paul Jackson
2006-09-26 18:17 ` David Rientjes
2006-09-26 19:24 ` Paul Jackson
2006-09-26 19:58 ` David Rientjes
2006-09-26 21:48 ` Paul Jackson
2006-10-02 6:18 ` Paul Jackson [this message]
2006-10-02 6:31 ` David Rientjes
2006-10-02 6:48 ` Paul Jackson
2006-10-02 7:05 ` David Rientjes
2006-10-02 8:41 ` Paul Jackson
2006-10-03 18:15 ` Paul Jackson
2006-10-03 19:37 ` David Rientjes
2006-10-04 15:45 ` Paul Jackson
2006-10-04 16:11 ` Christoph Lameter
2006-10-04 22:10 ` David Rientjes
2006-10-05 2:27 ` Paul Jackson
2006-10-05 2:37 ` David Rientjes
2006-10-05 2:53 ` Paul Jackson
2006-10-05 3:00 ` David Rientjes
2006-10-05 3:26 ` Paul Jackson
2006-10-05 3:49 ` David Rientjes
2006-10-05 4:07 ` Andrew Morton
2006-10-05 4:14 ` Paul Jackson
2006-10-05 4:50 ` David Rientjes
2006-10-05 4:53 ` Paul Jackson
2006-10-11 3:42 ` Paul Jackson
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=20061001231811.26f91c47.pj@sgi.com \
--to=pj@sgi.com \
--cc=ak@suse.de \
--cc=akpm@osdl.org \
--cc=clameter@sgi.com \
--cc=linux-mm@kvack.org \
--cc=mbligh@google.com \
--cc=menage@google.com \
--cc=nickpiggin@yahoo.com.au \
--cc=rientjes@google.com \
--cc=rohitseth@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