I have tested the patches on a NUMA and a non-NUMA configuration, and
they fundamentally appear to work. The first patch is for accessing
available memory on a per-node basis.
The second patch is for accessing NUMA node topology. I've gotten some
helpful suggestions about my string parsing code, introducing me to
sscanf :-). I've become convinced that there are more elegant ways to do
this which would have about the same level of error checking. However, I
am out of time if Daniel wants to check this in this week. So I offer
what I do have, which functions, but is not elegant. I have been playing
with other ways to do this and am not far from finished. So, Daniel, you
need to tell me if you want to take this code, and possibly upgrade to
something more compact later, or if you'd like to wait for the next
revision.
One point to comment on for posterity is that the string returned from
xend is not what might be expected. An example:
printf("string is %s\n", tempstr);
would return
string is node0:0\n node1:1
So, this means that the '\n' sent by the xend python code is somehow
translated to "\n". And the trailing '\n' that should be there
isn't.
Instead there is a '\0'. Looking at the xend code, it would appear this
string should look like:
"node0:0\n node1:1\n"
where these are '\n'.
--
Elizabeth Kon (Beth)
IBM Linux Technology Center
Open Hypervisor Team
email: eak(a)us.ibm.com