On 1/20/2010 4:35 PM, Daniel, Wu wrote:
Thanks Darryl/David,

I am not a native English speaker and wrongly interpret your option.

Not a problem.


I have another question: Will bind also help xcall? We have X4440 with mysqld 
running on it, which has 4 sockets, each socket has 6 cores. There are totally 
18 threads in mysqld (we are using thread pool), One of the mysqld thread will 
doing munmap every 5 minutes to free about 1G memory, and I saw lots of xcall 
and high syscpu. My assumption is xcall from one node to remote node is more 
expensive than xcall within the same node because of latency, so xcall across 
nodes will use more sys cpu (as xcall is in the kernel), so binding mysqld to 
one socket will limit the xcall to happen within one node which will in turn 
reduce the cost of munmap. Please correct me if I am wrong.

Perhaps some others who know the internals better than I do will chime in at this point.

So here's what I expect. You unmap the memory which means that any TLB mappings in other chips on the system need to be removed. The cross call basically flushes the TLBs and caches.

However, just because one thread does the unmap or map, it does not mean that other threads did not end up accessing the mapped data (and consequently having it mapped into their cache or TLB). So the unmap must cause a cross call to all processors to flush the mappings from their caches.

So no, I would not expect binding threads to reduce the number of cross calls.

Regards,

Darryl.



Thanks,
Daniel

--
Darryl Gove
Compiler Performance Engineering
Blog : http://blogs.sun.com/d/
Books: http://www.sun.com/books/catalog/solaris_app_programming.xml
       http://my.safaribooksonline.com/0595352510
_______________________________________________
perf-discuss mailing list
perf-discuss@opensolaris.org

Reply via email to