Attach my own pid
From: Pranay Srivastava <hidden>
Date: 2016-03-22 03:22:19
On Mon, Mar 21, 2016 at 4:34 PM, Nitin Varyani [off-list ref] wrote:
struct task_struct {
volatile long state;
void *stack;
...
pid_t pid;
...
}
You mean to say that just mapping the pid_t pid will do the job. Does the
linux kernel not store pid somewhere else while forking a child?No I mean you can translate the pid chosen by kernel and then have a policy to map it within your framework. That just translates onto a possible different pid or may be same on another node. That way your framework goes independent of what the kernel is doing. Like for example nfs, translates the inode to a file handle internally but that framework is independent of what happens on both nodes.
On Mon, Mar 21, 2016 at 4:18 PM, Pranay Srivastava [off-list ref] wrote:quoted
Nitin, On Mon, Mar 21, 2016 at 4:03 PM, Nitin Varyani [off-list ref] wrote:quoted
.....Continued.... That is, if kernel at Computer 2 finds that pid of a process requesting a system call is 1500, the request is forwarded to slave daemon which in turn contacts with the master daemon. Master daemon requests the kernel for the system call and sends the result back to slave daemon.I don't think doing this by pid is better. It might suit you currently but in the long run? If you are able to send the whole context, why not map that pid to your context internally instead of relying on pid which is also visible outside your context.quoted
On Mon, Mar 21, 2016 at 4:01 PM, Nitin Varyani [off-list ref] wrote:quoted
I am trying to create a distributed pid space. 0 to 2000 Computer 1 2001 to 4000 Computer 2 4001 to 6000 Computer 3your pid 2000 shouldn't have to be same pid 2000 on another node. You just need the context right?quoted
quoted
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, [off-list ref] wrote:quoted
On Mon, 21 Mar 2016 10:33:44 +0530, Nitin Varyani said:quoted
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?quoted
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?_______________________________________________ Kernelnewbies mailing list Kernelnewbies at kernelnewbies.org http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies-- ---P.K.S
--
---P.K.S