On Mon, 2013-07-08 at 17:15 -0500, Anthony Liguori wrote: > Hypercall arguments are passed in CPU endianness so what's being stored > in the tce table is CPU endianness. > > Since VBUFFER just does a blind write() of the full array of uint64s, > what goes on the wire will be CPU endianness. > > So if you do a savevm on a little endian host and loadvm on a big endian > host, badness ensues. > > The proper thing to do is use a VARRAY instead of a VBUFFER. VARRAY > will handle endian because it treats the data as an array, not as an > opaque buffer.
Ok, so that's indeed an issue for emulated TCEs because what qemu stores is not the real (BE) TCE table but a "host native" version of it. I see. Cheers, Ben.