32/64 bit issues
First, the current state (at least for x86) is as follows:
- A 32-bit task can checkpoint a 64-bit task, and vice versa
- A 32-bit task can only restart a 64-bit task, and vice versa
- A task checkpointed on x86-32 cannot be restarted on x86-64 in 32-bit mode, and vice versa
We intend to support the last item (restart an x86-32 task on x86-64 in compat mode).
For restarting a container with both 32-bit and 64-bit tasks, we expect to implement such support in userspace. It could be done in the kernel, but the switch from COMPAT to non-COMPAT is currently nicely isolated at exec, so we do not want to introduce any new concerns if we can help it. Recent hubbub surrounding TIF_ABI_PENDING supports this goal.