From: David Laight <david.lai...@aculab.com> Date: Mon, 15 Aug 2016 16:38:36 +0000
> From: Stefan Hajnoczi >> Sent: 10 August 2016 12:52 >> On Mon, Aug 08, 2016 at 06:14:41PM +0200, ggar...@abra.uab.cat wrote: >> > diff --git a/include/uapi/linux/vsockmon.h b/include/uapi/linux/vsockmon.h >> > new file mode 100644 >> > index 0000000..739b4bf >> > --- /dev/null >> > +++ b/include/uapi/linux/vsockmon.h >> > @@ -0,0 +1,35 @@ >> > +#ifndef _UAPI_VSOCKMON_H >> > +#define _UAPI_VSOCKMON_H >> > + >> > +#include <linux/virtio_vsock.h> >> > + >> > +/* Structure of packets received trought the vsockmon device. */ >> > + >> > +struct af_vsockmon_hdr { >> > + __le64 src_cid; >> > + __le64 dst_cid; >> > + __le32 src_port; >> > + __le32 dst_port; >> > + __le16 op; /* enum af_vsockmon_op */ >> > + __le16 t; /* enum af_vosckmon_t */ >> > + __le16 len; /* sizeof(t_hdr) */ >> > + union { >> > + struct virtio_vsock_hdr virtio_hdr; >> > + } t_hdr; >> > +} __attribute__((packed)); > ... > > Gah, another 'packed' structure. > Have you looked at the amount of code the sparc64 compiler generates > to access the structure members?? > > You really want to add another 16bit field and enforce 64bit alignment > on the header and all data blocks. Indeed, avoid the packed attribute at all costs.