Messages in this thread | | | Date | Sat, 30 Jul 2005 10:56:55 -0700 (PDT) | From | Christoph Lameter <> | Subject | Re: [PATCH] String conversions for memory policy |
| |
On Fri, 29 Jul 2005, Paul Jackson wrote:
> Oh - I should have mentioned this before - if you are displaying and > parsing node lists (nodemask_t) then there are wrappers for these > bitmap routines in linux/nodemask.h: > > * int nodemask_scnprintf(buf, len, mask) Format nodemask for printing > * int nodemask_parse(ubuf, ulen, mask) Parse ascii string as nodemask > * int nodelist_scnprintf(buf, len, mask) Format nodemask as list for printing > * int nodelist_parse(buf, map) Parse ascii string as nodelist > > See nodemask.h for other such useful routines.
Hmmm. Would be great if we had a nodelist in the policy structure but it is a zonelist instead and my conversion functions deal with zonelists and not nodelists. Strangely mpol_new converts a node bit mask into a list of zones.
As a consequence the zonelist always begins with zones of the lowest node. Page allocation will therefore always fill up the lower nodes before going to the higher nodes. Is this what we intended? I would have expected that BIND would restrict to a set of nodes and then allocate locally on the node the process is running on if possible. That is at least what I gather from reading the documentation.
Maybe I do not fully understand what is going on here but this kind of implementation for bind must be hurting performance of applications by not allocating pages locally. It also puts extremely high memory pressure on lower numbered nodes. - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |