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