[Spice-devel] [PATCH spice-protocol] qxl_dev: Align QXLRam to 4 bytes

Christophe Fergeau cfergeau at redhat.com
Tue Jul 10 10:04:06 UTC 2018


On Mon, Jul 09, 2018 at 04:48:46AM -0400, Frediano Ziglio wrote:
> > 
> > On Tue, Jul 03, 2018 at 11:38:56AM -0400, Frediano Ziglio wrote:
> > > > 
> > > > On Thu, Jun 28, 2018 at 09:43:47PM +0100, Frediano Ziglio wrote:
> > > > > This avoids compilers detect misaligned access.
> > > > 
> > > > Maybe "This helps some compilers to realize QXLRam is correctly aligned"?
> > > > 
> > > 
> > > Well, the current code tells the compiler that this structure
> > > is NOT aligned.
> > > But we actually know the opposite
> > 
> > Well, we know that in QEMU and Xspice, this is correctly aligned (but
> > one need to look at how ram offset is computed in order to see that), so
> > we add the annotation to spice-protocol. Since this is quite odd, the
> > commit log would indeed need to be quite descriptive.
> > 
> > Christophe
> > 
> 
> Suggestions?

I would rephrase like this:

> This avoids compilers detect misaligned access.

Without such a hint, some compilers (clang) will generate warnings for trying to
do atomic operations on misaligned memory ?

> The structure is allocated at the beginning of a page so surely
> will be 4 bytes aligned.

In QEMU and Xspice, the offset of the structure will be rounded to a 4kB
boundary, so the structure will end up 4 bytes aligned as well with
these users. We are not aware of other users of QXLRam, but if there
was, it's likely the struct would be at least naturally aligned, so this
change should not impact anyone.

Aligning to 4 bytes maintains the size of the structure unchanged
avoiding possible ABI changes.

Christophe
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: not available
URL: <https://lists.freedesktop.org/archives/spice-devel/attachments/20180710/5a2c4c9c/attachment.sig>


More information about the Spice-devel mailing list