New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
How to make parasite code support glibc? #2393
Comments
What function is it?
We probably can do that, but first we need to understand why we need it. |
Thanks for your reply @avagin.
I want to add the RDMA function to the parasite code. In lazy-page mode the parasite code can create connection with page-client, so the parasite code can serve the page fault request directly(maybe 5us). If we put the RDMA function in page-server, we need add once extra page copy time(maybe 2us), because RDMA transmission pages need to memory registion first, which can only regist the memory in the process' virtual memory address space. So agfter add this function in CRIU, we can reduce the page fault serving time in lazy-page mode.
If I can run glibc helper function in parasite code, I think I can relize the ibverbs function work in parasite code. And I will contribute the code to the community. |
Thank you very much @rst0git , your information was very effective. I had readed the slide and watched the video. But I can not seem to find an open source demo. @rppt |
A friendly reminder that this issue had no activity for 30 days. |
I want to add some new functions in the parasite code, which need to call the function of glibc.
I noticed that there is a macro definition -DCR_NOGLIBC in the Makefile(criu/Makefile), so can we also use glibc without defining this macro?
If we use the implementation of the std_printf function in compel (implemented step by step by manually wrapping the system call), it will be very complicated to implement this function step by step through the system call.
I tried to add a
printf("hello world\n");
code to the dump_page function of criu/criu/pie/parasite.c(or others position in the parasite code). When the printf is executed, the segment error is triggered. How can I fix this?Handle-elf-host.c can generate relocation rules, but when I add printf, there is another relocation type(R_x86_64_GOTTPOFF), which has no corresponding handling in handle-elf-host.c, so I simply skip it and don't handle this relocation.
The text was updated successfully, but these errors were encountered: