diff options
author | Blue Swirl <blauwirbel@gmail.com> | 2011-08-07 19:00:23 +0000 |
---|---|---|
committer | Blue Swirl <blauwirbel@gmail.com> | 2011-08-21 19:52:27 +0000 |
commit | f90074f49309de9dd65b978a95d10f089017960a (patch) | |
tree | c79c0d54ccd4e9c2a53b08e95ef9bb9410e3072a /hw/slavio_timer.c | |
parent | 94ac5cd20c6e441e0ed3aec5c98d6cbefb7f503f (diff) | |
download | qemu-f90074f49309de9dd65b978a95d10f089017960a.tar.gz qemu-f90074f49309de9dd65b978a95d10f089017960a.tar.bz2 qemu-f90074f49309de9dd65b978a95d10f089017960a.zip |
slavio_timer: avoid structure holes spotted by pahole
Report from pahole on amd64 host:
struct SLAVIO_TIMERState {
SysBusDevice busdev; /* 0 5648 */
/* --- cacheline 88 boundary (5632 bytes) was 16 bytes ago --- */
uint32_t num_cpus; /* 5648 4 */
/* XXX 4 bytes hole, try to pack */
CPUTimerState cputimer[17]; /* 5656 816 */
/* --- cacheline 101 boundary (6464 bytes) was 8 bytes ago --- */
uint32_t cputimer_mode; /* 6472 4 */
/* size: 6480, cachelines: 102 */
/* sum members: 6472, holes: 1, sum holes: 4 */
/* padding: 4 */
/* last cacheline: 16 bytes */
}; /* definitions: 1 */
struct CPUTimerState {
qemu_irq irq; /* 0 8 */
ptimer_state * timer; /* 8 8 */
uint32_t count; /* 16 4 */
uint32_t counthigh; /* 20 4 */
uint32_t reached; /* 24 4 */
/* XXX 4 bytes hole, try to pack */
uint64_t limit; /* 32 8 */
uint32_t running; /* 40 4 */
/* size: 48, cachelines: 1 */
/* sum members: 40, holes: 1, sum holes: 4 */
/* padding: 4 */
/* last cacheline: 48 bytes */
}; /* definitions: 1 */
Fix by rearranging the structures to avoid padding.
Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
Diffstat (limited to 'hw/slavio_timer.c')
-rw-r--r-- | hw/slavio_timer.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/hw/slavio_timer.c b/hw/slavio_timer.c index f89b4fb5bf..84449baa71 100644 --- a/hw/slavio_timer.c +++ b/hw/slavio_timer.c @@ -48,16 +48,16 @@ typedef struct CPUTimerState { qemu_irq irq; ptimer_state *timer; uint32_t count, counthigh, reached; - uint64_t limit; - // processor only + /* processor only */ uint32_t running; + uint64_t limit; } CPUTimerState; typedef struct SLAVIO_TIMERState { SysBusDevice busdev; uint32_t num_cpus; - CPUTimerState cputimer[MAX_CPUS + 1]; uint32_t cputimer_mode; + CPUTimerState cputimer[MAX_CPUS + 1]; } SLAVIO_TIMERState; typedef struct TimerContext { |