Gesendet: Dienstag, 04. Januar 2022 um 15:07 Uhr Von: "Norman Feske" norman.feske@genode-labs.com An: users@lists.genode.org Betreff: Re: Roadmap 2022
That being said, there is an elephant in the room, namely how POSIX threads fit into the picture. How can the state of a multi-threaded application be serialized in a consistent way? That would be an interesting topic to research.
I would think that it should be relatively simple to mark multi-threaded applications as such (at creation of the first thread), creating an additional thread for snapshot purpose. That thread would wait after creation for a signal to start a snapshot. If it gets that signal it does the opposite of yield(), thereby monopolizing the CPU (for instance by inserting the equivalent of a directed yield() into all other threads) and with this monopolized CPU doing the snapshot (using part of the fork() mechanism). After the snapshot is done this thread would go back to wait for the signal to snapshot again, thereby ceasing to monopolize the CPU. That has the additional advantage that a reloaded snapshot will start in exactly that state that is needed to continue seamlessly if the snapshot is run from this thread.
These are just my thoughts from the top of my head. I'm looking forward to see your steps into this direction.
Cheers Norman
-- Dr.-Ing. Norman Feske Genode Labs
https://www.genode-labs.com · https://genode.org
Genode Labs GmbH · Amtsgericht Dresden · HRB 28424 · Sitz Dresden Geschäftsführer: Dr.-Ing. Norman Feske, Christian Helmuth
Genode users mailing list users@lists.genode.org https://lists.genode.org/listinfo/users