« Previous | Next » 

Revision 07dd0035

ID07dd0035d83727ed2b1922a85cd5aea5b010025b

Added by Blue Swirl almost 13 years ago

slavio_intctl: avoid structure holes spotted by pahole

Report from pahole on amd64 host:
struct SLAVIO_INTCTLState {
SysBusDevice busdev; /* 0 5648 /
/
--- cacheline 88 boundary (5632 bytes) was 16 bytes ago --- /
uint32_t intregm_pending; /
5648 4 /
uint32_t intregm_disabled; /
5652 4 /
uint32_t target_cpu; /
5656 4 */

/* XXX 4 bytes hole, try to pack */
qemu_irq                   cpu_irqs[16][16];     /*  5664  2048 /
/
--- cacheline 120 boundary (7680 bytes) was 32 bytes ago --- /
SLAVIO_CPUINTCTLState slaves[16]; /
7712 384 /
/
--- cacheline 126 boundary (8064 bytes) was 32 bytes ago --- */
/* size: 8096, cachelines: 127 /
/
sum members: 8092, holes: 1, sum holes: 4 /
/
last cacheline: 32 bytes /
}; /
definitions: 1 */

struct SLAVIO_CPUINTCTLState {
uint32_t intreg_pending; /* 0 4 */

/* XXX 4 bytes hole, try to pack */
struct SLAVIO_INTCTLState * master;              /*     8     8 /
uint32_t cpu; /
16 4 /
uint32_t irl_out; /
20 4 */
/* size: 24, cachelines: 1 /
/
sum members: 20, holes: 1, sum holes: 4 /
/
last cacheline: 24 bytes /
}; /
definitions: 1 */

Fix by rearranging the structures to avoid padding.

Signed-off-by: Blue Swirl <>

Files

  • added
  • modified
  • copied
  • renamed
  • deleted

View differences