Hi Surenkumar, On Thu, Feb 9, 2012 at 12:31 PM, Surenkumar Nihalani <suren@xxxxxxxxxx> wrote: > Hi guys, > > I want to find the number of threads owned by the caller process who tried > to read from my proc file, how do I find the stuct responsible for it? > Also, I want to know the thread id of my caller. > I am writing a kernel module. Please help. current->pid will give you the process ID. In the kernel, the process ID is unique per thread. current->tgid will give you the "thread group ID" which is also sometime called the PID in user space. This is unique per process but not unique per thread. So part of this boils down to deciding what your terminology means. I think of a process as a memory space, and thread as a unit of execution, where each process has one or more threads associated with it. For historical reasons, the kernel uses pid, where I would normally think of it as being a thread ID, but it is what it is, and is unlikely to change. So if you create a process with multiple threads, each thread will have a uniqe pid, and the tgid associated with each thread will match the pid of the first thread which started the process. You can see this reflected in the /proc filesystem as well. /proc/TTT/task/PPP/* TTT is the tgid, and PPP is the pid. If you want to know how many different threads/processes have accessed your proc file, then you'll need to keep track of that yourself inside the proc entry callback. So you can create whatever data structure you'd like. IIRC the proc entry callback executes in the context of the thread/process which actually issues the read command. -- Dave Hylands Shuswap, BC, Canada http://www.davehylands.com _______________________________________________ Kernelnewbies mailing list Kernelnewbies@xxxxxxxxxxxxxxxxx http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies