IPC and Multiple Execution Models

Gernot Heiser gernot at nicta.com.au
Sun Apr 29 11:40:04 CEST 2007

For completeness (but of course perfectly unhelpful to you):
This was not an issue on our MIPS kernel (which supports 32-bit
binaries on the 64-bit kernel) because we removed indirect strings a
while ago.


>>>>> On Sat, 28 Apr 2007 10:58:58 -0400, "Jonathan S. Shapiro" <shap at eros-os.com> said:
JSS> On amd64 (and other architectures), multiple execution models are
JSS> supported by the hardware. In the case of amd64, both 64-bit and 32-bit
JSS> applications can be supported simultaneously.

JSS> IPC across models presents some problems.

JSS>   When sending from 32-bit to 64-bit, registers are widened (good), but
JSS>   differences in alignment rules can mean that the 64-bit receiver and
JSS>   the 32-bit sender do not agree about the number and lengths of
JSS>   indirect strings.

JSS>   When sending from 64-bit to 32-bit, registers are truncated, and there
JSS>   can be difficulties with indirect strings because of differing
JSS>   alignment requirements.

JSS> It is definitely possible for the IDL compiler to compile for both
JSS> models, and to generate cross-model calls that will avoid these
JSS> problems, but I have not found any "clean" solution.

JSS> On platforms that support multiple execution architectures, how do L4
JSS> systems deal with this?

JSS> If this is discussed in existing documents (perhaps the IDL compiler
JSS> manual?) a pointer to the document is sufficient.

JSS> Thanks!

JSS> --
JSS> Jonathan S. Shapiro, Ph.D.
JSS> Managing Director
JSS> The EROS Group, LLC

JSS> _______________________________________________
JSS> l4-hackers mailing list
JSS> l4-hackers at os.inf.tu-dresden.de
JSS> http://os.inf.tu-dresden.de/mailman/listinfo/l4-hackers

More information about the l4-hackers mailing list