You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
We should come up with a way to have child processes (arbitrarily deep, not just the first level of children) inherit the targeted status of the original krfexec'd parent on FreeBSD.
Some ideas:
In our fault wrapper, check whether our current PID is the child of the targeted PID
This is cheap for the first level of children, since FreeBSD's struct proc contains p_oppid. For deeper levels we'll probably have to walk up the tree, which would (probably) be too intensive and not very kthread/MP-safe
LD_PRELOAD or otherwise wrap fork inside krfexec spawned programs, so that fork checks whether it's the child of a process being faulted and adds the new PID to a set of faulted PIDs
This requires us to update the targeting system to allow multiple PIDs, which we should do at some point anyways
Maybe something really crazy where we wrap the dynamic linker and put some magic somewhere in the loaded program
Maybe a special memory region + a new targeting mode that krfexec uses by default instead? Child processes should inherit things like memory maps, so this might not be too hard to do
Similar to the dynamic linker: could we abuse the ELF auxiliary vector for this?
The text was updated successfully, but these errors were encountered:
We should come up with a way to have child processes (arbitrarily deep, not just the first level of children) inherit the targeted status of the original
krfexec
'd parent on FreeBSD.Some ideas:
struct proc
containsp_oppid
. For deeper levels we'll probably have to walk up the tree, which would (probably) be too intensive and not very kthread/MP-safeLD_PRELOAD
or otherwise wrapfork
insidekrfexec
spawned programs, so thatfork
checks whether it's the child of a process being faulted and adds the new PID to a set of faulted PIDskrfexec
uses by default instead? Child processes should inherit things like memory maps, so this might not be too hard to doThe text was updated successfully, but these errors were encountered: