[Spice-devel] [PATCH spice-protocol v2] stats: Avoid holes in SpiceStat structure
Jonathon Jongsma
jjongsma at redhat.com
Thu Jan 3 19:32:03 UTC 2019
On Thu, 2019-01-03 at 16:46 +0000, Frediano Ziglio wrote:
> The SpiceStat structure can be 20 or 24 bytes depending on alignment.
> Being a memory mapped structure potentially used with lockless
> access, it
> is not good to have it unaligned.
> The current tool that reads this memory mapped file (reds_stats) is
> able to detect if the structure is either 20 or 24 bytes and act
> accordingly so changing this structure won't affect the behaviour
> (unless you have an old tool but as they are usually packaged
> together
> this is quite improbable).
> This will also help on Windows as in that system it is not possible
> for
> reds_stats to implement the same discovery trick implemented on
> Linux.
> as On Windows it is not possible to read the size of the file mapping
> (on Windows to implement shared memory you can use a file mapping
> not associated to a file).
> The structure will change layout only on 32-bit architectures which
> is not that
> recommended nowadays (the 64-bit platforms that we support align 64-
> bit integers
> to 64 bits).
>
> Signed-off-by: Frediano Ziglio <fziglio at redhat.com>
Suggested wording tweaks highlighted in red above.
> ---
> spice/stats.h | 2 ++
> 1 file changed, 2 insertions(+)
>
> Changes since v1:
> - update commit message and comment.
>
> diff --git a/spice/stats.h b/spice/stats.h
> index d4c45ab..44c6482 100644
> --- a/spice/stats.h
> +++ b/spice/stats.h
> @@ -66,6 +66,8 @@ typedef struct SpiceStat {
> uint32_t generation;
> uint32_t num_of_nodes;
> uint32_t root_index;
> + /* to avoid holes in the structure on some platforms */
> + uint32_t padding;
> SpiceStatNode nodes[];
> } SpiceStat;
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/spice-devel/attachments/20190103/6e6b9fc2/attachment.html>
More information about the Spice-devel
mailing list