I am trying to create a distributed pid space. 0 to 2000 Computer 1 2001 to 4000 Computer 2 4001 to 6000 Computer 3 and so on... I am running a master user-level process at Computer 1 which sends a process context like code, data, registers, PC, etc as well as *"pid"* to slave processes running at other computers. The responsibility of the slave process is to fork a new process on order of master process and attach *"pid" *given by the master to the new process it has forked. Any system call on slave nodes will have an initial check of " Whether the process belongs to local node or to the master node?". That is, if kernel at Computer 2 pid of the process is 1500 On Mon, Mar 21, 2016 at 12:23 PM, <Valdis.Kletnieks@vt.edu> wrote:
On Mon, 21 Mar 2016 10:33:44 +0530, Nitin Varyani said:
Sub-task 1: Until now, parent process cannot control the pid of the forked child. A pid gets assigned as a sequential number by the kernel at the time the process is forked . I want to modify kernel in such a way that parent process can control the pid of the forked child.
What does controlling the pid gain you? To what purpose?
Sub-task 2: On Linux, you can find the maximum PID value for your system with the following command:
$ cat /proc/sys/kernel/pid_max
Suppose pid_max=2000 for a system. I want that the parent process should be able to assign a pid which is greater that 2000 to the forked child.
Again, why would you want to do that?
Anyhow...
echo 3000 > /proc/sys/kernel/pid_max fork a process that gets a pid over 2000.
Done.
Note that on 32 bit systems, using a pid_max of over 32768 will cause various things in /proc to blow up.
I suspect that you need to think harder about what problem you're actually trying to solve here - what will you do with a controlled child PID? Why does it even matter?