* Salvatore Bonaccorso: > Hi Florian, > > On Wed, Nov 20, 2024 at 02:05:46PM +0100, Florian Weimer wrote: >> * Salvatore Bonaccorso: >> >> > [ Changes ] >> > Quoting the upsream commit is likely the best to explain the changes: >> > >> > | cr-restore: rseq: dynamically handle *libc with rseq >> > | Before this patch we assumed that CRIU is compiled against >> > | the same GLibc as it runs with. But as we see from real >> > | world examples like #1935 it's not always true. >> > | >> > | The idea of this patch is to detect rseq configuration >> > | for the main CRIU process and use it to unregister >> > | rseq for all further child processes. It's correct, >> > | because we restore pstree using clone*() syscalls, >> > | don't use exec*() (!) syscalls, so rseq gets inherited >> > | in the kernel and rseq configuration remains the same >> > | for all children processes. >> >> There's are further commit you should consider picking up: >> >> commit 089345f77a34d1bc7ef146d650636afcd3cdda21 >> Author: Florian Weimer <fwei...@redhat.com> >> Date: Wed Jul 10 18:34:50 2024 +0200 >> >> Adjust to glibc __rseq_size semantic change >> >> In commit 2e456ccf0c34a056e3ccafac4a0c7effef14d918 ("Linux: Make >> __rseq_size useful for feature detection (bug 31965)") glibc 2.40 >> changed the meaning of __rseq_size slightly: it is now the size >> of the active/feature area (20 bytes initially), and not the size >> of the entire initially defined struct (32 bytes including padding). >> The reason for the change is that the size including padding does not >> allow detection of newly added features while previously unused >> padding is consumed. >> >> The prep_libc_rseq_info change in criu/cr-restore.c is not necessary >> on kernels which have full ptrace support for obtaining rseq >> information because the code is not used. On older kernels, it is >> a correctness fix because with size 20 (the new value), rseq >> registeration would fail. >> >> The two other changes are required to make rseq unregistration work >> in tests. >> >> Signed-off-by: Florian Weimer <fwei...@redhat.com> > > Do you consider this optional, or required for the fix to land in > bookrworm?
The mentioned glibc change is probably in bookworm already. I think it's this one from 2.36-9+deb12u8: - Fixes rseq extension mechanism. I think you need the test changes of the criu patch to get a clean run. The non-test changes are dormant with sufficiently recent kernels that contain full ptrace support.