So I’m working on some process and thread migration code for a project I’m working on with a few others. What I want to do is for process migration we identify the pages for the virtual address space in the kernel and then live migrate them to another machine’s address space and pages. That seems straightforward.
Unfortunately threads might be a little more difficult. As of now I want to hook pthread_create() and identify the function pointer and the argument pointer to identify the data in virtual address space for that thread, then identifying the pages dedicated to the thread in the kernel and live migrating the thread pages from the current kernel to the other machine’s kernel.
Migrating on-disk counterparts is unnecessary as we are using a unified distributed filesystem acting like one single disk.
Is there a page table specifically for threads in the kernel that I can access per thread to obtain the pages for the thread?
Basing this off Popcorn Linux and NetPopcorn, two very wonderful symphonies of code, which supports process and thread migration but requires compilation with a custom compiler.
communism is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.