[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] 32/64-bit hypercall interface

On Tuesday 04 October 2005 16:51, Nakajima, Jun wrote:
> Okay, I understand what you need. How about the data layout? That's not
> so trivial to have the identical ones.
> For example, the following one would have different data layout on
> 32-bit and 64-bit.
> typedef struct vcpu_time_info {
>     u32 version;
>     u64 tsc_timestamp;   /* TSC at last update of time vals.  */
>     u64 system_time;     /* Time, in nanosecs, since boot.    */
>     u32 tsc_to_system_mul;
>     s8  tsc_shift;
> } vcpu_time_info_t;

Is that because of the u64 4-byte alignment Andi mentioned? To use u64 in 
xen/include/public, we will need to ensure that __aligned__((8)) is used.

The padding in some of these structures is unfortunate in terms of wasted 
(cacheline) space, but for now I will be happy with commonizing the size and 
layout. This particular structure couldn't be compacted anyways... However, 
Keir indicated earlier he was not interested in reordering any structures, as 
would be needed to reduce wasted padding space.

Hollis Blanchard
IBM Linux Technology Center

Xen-devel mailing list



Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.