mirror of
https://github.com/xemu-project/xemu.git
synced 2024-11-24 03:59:52 +00:00
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>
This commit is contained in:
parent
94ac5cd20c
commit
f90074f493
@ -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 {
|
||||
|
Loading…
Reference in New Issue
Block a user