[Spice-devel] [PATCH spice-protocol] stats: Avoid holes in SpiceStat structure

Frediano Ziglio fziglio at redhat.com
Thu Jan 3 14:14:24 UTC 2019


The SpiceStat structure can be 20 or 24 bytes depending on alignment.
Being a memory mapped structure potentially used with lockless access
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
according so changing this structure won't affect the behaviour
(unless you have an old tool but as they are usually packages together
is quite improbable).
This will also help on Windows as in that system is not possible for
reds_stats to implement the same discovery trick implemented on Linux
as on Windows 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).

Signed-off-by: Frediano Ziglio <fziglio at redhat.com>
---
 spice/stats.h | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/spice/stats.h b/spice/stats.h
index d4c45ab..2df90a3 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 64 bit */
+    uint32_t padding;
     SpiceStatNode nodes[];
 } SpiceStat;
 
-- 
2.20.1



More information about the Spice-devel mailing list