Hi,
i have had a look at the algorithm for process migration on
http://www.ncl.cs.columbia.edu/research/migrate/ and ran into some
_STRANGE_ idea.
I wrote a small programm, that, beeing run with arguments (=1) uses the
clone() syscall in its full beauty (CLONE_VM, CLONE_FILES.....) to get a
ligthweigth process (=2) while still having a running parent(=1).
Another instance of this programm (that did not clone() itselve) (=3) is
also runing.
The idea behind all this is, that I thougth it whould be possible to
migrate a thread (or lighthweight Process) to another IDENTICAL instance
of the parent.
For testing I wrote a module, that simply modifies the
*mm and *active_mm pointer of 2 to point to the mm_struct of 3.
I also incremented the mm_users field of 3.
Beeing lazy I have done nothing else, as I am convinced that it _should_
work... (I expected crashes because of ignoring the father / child
relation and Page faults, (the end of the world), but i thougth as a
test it would do something.)
The funny thing now is, that 2 simply dies, without _any_ coughing of
the kernel & I cannot attach a kernel debugger (2.4.2 crashes).
So what did I forget?
Any help would be appreciated.
Thanks
Benedikt
--
Unser beliebter Preis zum Thema "Koennte lustig sein, wenn man duemmer
waer" geht an s.o.
--
Kernelnewbies: Help each other learn about the Linux kernel.
Archive: http://mail.nl.linux.org/kernelnewbies/
FAQ: http://kernelnewbies.org/faq/