From: Xiangyong (S. O. <ou...@cs...> - 2012-04-19 01:14:20
|
Hi Goswin, Thanks for your reply! It turned out that I should use pthread_self() to show thread id, instead of getpid(): getpid() always returns same value for threads created in a same process. Thanks! --Shangyong On Wed, Apr 18, 2012 at 1:22 AM, Goswin von Brederlow <gos...@we...> wrote: > "Xiangyong (Shangyong) Ouyang" <ou...@cs...> writes: > >> Hi all, >> >> I let 8 processes perform concurrent pwrite() to an example FUSE-based >> filesystem (http://www.cs.nmsu.edu/~pfeiffer/fuse-tutorial/). In >> fuse_write() , I do a getpid() to show the current process id >> that conducts the write. I always see the SAME pid, regardless of how >> many user processes are writing concurrently. >> >> I'm under the impression that fuse library internally has multiple >> worker-threads that fetch requests from /dev/fuse. Therefore I'm >> expecting to see different pids in fuse_write(). Am I missing some >> flags to enable fuse internal multi-threads? I didn't pass any special >> command line arguments to fuse except for "-f". >> >> btw, I'm running 8-core RHEL machine, fuse 2.8.1, kernel 2.6.30.10. Thanks! >> > > Fuse supports both a single threaded and multi threaded loop. Maybe your > filesystem is calling the single threaded one or adds the single > threaded option before calling libfuse. > > MfG > Goswin |