Ok, that makes sense. Is there a reason why the members were all set the be the same size?
Maybe seg_key should be: union { uint8_t key8; uint16_t key16; uint32_t key32; uint64_t key64; struct { uint64_t value[2] } key128; }; -Nathan On Tue, 8 Nov 2011 17:22:48 -0500, George Bosilca <bosi...@eecs.utk.edu> wrote: > Elements in an array are always stored in the expected [increasing] order, > regardless of the endianess of the architecture. Moreover, due to the > alignment rules, all members in a union will start at the same address. > > It turns out there is no endianess conversion on the keys, so I suppose > both peers have to somehow reach a consensus outside the PML. > > george. > > On Nov 8, 2011, at 08:57 , Nathan T. Hjelm wrote: > >> Sure, I can do that. My only concern is with sending between hosts of >> different endianness. >> >> For example, if seg_key is 128 bits wide and the key32 is 64 bits then > we >> might run into this: >> >> Host 1: (big endian) >> Set seg_key.key32[0] = 0x11111111 >> >> would result in seg_key: 0x00000000 0x00000000 0x11111111 0x00000000 >> >> Host 2: (little endian) >> Set seg_key.key32[0] = 0x111111111 >> >> would result in seg_key: 0x11111111 0x00000000 0x00000000 0x00000000 >> >> If either host were to send the other one its seg_key and try to use the >> key32 they would get garbage. I haven't tested this case yet but I can > test >> on a PPE of RR later today. >> >> -Nathan >> >> On Tue, 8 Nov 2011 08:26:04 -0500, Jeff Squyres <jsquy...@cisco.com> > wrote: >>> On Nov 7, 2011, at 9:48 PM, Nathan T. Hjelm wrote: >>> >>>> In retrospect I should have done a RFC for the 3rd change with a short >>>> timeout. At the time (operating on little sleep) it seemed like the >>> commits >>>> would have minimal impact. Please let me know if the commits have any >>>> negative impact. >>> >>> FWIW, I think I'd like to see a rollback of the increase of array sizes >> in >>> the seg_key union. They weren't necessary and might be slightly >>> misleading. >>> >>> -- >>> Jeff Squyres >>> jsquy...@cisco.com >>> For corporate legal information go to: >>> http://www.cisco.com/web/about/doing_business/legal/cri/ >>> >>> >>> _______________________________________________ >>> devel mailing list >>> de...@open-mpi.org >>> http://www.open-mpi.org/mailman/listinfo.cgi/devel >> >> _______________________________________________ >> devel mailing list >> de...@open-mpi.org >> http://www.open-mpi.org/mailman/listinfo.cgi/devel > > > _______________________________________________ > devel mailing list > de...@open-mpi.org > http://www.open-mpi.org/mailman/listinfo.cgi/devel