On Tue 2024-01-09 21:24:56, Marcos Paulo de Souza wrote:
The test proves that a syscall can be livepatched. It is interesting because syscalls are called a tricky way. Also the process gets livepatched either when sleeping in the userspace or when entering or leaving the kernel space.
The livepatch is a bit tricky:
The syscall function name is architecture specific. Also ARCH_HAS_SYSCALL_WRAPPER must be taken in account.
The syscall must stay working the same way for other processes on the system. It is solved by decrementing a counter only for PIDs of the test processes. It means that the test processes has to call the livepatched syscall at least once.
The test creates one userspace process per online cpu. The processes are calling getpid in a busy loop. The intention is to create random locations when the livepatch gets enabled. Nothing is guarantted. The magic is in the randomness.
Reviewed-by: Joe Lawrence joe.lawrence@redhat.com Signed-off-by: Marcos Paulo de Souza mpdesouza@suse.com
Reviewed-by: Petr Mladek pmladek@suse.com
Best Regards, Petr