a thread seems to be looping in the uclibc function malloc.
yi yi
windyi83 at hotmail.com
Tue Apr 27 15:01:19 UTC 2010
enviroment : mips architecture linux 2.6.x, with uclibc 0.9.27 (the newest version)
recently,i met a problem: a thread which uses 90% of cpu resourc is always running 。 I used command "cat /proc/pid/stat" to show run state of the thread. with the gnu tool fo objdump, I found that the thread's instruction was in "malloc" function in most of the cases,rarely in " erand48_r " function.
when it was in " " erand48_r " funtion ,it would quickly return to "malloc" function . uclibc is configured with MALLOC_STANDARD. "erand48_r" isn't called explicitly in my thread code. "erand48_r" is just wrapped to some funtion which is only provide some interface to application and isn't called by any
function in the uclibc.If thread loops in my main code , i can catch that some instructions (gained from objdum) will in my text section ,other than always
in Uclibc dynamic library.So it seems that thread is looping in the "malloc" routine. Anybody can tell me the mechanism of malloc. Will the malloc routine have the possibility of looping inside the "malloc" routine? Or What happened to my thread?
_________________________________________________________________
Hotmail: Free, trusted and rich email service.
https://signup.live.com/signup.aspx?id=60969
More information about the uClibc
mailing list