[GRASS-dev] fork()ed process bound to same core as parent?

Hamish hamish_b at yahoo.com
Mon Jun 22 08:36:28 EDT 2009


Hi,

I have been watching some fork()ed processes in top+grellm on a multicore
CPU (linux). It seems that both the display driver (6.5svn d.vect
+XDRIVER) and DB driver (v.in.ascii+DBF) both fork() a child process, but
these remain bound to the same core as the parent.

especially for v.in.ascii+dbf this slows things down as the CPU usage
split between the two processes is 60/40 while the other 3 cores remain
idle at 0%.

how to encourage the child process to leave home?

will the spawn()ed children on WinGrass show the same behaviour?

lib/db/dbmi_client/start.c
lib/driver/main.c


a web search finds some non-portable chatter about setaffinity and
binding, but nothing very clear about how to undo the behaviour.


if it's an OS /proc thing, it seems like a weird choice for the default.


?,
Hamish


More information about the grass-dev mailing list