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

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

 



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

Attachment: signature.asc
Description: PGP signature

_______________________________________________
Spice-devel mailing list
Spice-devel@xxxxxxxxxxxxxxxxxxxxx
https://lists.freedesktop.org/mailman/listinfo/spice-devel

[Index of Archives]     [Linux Virtualization]     [Linux Virtualization]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux OMAP]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]     [Monitors]