sun4m_iommu: avoid structure holes spotted by pahole

Report from pahole on amd64 host:
struct IOMMUState {
	SysBusDevice               busdev;               /*     0  5648 */
	/* --- cacheline 88 boundary (5632 bytes) was 16 bytes ago --- */
	uint32_t                   regs[4096];           /*  5648 16384 */
	/* --- cacheline 344 boundary (22016 bytes) was 16 bytes ago --- */
	target_phys_addr_t         iostart;              /* 22032     8 */
	uint32_t                   version;              /* 22040     4 */

	/* XXX 4 bytes hole, try to pack */

	qemu_irq                   irq;                  /* 22048     8 */

	/* size: 22056, cachelines: 345 */
	/* sum members: 22052, holes: 1, sum holes: 4 */
	/* last cacheline: 40 bytes */
};	/* definitions: 1 */

Fix by rearranging the structure to avoid padding.

Signed-off-by: Blue Swirl <blauwirbel@gmail.com>
This commit is contained in:
Blue Swirl 2011-08-07 19:09:50 +00:00
parent 07dd0035d8
commit 149e1ea154

View File

@ -130,8 +130,8 @@ typedef struct IOMMUState {
SysBusDevice busdev;
uint32_t regs[IOMMU_NREGS];
target_phys_addr_t iostart;
uint32_t version;
qemu_irq irq;
uint32_t version;
} IOMMUState;
static uint32_t iommu_mem_readl(void *opaque, target_phys_addr_t addr)