maria-developers team mailing list archive
Mailing list archive
GSoC NUMA support Project
I think I am near done with dividing the buffer pool into the number of
nodes available in a NUMA machine. There is one thing left to do - to check
for the presence of 'libnuma' library in the server. As of now I have
explicitly defined HAVE_LIBNUMA in the CMakeList.txt to check my code.
Also, to test whether the control of execution reaches within a function A,
I tried to print out a message on the scree like 'fprintf(stderr, In
function A);' This seems to work in main(), my_init(), sys_var_init() etc,
but not in buf0buf.cc. The function which creates the buffer pool is called
by 'buf_pool_init()', which is called by
'innobase_start_on_create_for_mysql()', which in turn is called by
'innobase_init()', but I couldn't find where an d how is this function
called. Seems like the output to bot stdout and stderr is being redirected
somewhere and I can't find where (in code).
Having this printing stuff is a quick way of testing the flow of control
and although my code is working, I would like to know about this
redirections if someone can tell me.
Also, which part of code calls the 'innobase_init()' function ?
I have attached a screenshot of the server running on my NUMA emulated pc
with and without --numa-interleave=all. [ PID - 21016 without NUMA, PID -
21058 with NUMA]
At present it just ALLOCATES a buffer pool instance on each numa node. Need
to work on specific node binding and stuff.
Screenshot from 2017-05-29 00-50-01.png
Description: PNG image